Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
YayınlayanIlbasti Karaduman Değiştirilmiş 9 yıl önce
1
14.04.20151Bilgisayar 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. 14.04.20152Bilgisayar 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 ] 14.04.20153Bilgisayar 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 ]; 14.04.20154Bilgisayar 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 ] 14.04.20155Bilgisayar 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. 14.04.20156Bilgisayar 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. 14.04.20157Bilgisayar Programlama
8
Örnek int main(int argc, 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; } 14.04.20158Bilgisayar 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; } 14.04.20159Bilgisayar 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? 14.04.201510Bilgisayar 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; } 14.04.201511Bilgisayar 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. 14.04.201512Bilgisayar 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' }; 14.04.201513Bilgisayar 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. 14.04.201514Bilgisayar Programlama
15
Çok Boyutlu Diziler Satır ve sütunları olan tablo yapısındadır. 2 boyutlu olanlar matris dizilerdir. Row 0 Row 1 Row 2 Column 0 Column 1Column 2 Column 3 a[ 0 ][ 0 ] a[ 1 ][ 0 ] a[ 2 ][ 0 ] a[ 0 ][ 1 ] a[ 1 ][ 1 ] a[ 2 ][ 1 ] a[ 0 ][ 2 ] a[ 1 ][ 2 ] a[ 2 ][ 2 ] a[ 0 ][ 3 ] a[ 1 ][ 3 ] a[ 2 ][ 3 ] Row subscript Array name Column subscript Çok boyutlu diziler yukarıdaki gibi gösterilseler de bellekte diziler sıradüzensel olarak tutulurlar. 14.04.201515Bilgisayar Programlama
16
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 ] ); 1 2 3 4 1 0 3 4 14.04.201516Bilgisayar 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; } 14.04.201517Bilgisayar Programlama
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.