Programlama Dilleri 1. Ders 4: Diziler

Benzer belgeler
DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım

BİL1001 Bilgisayar Bilimlerine Giriş 1

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Sınav tarihi : Süre : 60 dak.

C PROGRAMLAMA D İ L İ

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

Giriş. ENF102 Jeoloji

DİZİLER 5/4/2010. ENF-102 Jeoloji Giriş. Tek Boyutlu Diziler. Tek Boyutlu Diziler. Örnek. Örnek

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

ALGORİTMA VE PROGRAMLAMA I

HSancak Nesne Tabanlı Programlama I Ders Notları

Değişkenler, içerisinde tek bir değer tutabilen yapılardır. Örneğin haftanın günlerini değişkenlerde tutmak istersek, her bir gün adı için bir

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Özyineleme (Recursion)

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Kocaeli Üniversitesi C Bilgisayar Programlama Ara Sınavı Test Soruları

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

GENEL GĐRĐŞ-ÇIKIŞ FONKSĐYONLARI. ENF102 Jeoloji 1. #include <stdio.h> printf Fonksiyonu ÖRNEK. printf

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-11 Karakter Diziler. Yrd. Doç. Dr. Ümit ATİLA

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

PROGRAMLAMAYA GİRİŞ DERS 2

C Konsol Giriş Çıkış Fonksiyonları

Diziler (Arrays) Çok Boyutlu Diziler

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING)

Dr. Fatih AY Tel: fatihay@fatihay.net

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

YAPILAR (STRUCTURES)

Eln 1001 Bilgisayar Programlama I

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

İstanbul Üniversitesi Elektrik Elektronik Mühendisliği DİZİLER. Kaynak: C ve Sistem Programcıları Derneği Kurs notu. Yrd.Doç. Dr.

ALGORİTMA VE PROGRAMLAMA I

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

C PROGRAMLAMA DİLİNE GİRİŞ

C Programlama Dilininin Basit Yapıları

Sınav tarihi : Süre : 60 dak. c) En başta #include<stdio.h> yazılmamıştır. c) zt d) Pi e) X0

Dizgiler. C dilinde karakter m şeklinde tek tırnak içerisinde yazılan ifadelerdir. Bu karakterlerin her biri aslında bir tamsayı ile ifade edilir.

PROGRAMLAMA TEMELLERİ DERSİ ÖZETİ

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu DİZİLER

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

BİLİNİRLİK ALANI ve ÖMÜR, KONTROL DEYİMLERİ

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

Fonksiyonlar (Altprogram)

C Programlama Dilinde Değişkenler

Hafta 12 Karakter Tutan Diziler

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

Algoritma ve Programlama: Karar Yapıları ve Döngüler

Görsel Programlama 1

YZM 2105 Nesneye Yönelik Programlama

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

HSancak Nesne Tabanlı Programlama I Ders Notları

Genel Programlama II

8. Bölüm DİZİLER. tip dizi_ismi[eleman_sayısı]; Bütün diziler 0 ile baţlar.

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

2. Dereceden Denklemin Köklerini Bulan Program

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/

Veri Tanımları ve Mantıksal İşlemler

Eln 1002 Bilgisayar Programlama II

BLM 111 ALGORİTMA VE PROGRAMLAMA I

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

D İ Z İ L E R A R R A Y S

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

PROGRAMLAMA TEMELLER. C Program Yap s

Programlama Dilleri 1. Ders 5: Göstericiler

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

8. İŞARETCİLER (POINTERS)

Pointers (İşaretçiler)

ALGORİTMA VE PROGRAMLAMA II

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

BÖLÜM 9: POINTERLER (İŞARETÇİLER)

Biçem Belirteçleri (Format Specifiers)

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

PASCAL PROGRAMLAMA DİLİ YAPISI

Temel Giriş/Çıkış Fonksiyonları

BİLDİRİM, TANIMLAMA, DEĞİŞMEZLER ve İŞLEVLER

Dizi nin Önemi. Telefon rehberindeki numaralar, haftanın günleri gibi v.b.

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)

STRİNG DİZİLER(KATARLAR)

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#10

Kodlanacak programlama dilinin kaynaklarından faydalanılarak kod yazımı yapılır.

Transkript:

Programlama Dilleri 1 Ders 4: Diziler

Genel Bakış Tanım Dizilerin tanımlanması Dizilere ilk değer verilmesi Yerel ve Global diziler Dizilerin birbirine atanması Diziler ile ilgili örnekler Çalışma soruları char türden diziler sizeof işleci nedir? Programlama Dilleri 1 2

