Ders9: Diziler
Dizi bir kümedir. Aynı tipte verilere tek bir isimle erişmek için kullanılır.
Bir dizinin bütün elemanları bellekte peşpeşe saklanır.
Dizi Tipi Genel bildirimi Örnek Tek boyutlu diziler tip ad[eleman_sayısı] int veri[10]; İki boyutlu diziler tip ad[satir_say][sutun_say] float mat[5][4]; Çok boyutlu diziler tip ad[boyut_1][boyut_2][boyut_3]...[ boyut_n] double x[2][4][2];Aşağıda dizilerin kullanımı il ilgili 10 adet örnek sunulmuştur. Örnekleri dikkatle inceleyin.
Program 9.1 : Dizi elamanlarına erişim.
1: main(){ 2: int i,x[5]; 3: x[0]=5; 4: x[1]=25; 5: x[2]=-40; 6: for(i=0;i<3;i++) 7: printf("%d\n",x[i]); 8: }
Program 9.2 : Dizilere başlangıç değeri verme
1: main(){ 2: int i,x[5]={5,0,6}; 3: int y[]={1,5,9}; 4: puts("X Y"); 5: for(i=0;i<3;i++) 6: printf("%d %d\n",x[i],y[i]); 7: }
Program 9.3 : Karakter dizisi (String)
1: main(){ 2: int i; 3: char ad[][15] ={"Ahmet", 4: "Mehmet","Can"}; 5: int kilo[]={70,60,52}; 6: float boy[] ={1.70,1.85,1.45}; 7: puts("\nISIM\tKILO\tBOY"); 8: for(i=0;i<3;i++) 9: printf("%s\t%d\t%1.3f\n",ad[i],kilo[i],boy[i]); 10: }
Program 9.4 : Beş sayının ortalama hesabı
1: main(){ 2: int i,x[5],toplam =0; 3: float ort; 4: for(i=0;i<5;i++){ 5: printf("%d. eleman : ",i+1); 6: scanf("%d",&x[i]); 7: toplam += x[i]; 8: } 9: ort = (float) toplam/5; 10: printf("ortalamalari : %f",ort); 11: }
Program 9.5 : Dizilerin fonksiyonla kullanma
1: void yaz(int x[]); 2: main(){ 3: int x[10]; 4: yaz(x); 5: } 6: 7: void yaz(int x[]){ 8: int i; 9: for(i=0;i<10;i++) 10: printf("%d\n",x[i]); 11: } 12:
Program 9.6 : Dizinin bellekte kapladığı alan
1: main(){ 2: char dizi1[10]; 3: int dizi2[10]; 4: float dizi3[10]; 5: double dizi4[10]; 6: printf( "%d\n",sizeof(dizi1) ); 7: printf( "%d\n",sizeof(dizi2) ); 8: printf( "%d\n",sizeof(dizi3) ); 9: printf( "%d\n",sizeof(dizi4) ); 10: }
Program 9.7 : On elemanlı bir diziye ait elamanların sırlanaması
1: main(){ 2: int x[10],i,j,gec; 3: puts("5 tane sayi gir:"); 4: for(i=0;i<5 data-blogger-escaped-10:="" data-blogger-escaped-11:="" data-blogger-escaped-12:="" data-blogger-escaped-13:="" data-blogger-escaped-14:="" data-blogger-escaped-15:="" data-blogger-escaped-16:="" data-blogger-escaped-17:="" data-blogger-escaped-18:="" data-blogger-escaped-19:="" data-blogger-escaped-20:="" data-blogger-escaped-21:="" data-blogger-escaped-22:="" data-blogger-escaped-23:="" data-blogger-escaped-24:="" data-blogger-escaped-25:="" data-blogger-escaped-26:="" data-blogger-escaped-27:="" data-blogger-escaped-28:="" data-blogger-escaped-5:="" data-blogger-escaped-6:="" data-blogger-escaped-7:="" data-blogger-escaped-8:="" data-blogger-escaped-:="" data-blogger-escaped-d.sayi="" data-blogger-escaped-d="" data-blogger-escaped-for="" data-blogger-escaped-gec="" data-blogger-escaped-i="" data-blogger-escaped-if="" data-blogger-escaped-j="" data-blogger-escaped-lt="" data-blogger-escaped-n="" data-blogger-escaped-printf="" data-blogger-escaped-scanf="" data-blogger-escaped-x="">
Program 9.8 : İki matrisin toplamı
1: main(){ 2: int i,j,A[3][3],B[3][3],C[3][3]; 3: puts("iki matrisin toplami:"); 4: puts("A matrisinin elemanlarini girin:"); 5: for(i=0;i<3;i++){ 6: for(j=0;j<3;j++){ 7: printf("A(%d,%d)=",i+1,j+1); 8: scanf("%d",&A[i][j]); 9: } 10: } 11: 12: puts("B matrisinin elemanlarini girin:"); 13: for(i=0;i<3;i++){ 14: for(j=0;j<3;j++){ 15: printf("B(%d,%d)=",i+1,j+1); 16: scanf("%d",&B[i][j]); 17: } 18: } 19: 20: puts("A+B matrisinin elemanlari:"); 21: for(i=0;i<3;i++){ 22: for(j=0;j<3;j++){ 23: C[i][j] = A[i][j] + B[i][j]; 24: printf("C(%d,%d)=%d\n",i+1,j+1,C[i][j]); 25: } 26: } 27: 28: }
Program 9.9 : Elemanları (0,100) arsında olan rasgele dizi
1: #include <time.h> 2: #include <stdlib.h> 3: main(){ 4: int i,x[10]; 5: randomize(); /* rasgele sayı üretecini başlatır */ 6: for(i=0;i<10;i++) 7: { 8: x[i]=random(100); /* 0-100 arasında rasgele sayı seçiliyor */ 9: printf("%d\n",x[i]); 10: } 11: }
Program 9.10 : Dizi elemanlarının bellekteki sıralanış adresleri
1: main(){ 2: int i,x[10]; 3: puts("x dizisinin elemanlarının sıralanışı"); 4: for(i=0;i<10;i++) 5: printf("%p\n",&x[i]); 6: }
Hiç yorum yok:
Yorum Gönder