17 Aralık 2011 Cumartesi

C dilinde dizi anlatım....

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];

10 adet örnek çözülmüştür. Örnekleri dikkatle inceleyelim.

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: }


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: }


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: }


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: }


Dizileri 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:


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: }


Beş 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: }


İ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: }


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ı ürettecini başlatır */
6: for(i=0;i<10;i++)
7: {
8: x[i]=random(100); /* 0-100 arasında raslegele sayı seçiliyor */
9: printf("%d\n",x[i]);
10: }
11: }


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