Dizi Nedir? Bellekte bitişik bir biçimde bulunan, aynı türden nesnelerin oluşturduğu veri yapısına Dizi (Array) denir. Dizi yapısının en önemli özelliği, mantıksal bir ilişki içindeki aynı tür verilerin bellekte bitişik tutulmasıdır. Programlama Dilleri 1 3

Dizilerin Tanımlanması Diziler aşağıdaki şekilde tanımlanabilir: <tür ismi> <dizi ismi> [<eleman sayısı>]; tür ismi: dizinin tüm elemanlarının türünü belirtir. dizi ismi: isimlendirme kurallarına uygun dizi ismi eleman sayısı: dizinin kaç elemanlı olduğunu belirtir. Örnekler: double merhaba[20]; int isme_bak[50]; char alan_adi[15]; Programlama Dilleri 1 4

Dizilerin Tanımlanması int a=100; int dizi15[a]; // Geçersizdir. Derleme sırasında dizinin eleman sayısını derleyici elde edebilmelidir. unsigned int row[5.]; // Geçersizdir. Eleman sayısı tamsayı olmalıdır. char surname[4*5]; // Geçerlidir. surname [20] #define ELEMAN_SAYISI 10 int a[eleman_sayisi ]; int a=100, x[25], y[50]; Programlama Dilleri 1 5

Dizilere ilk değer verilmesi dizi ismi [eleman sayısı]={ilk eleman,,son eleman}; double b[5]={2.5, 1.7, 5.9, 4.2, 3.3}; int bm[10]={1,18,-4,0,1,57,3,-89,17,100}; char name[4]={'d', 'a', 't', 'a'}; int xyz[100]={0}; float a[100]={55.275}; int selam[3]={x, x+1, x+2}; // Geçersizdir. int y[5]={4, 14, 0, 4, -54,3}; // Geçersizdir. long int uzun[ ]={5, 4, 3, 2, 1}; // eleman sayısı=5 Programlama Dilleri 1 6

Dizilere ilk değer verilmesi for (i=0;i<size;i++) a[i]=1; // dizinin elemanları 1 olur. int i=0; while (i<size) a[i++]=1; // alternatif bir kod int bilecik[20], i=5, k=10; bilecik[++k]=100; // bilecik[11]=100; bilecik[i--]=0; // bilecik[5]=0; ve i=4 olur. ++bilecik[5]; Programlama Dilleri 1 7

Dizi Kullanımı int b[ ]={11, 22, 33, 44}; i=1; printf("%d",b[i++]); // 22 i=1; printf("%d",b[++i]); // 33 i=1; printf("%d",b[--i]); // 11 i=1; printf("%d",b[i--]); // 22 printf("%d",++b[2]); // 34 b[2]=34 printf("%d",b[2]++); // 33 b[2]=34 Programlama Dilleri 1 8

Yerel ve Global diziler #include<stdio.h> #define ELEMAN_SAYISI 10 int global[eleman_sayisi]; //global tanımlı dizi main( ) { int local[eleman_sayisi], k; //yerel tanımlı dizi for (k=0;k<eleman_sayisi;++k) printf("global[%d]=%d\n",k,global[k]); } for (k=0;k<eleman_sayisi;++k) printf("local[%d]=%d\n",k,local[k]); Programlama Dilleri 1 9

Dizilerin birbirine atanması int x[size], y[size]; /***/ x=y; // Geçersizdir. // iki dizi ancak bir döngü deyimi ile kopyalanabilir. for (k=0;k<size;++k) x[k]=y[k]; k=0; // alternatif bir kod daha while(k<size) x[k]=y[k++]; Programlama Dilleri 1 10

Diziler ile ilgili Örnek 1 Programlama Dilleri 1 11

Diziler ile ilgili Örnek 2 Programlama Dilleri 1 12

Diziler ile ilgili Örnek 3 Programlama Dilleri 1 13

