Diziler

advertisement
DİZİLER
1. Giriş
Dizi, bilgisayar belleğinde aynı isim altında genellikle aynı tipten çok sayıda veriyi bir arada
saklayan veri yapısıdır. Aşağıda, x adlı bir dizinin mantıksal görünümü verilmiştir:
4
2
7
22
11
3
0
1
2
3
4
5
Bir dizi tanımlandıktan(bildirildikten) sonra, dizinin bütün elemanları bellekte peş peşe
saklanır. Bu yüzden dizilere tek bir isim altında çok sayıda değişken içeren bellek bölgesi de
denir.
Buna göre, bir diziyi dizi yapan iki temel özellik vardır:


dizi elemanların bellekte (program çalıştığı sürece) sürekli biçimde bulunması
dizi elemanların aynı türden değişkenler olması
Diziler tek, iki ya da daha çok boyutlu olabilirler. Tek boyutlu diziler vektör, iki boyutlu diziler
matris olarak düşünülebilir.
2. Dizilerin Tanımlanması
Dizinin bir adı ve dizi içerisindeki elemanın dizinin kaçıncı elemanı olduğunu belirten
bir indisi (subscript, index) vardır. Örneğin, yukarıdaki x adlı dizi için x ifadesi bu dizinin 3
numaralı elemanını yani 22 değerini göstermektedir.
C Programlama Dili'nde, bir dizi hangi tipte tanımlanmış olursa olsun başlangıç indisi her
zaman 0'dır.
Bir dizinin bildirim işleminin genel biçimi şöyledir:
veriTipi dizi_adı[eleman_sayısı];
Veri tipi (data type) program içinde kullanılacak değişken, sabit, fonksiyon isimleri gibi
tanımlayıcıların tipini, yani bellekte ayrılacak bölgenin büyüklüğünü, belirlemek için kullanılır.
Bir programcı, bir programlama dilinde ilk olarak öğrenmesi gereken, o dile ait veri tipleridir.
Çünkü bu, programcının kullanacağı değişkenlerin ve sabitlerin sınırlarını belirler. C
programlama dilinde dört tane temel veri tipi bulunmaktadır. Bunlar:
char
int
float
double
Örneğin, 5 elemanlı, kütle verilerini bellekte tutmak için, kutle dizisi şöyle tanımlanabilir:
float kutle[5];
DİZİLER
Bu dizinin elemanlarına bir değer atama işlemi şöyle yapılabilir:
kutle[0]
kutle[1]
kutle[2]
kutle[3]
kutle[4]
=
=
=
=
=
8.471
3.683
9.107
4.739
3.918
Örneğin 30 kişilik bir sınıftaki öğrencilerin bir derse ait notlarını bellekte tutmak için notlar
dizisi şu şekilde tanımlanabilir.
int notlar [30];
Bu dizinin elemanlarına bir değer atama işlemi şöyle yapılabilir:
notlar[1]=65
notlar[2]=80
notlar[2]=58
…
notlar[29]=75
NOT !!! 1. elemanın indisi 0, 5. elemanın indisinin 4 olduğuna, n. elemanın indisinin (n-1)
olduğuna dikkat edin.
3. Dizilere Başlangıç Değeri Verme
Bir diziye başlangıç değerleri aşağıdaki gibi kısa formda atanabilir:
float kutle[5]= { 8.471, 3.683, 9.107, 4.739, 3.918 };
int maliyet[3] = { 25, 72, 94 };
double a[4] = { 10.0, 5.2, 7.5, 0.0};
Bir dizinin uzunluğu belirtilmeden de başlangıç değeri atamak mümkündür.
int a[] = { 100, 200, 300, 400 };
float v[] = { 9.8, 11.0, 7.5, 0.0, 12.5};
Derleyici bu şekilde bir atama ile karşılaştığında, küme parantezi içindeki eleman sayısını
hesaplar ve dizinin o uzunlukta açıldığını varsayar. Yukarıdaki örnekte, a dizisinin
4, v dizisinin 5 elemanlı olduğu varsayılır.
4. Dizileri Yazdırma/Okuma
printf ve scanf fonksiyonları bir dizinin okunması ve yazdırılması için de kullanılır. Örneğin
bir A dizisinin aşağıdaki gibi bildirildiğini varsayalım:
int A[10];
Bu dizinin elemanlarını klavyeden okumak için:
for(i=0; i<10; i++)
scanf("%d",&A[i]);
DİZİLER
Daha sonra bu değerlerini ekrana yazmak için:
for(i=0;i<10;i++)
printf("%d\n",A[i]);
5. Dizilerin akış diyagramında gösterimi
Örnek: 10 elemanlı bir diziye bilgi girişi yapan ve diziyi görüntüleyen akış şeması
Örnek: 15 elemanlı bir sayı dizisine bilgi girişi yapılarak elemanların toplamını bulan akış
şeması
Download