19 Ocak 2015 Pazartesi

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;i++)
5:    {
6:      printf("%d.sayi : ",i);
7:      scanf("%d",&x[i]);
8:    }
10:
11:   for(i=0;i<4;i++)
12:   {
13:       for(j=i+1;j<5;j++)
14:       {
15:    if( x[j]<x[i] )
16:       {
17:          gec = x[i];
18:          x[i] = x[j];
19:          x[j] = gec;
20:  }
21:   }
22: }
23:
24:
25:   for(i=0;i<5;i++)
26:    printf("\n%d",x[i]);
27:
28:  }
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:  }

0 Yorum:

Yorum Gönder