Diziler ile ilgili Örnek 4 k i a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 54 22 98 1 36 72 10 40 82 62 0 0 22 54 98 1 36 72 10 40 82 62 0 8 22 54 1 36 72 10 40 82 62 98 1 0 22 54 1 36 72 10 40 82 62 98 1 7 22 1 36 54 10 40 72 62 82 98 2 0 1 22 36 54 10 40 72 62 82 98 2 6 1 22 36 10 40 54 62 72 82 98 3 0 1 22 36 10 40 54 62 72 82 98 3 5 1 22 10 36 40 54 62 72 82 98 4 0 1 22 10 36 40 54 62 72 82 98 4 4 1 10 22 36 40 54 62 72 82 98 5 0 1 10 22 36 40 54 62 72 82 98 5 3 1 10 22 36 40 54 62 72 82 98 6 0 1 10 22 36 40 54 62 72 82 98 6 2 1 10 22 36 40 54 62 72 82 98 7 0 1 10 22 36 40 54 62 72 82 98 7 1 1 10 22 36 40 54 62 72 82 98 8 0 1 10 22 36 40 54 62 72 82 98 Programlama Dilleri 1 14

Diziler ile ilgili Örnek 5 k i temp a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 1 22 54 22 98 1 36 72 10 40 82 62 1 1 22 22 54 98 1 36 72 10 40 82 62 2 98 22 54 98 1 36 72 10 40 82 62 2 2 98 22 54 98 1 36 72 10 40 82 62 2 1 98 22 54 98 1 36 72 10 40 82 62 3 1 22 54 98 1 36 72 10 40 82 62 3 3 1 22 54 1 98 36 72 10 40 82 62 3 2 1 22 1 54 98 36 72 10 40 82 62 3 1 1 1 22 54 98 36 72 10 40 82 62 4 1 36 1 22 36 54 98 72 10 40 82 62 5 1 72 1 22 36 54 72 98 10 40 82 62 6 1 10 1 10 22 36 54 72 98 40 82 62 7 1 40 1 10 22 36 40 54 72 98 82 62 8 1 82 1 10 22 36 40 54 72 82 98 62 9 1 62 1 10 22 36 40 54 62 72 82 98 Programlama Dilleri 1 15

Diziler ile ilgili Örnek 6 k i min index a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 0 54 0 54 22 98 1 36 72 10 40 82 62 0 9 1 3 54 22 98 1 36 72 10 40 82 62 1 22 1 1 22 98 54 36 72 10 40 82 62 1 9 10 6 1 22 98 54 36 72 10 40 82 62 2 98 2 1 10 98 54 36 72 22 40 82 62 2 9 22 6 1 10 98 54 36 72 22 40 82 62 3 54 3 1 10 22 54 36 72 98 40 82 62 3 9 36 4 1 10 22 54 36 72 98 40 82 62 4 54 4 1 10 22 36 54 72 98 40 82 62 4 9 40 7 1 10 22 36 54 72 98 40 82 62 5 72 5 1 10 22 36 40 72 98 54 82 62 5 9 54 7 1 10 22 36 40 72 98 54 82 62 6 98 6 1 10 22 36 40 54 98 72 82 62 6 9 62 9 1 10 22 36 40 54 98 72 82 62 7 72 7 1 10 22 36 40 54 62 72 82 98 7 9 72 7 1 10 22 36 40 54 62 72 82 98 8 82 8 1 10 22 36 40 54 62 72 82 98 8 9 82 8 1 10 22 36 40 54 62 72 82 98 Programlama Dilleri 1 16

Diziler ile ilgili Örnek 7 Programlama Dilleri 1 17

Diziler ile ilgili Örnek 8 Programlama Dilleri 1 18

Çalışma Soruları 1 30-70 arasında rastgele tamsayılardan oluşan 20 elemanlı bir dizinin en büyük ikinci elemanını bulan C kodunu yazınız. A[10] ve B[20] şeklinde sıralı tamsayılardan oluşmuş iki diziyi bir sıralı C[30] dizisi şeklinde birleştiren C kodunu yazınız. dizi[50] 50-70 arasında rastgele üretilen sayılardan oluşmuş bir dizi olduğuna göre 55 sayısının bu dizi içerisinde kaç kez tekrarlandığını ekrana döken C kodunu yazınız. Programlama Dilleri 1 19

char türden diziler Karakter dizileri char türden dizilerdir. char dizimiz[25]; dizimiz[0]='a'; dizimiz[1]='l'; dizimiz[2]='i'; // dizi 25 elemanlı bir dizi olmasına rağmen daha kısa yazılarda bu dizi de tutulabilir for (k=0; k<25;++k) putchar(dizimiz[k]); //bu döngü ile yalnızca ALI ekrana yazılmaz. Dizinin diğer 22 çöp elemanı da yazılır. Programlama Dilleri 1 20

