Program yazarken birden çok değişkene ihtiyaç duyarız. Örneğin yazacağımız programda 20 tane değişken kullanmamız gerekiyor. Şimdiye kadar öğrendiğimiz bilgilerle x1,x2,……,x20 gibi 20 tane değişken tanımlamamız gerekiyor. Bu yol elbette uygulanabilir ama çok zaman kaybettirir ve bir süre sonra işler çok karışır. İşte bu noktada devreye diziler girer. Dizideki;
- tüm elemanları bellekte art arda saklanır.
- elemanlar bellekte sürekli saklanır(program çalıştığı sürece)
- tüm elemanlar aynı türden değişkenlerden oluşur
8.1)Dizilerin tanımlanması
veri_tipi dizi_adi[eleman_sayisi]
Örneğin 10 elemanlı bir tam sayılar kümesi oluşturmak istersek şöyle tanımlayabiliriz;
int yas[5];
8.2)Dizilere değer ataması yapılması
Bu noktada ilk bilmemiz gereken indis kavramıdır. Tipi ne olursa olsun dizilerimizin başlangıç indisi her zaman 0’dır.
Yukarıda tanımladığımız dizimiz üzerinden gidecek olursak;
yas[0]=12;
yas[1]=14;
yas[2]=20;
yas[3]=13;
yas[4]=15;
bu şekilde atama yapabiliriz. Ya da,
int yas[5]={12,14,20,13,15};
int yas[]={12,14,20,13,15};
bu şekilde de atama yapabiliriz.
8.3)Dizileri okuma ve yazdırma
#include <stdio.h> #include <stdlib.h> /* program 8.1 dizilere klavyeden değer okumak */ int main(int argc, char *argv[]) { int yas[5]; int i; for(i=0;i<5;i++) scanf("%d",&yas[i]); return 0; }
#include <stdio.h> #include <stdlib.h> /* program 8.2 dizilere klavyeden değer okumak ve ekrana yazdırmak */ int main(int argc, char *argv[]) { int yas[5]; int i; for(i=0;i<5;i++) scanf("%d",&yas[i]); //yazdırma islemi for(i=0;i<5;i++) printf("%d",yas[i]); return 0; }
8.4)Dizilerin fonksiyona gönderilmesi
Yukarıda yas ataması yaptığımız dizinin toplamını bulan bir fonksiyon yazalım. Aynı zamanda dizilerin nasıl fonksiyona gönderildiği hakkında da bilgi sahibi olalım.
#include <stdio.h> #include <stdlib.h> /* program 8.3 Fonksiyona dizi gönderme işlemi */ int toplam_yas(int yas[],int n) { int toplam=0,i; for(i=0;i<n;i++) toplam+=yas[i]; return toplam; } int main(int argc, char *argv[]) { int n=5,toplam; int yas[5]={12,14,20,13,15}; toplam=toplam_yas(yas,n); printf("Dizideki toplam yas %d dir",toplam); return 0; }
Çıktı:
8.5)sizeof operatörü kullanımı
Bir dizinin bellekte kapladığı alanı veya dizinin boyutunu bu operatörü kullanarak öğrenebiliriz.
#include <stdio.h> #include <stdlib.h> /* program 8.3 sizeof operatörü */ int main(int argc, char *argv[]) { int yas[5],dizi_boyutu,dizi_alani; dizi_alani=sizeof(yas); /* dizi_alani=4*5=20 bayt */ dizi_boyutu=sizeof(yas)/sizeof(int);/* dizi_boyutu=20/4=5 */ printf("Dizinin bellekte kapladigi alan %d bayt\nDizinin boyutu %d dir",dizi_alani,dizi_boyutu); return 0; }
Çıktı:
8.6)Çok boyutlu diziler
Şimdiye kadar gördüğümüz diziler tek boyulu ya da tek indisli dizilerdi. Bir dizi birden çok boyuta sahip olabilir örneğin aşağıdaki dizi iki boyutlu bir diziye örnek
int ornek_dizi[3][3];
Bu iki boyutlu dizilere matris denir. İlk boyuta satır, ikinci boyuta ise sütun denir. Yukarıdaki matrisin eleman sayısı 9’dur.
Çok boyutlu dizilere de ilk değer ataması yapılabilir.
ornek_dizi[3][3]={5,6,9, 8,8,5 , 6,1,2};
Bir yanıt yazın