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