char türden diziler C dilinde karakterler üzerinde işlemlerin hızlı ve etkin yapılabilmesi için sonlandırıcı (Null) karakter kullanılır. Sonlandırıcı karakter '\0' ASCII tablosunun 0 numaralı karakteridir. Görüntüsü yoktur. main( ) { printf("%d\n", '0'); // 48 (0 ın ASCII kodu) basar. printf("%d\n", '\0'); // 0 basar. } char türden dizilerin uzunluğunu bilmeye gerek yoktur. Çünkü yazının sonunda ' \0 ' bulunur. Bu sebeple SIZE elemanlı bir dizide en fazla SIZE-1 lik yazı saklanabilir. Programlama Dilleri 1 21

char türden diziler char name[8]={'b', 'i', 'l', 'e', 'c', 'i', 'k', '\0'}; char name[5]={'v', 'a', 'n'}; /* dizinin kalan kısmına yandaki gibi sonlandırıcı karakter eklenir.*/ char name[5]="van"; /*sonlandırıcı karakteri otomatik olarak ekler.*/ char name[3]="van"; /* sonlandırıcı karakter eklenmez.*/ char name[6]= "Bilecik"; //Geçersizdir. char name[25]; gets(name); //klavyeden enter basılana kadar girilmiş karakterleri name dizisine sırasıyla atar. Programlama Dilleri 1 22

char türden diziler gets işlevi ile klavyeden alınan karakterler diziye yerleştikten sonra dizinin sonuna '\0' konulur. Programlama Dilleri 1 23

char türden diziler #include<stdio.h> #define SIZE 100 int main( ) { char name[20],surname[30]; int no; printf("isim soyisim ve numara girin: "); scanf("%s%s%d",name,surname,&no); puts(name); puts(surname); printf("%d",no); } Klavyeden alınan bir yazı char türden bir diziye scanf komutu ile yerleştirilebilir. Bu amaçla %s format karakteri kullanılır. Klavyeden alınan ilk boşluk karakteri ile diziye yerleştirme sona erer. Programlama Dilleri 1 24

char türden diziler printf("%s\n", name); // puts(name) kodu yerine yazılabilir. printf ile yazılan kodun tek farkı, imleci alt tarafa taşımaz. //puts(name) yerine aşağıdaki kod da yazılabilir for (i=0; name[i]!= '\0'; ++i) putchar(name[i]); putchar('\n'); main( ) { char sehir [ ] = "Bilecik"; sehir[7]= '!'; //sonlandırıcı karakter yerine bir karakter girilmis puts(sehir); //ilk sonlandırıcı karaktere kadar ekrana basar } Programlama Dilleri 1 25

Çalışma Soruları 2 Klavyeden girilen bir verinin uzunluğunu bulan C kodunu yazınız. Klavyeden girilen isim ve soy isminizi tersten ekrana basan C kodunu yazınız. Klavyeden alınan yazıdaki küçük harfleri büyük, büyük harfleri ise küçük harfe döndürüp ekrana basan C kodunu yazınız. Klavyeden girilen bir yazının içinde bulunan tüm İngilizce harfleri sayarak kaç tane olduklarını ekran basan C kodunu yazınız. Programlama Dilleri 1 26

Çalışma Soruları 3 Klavyeden bir diziye alınan yazının içinden rakamları silen C kodunu yazınız. Klavyeden bir diziye alınan yazının içinde ardışık olarak yer alan eş karakterleri bire indiren C kodunu yazınız. Klavyeden alınan 10 tane kelimeyi sözlük sırasına göre ekrana basan C kodunu yazınız. Programlama Dilleri 1 27

sizeof işleci nedir? sizeof bir ifadenin türünün bellekte kaç byte yer kapladığını bildiren bir işleçtir. sizeof (int); sizeof(long); sizeof(double); //terim olarak bir ifade kullanılabilir double x; sizeof (x); sizeof (17.8); sizeof (fonk()); double a[10]; /* dizi elemanlarını toplam byte uzunluğunu verir.*/ sizeof (a); i=sizeof (a) / sizeof(a[0]); // neyi verir? Programlama Dilleri 1 28

sizeof işleci nedir? // Bu kod ne iş yapar? //A dizisine birkaç eleman daha eklenir ise ne olur? //sizeof bir işlev değil, bir işleçtir. Programlama Dilleri 1 29

sizeof işleci nedir? /* sizeof (func()) satırında func() işlevi çağrılmaz. Yalnızca int func() tür olarak yer alır. */ Programlama Dilleri 1 30