1 / 17

Diziler (Arrays)

Diziler (Arrays). Tek bir değişken tanımlamak için aşağıdaki gibi bir yazım yeterlidir. int i; Hatırlanacağı gibi bu tarz bir tanımlamada ile ismi i türü tamsayı ve ilk değeri atanmamış bir değişken bildirilmektedir.

dean-holt
Download Presentation

Diziler (Arrays)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Diziler(Arrays) Bilgisayar Programlama

  2. Tek bir değişken tanımlamak için aşağıdaki gibi bir yazım yeterlidir. int i; Hatırlanacağı gibi bu tarz bir tanımlamada ile ismi i türü tamsayı ve ilk değeri atanmamış bir değişken bildirilmektedir. Aynı türden birden fazla değişken tanımlamak gerektiği durumlarda ise dizilerden faydalanılır. Bilgisayar Programlama

  3. int a[10]; Bu tarz bir tanımlama bellekte türü tamsayı olan 10 adetlik bir bölgeyi belirtir ve bellekteki görünümü ise aşağıdaki gibidir. İstenilen dizi elemanına ulaşmak için ilgili elemanın indis numarasının (subscript) belirtilmesi gerekmektedir. a[ 0 ], a[ 1 ]...a[ 9 ] Bilgisayar Programlama

  4. int b [ n ] b[ 0 ], b[ 1 ]...b[ n – 1 ] C’de dizilerin ilk elemanı sıfırdan başlar. Köşeli parantezler arasındaki değer tam sayı veya tamsayı üreten bir değer olmak zorundadır. b [ 0 ] = 10; b [ 2 ] = 20; b [ 5 ] = b[ 0 ] + b[ 2 ]; Bilgisayar Programlama

  5. Dizi elemanlarının normal değişkenlerden bir farkı yoktur. • c[ 0 ] = 3; • printf( "%d", c[ 0 ] ); • Eğer x, 3’e eşit ise aşağıdaki yazımlar geçerlidir. • c[ 5 - 2 ] == c[ 3 ] == c[ x ] Bilgisayar Programlama

  6. int i; for(i = 0; i+5 < 100; i = i + 1) a[i] = 0; Daha öncede bahsedildiği gibi köşeli parantezler içindeki ifade tamsayı veya tamsayı değer üreten bir ifade olmalıdır. Bilgisayar Programlama

  7. Dizinin elemanlarına başlangıç değerlerinin atanması teker teker gerçekleşir. Bir dizinin içindeki elemanları başka bir diziye aktarılması istenildiğinde de aynı durum söz konusudur. int a[10], b[10]; for(i = 0; i < 10; i = i + 1) b[i] = a[i]; Dizinin son elemanın b[9] olduğu unutulmamalıdır. Bilgisayar Programlama

  8. Örnek intmain(intargc, char *argv[]) { int i,a[100]; int t,j=0; for(i = 0; i <= 100; i = i + 5) { a[i+5] = 255; } for (t=0, j=0;j<=100;j++,t++) printf ("a[%d] = %d \n",t,a[j]); system("PAUSE"); return 0; } Bilgisayar Programlama

  9. Örnek int main(int argc, char *argv[]) { char a[255]; int i=0; printf ("ASCII KOD\t\t ASCII KOD KARSİLİGİ\n"); printf("**********\t\t**********************\n"); while (i<=255) { a[i]=i; i++; } for(i=0; i <= 255; i++) {printf ("\t%d\t\t\t%c\n",i,a[i]); } system("PAUSE"); return 0; } Bilgisayar Programlama

  10. Örnek Bir zar atılmaktadır. Bu zar 1000 defa atıldığında 1 ile 6 arasındaki değerler kaç defa tekrar ettiğini nasıl bulabiliriz? Bilgisayar Programlama

  11. int main(int argc, char *argv[]) { int i,j; int d1; int a[7]={0}; for(i = 1; i < 100; i = i + 1) { d1 = rand() % 6 + 1; a[d1]=a[d1]+1; } for(j = 1; j <= 6; j++ ) printf("%d: %d\n", j, a[j]); system("PAUSE"); return 0; } Bilgisayar Programlama

  12. İlk Değer Atanması • int n[ 5 ] = { 1, 2, 3, 4, 5 }; • Eğer yeterli sayıda başlangıç değeri belirtilmezse, en sağdaki elemanlar 0 olarak atanırlar. • int n[ 5 ] = { 0 } • C’de dizilerin sınır değerlerini kontrol eden bir mekanizma yoktur.Eğer dizinin genişliği belirtilmezse, verilmiş olan başlangıç değerleri dizinin uzunluğunu belirtir. • int n[ ] = { 1, 2, 3, 4, 5 }; • Yukarıdaki dizi için 5 tane başlangıç değeri belirtildiğinden dolayı dizi 5 elemanlıdır. Bilgisayar Programlama

  13. Karakter Dizileri (Strings) • “deneme” karakter dizisi statik karakterlerden meydana gelmektedir. • Bu karakter dizisine içinde barındırdığı karakterler yardımıyla ilk değer atanır. • char string1[] = “deneme"; • Null karakter ‘\0’ dizinin sonunu belirler. • string1 dizisi 7 elemanlıdır. • string1 dizisi aşağıdaki şekilde de ifade edilebilir. • char string1[] = { ‘d', ‘e', ‘n', ‘e', ‘m', ‘e’,'\0' }; Bilgisayar Programlama

  14. İstenilen bir elemanına indis değeri kullanılarak erişilebilir. • string1[ 3 ] elemanı ile ‘e’ karakterine erişilir. • Dizi ismi, dizinin bellekteki adresini belirtir. Bu yüzden eğer ki scanf ile klavyeden okuma yapılacağında & adres operatörünün kullanımına gerek yoktur. • scanf( "%s", string2 ); • Bu komut, herhangi bir boşluk karakterine rastlayana kadar bilgi okur. • Boşluk karakterleri girilecek stringin içerisinde de olabileceğinden dikkatli olmak gerekir. Bilgisayar Programlama

  15. Column 0 Column 1 Column 2 Column 3 Row 0 Row 1 Row 2 Column subscript Array name a[2][1] a[0][0] a[2][3] a[2][0] a[1][1] a[1][0] a[2][2] a[1][2] a[0][3] a[1][3] a[0][1] a[0][2] Row subscript Çok Boyutlu Diziler • Satır ve sütunları olan tablo yapısındadır. • 2 boyutlu olanlar matris dizilerdir. • Çok boyutlu diziler yukarıdaki gibi gösterilseler de bellekte diziler sıradüzensel olarak tutulurlar. Bilgisayar Programlama

  16. 1 2 3 4 1 0 3 4 • Başlangıç değeri verilmesi • int b[ 2 ][ 2 ] = { { 1, 2 }, { 3, 4 } }; • Başlangıç değerleri parantez içinde olabilir. • Eğer yeterli başlangıç değeri olmazsa, belirtilmeyen elementler 0 olarak numaralandırılır. • int b[ 2 ][ 2 ] = { { 1 }, { 3, 4 } }; • Elemanların gösterilmesi • Önce satır, ardından sütün ismi yazılır. • printf( "%d", b[ 0 ][ 1 ] ); Bilgisayar Programlama

  17. Örnek int main(int argc, char *argv[]) { int i,j; int array1[ 4 ][ 5 ] = { {1,3,5,7,9}, {9,7,5,3,13}, {1,3,35,23,10}, {18,19,37,4,2} }; for (i=0;i<4;i++) { for (j=0;j<5;j++) printf("%d\t",array1[i][j]); printf ("\n"); } system("PAUSE"); return 0; } Bilgisayar Programlama

More Related