Dizi Yapıları
Çok Boyutlu Diziler
50 satr ve 80 sütundan oluşan bir sayfa bellekte 4000 uzunluğunda tek boyutlu dizi kullanarak saklanabilir. Tek boyutlu dizide herhangi bir elemana satır ye sütun numarası verilerek doğrudan erişilemez. Satır ve sütun numarasını vererek herhangi bir elemana doğrudan erişebilmek için dizinin satır ye sütun şeklinde iki indeksi olması gerekir. Diğer bir deyişle dizinin iki boyutlu olması gerekir. İki boyutlu sayfa veri tipi aşagıdaki şekilde tanımlanablir:
type
SayfaTip =Array[1.. 50, 1..80]of char;
var
Sayfa: SayfaTip;
Yukarıda görüldüğü gibi, boyutların kademeleri virgül ile birbirlerinden ayrılmaktadırlar. Birinci kademe birinci indekse, ikinci kademe ise ikinci indekse aittir. Sayfanın elemanlarının Sayfa[satır,sütun] şeklinde erişilr. Örneğin 2. satır 5. sütundaki elemana Sayfa[2,5] ifadesiyle erişilir.
İki boyutlu dizilere değer atayabilmek için iç içe döngü kullanmak gerekir. Yukarıdaki sayfa değişkenin 'A' karakteri ile için aşağıdaki ifade yazılabilir:
for satir:= i to 50 do
for sutun:1 to 80 do
sayfa[satir,sutun]:='A';
İki boyutlu diziler satır ve sütunlardan oluşan tabloların işlenmesi için kullanılır. Benzer şekilde, üç boyutlu diziler satır, sütun ve katmanlardan oluşan verilerin işlenmesi için kullanılabilir. Örneğin 100 sayfalık bir kitabı saklamak için aşağıdaki üç boyutlu diziyi tanımlanabilir:
type
KitapTip = Array [1.. 100, 1.. 50, 1.. 80] of char;
var
kitap: KitapTip;
Üç boyutlu kitap değişkeninde herhangi bir karaktere kitap[sayfa, satir, sütun] şeklinde erişilebilir. Örneğin 2.sayfa, 5.satır, 40.sütundaki elamana kitap[2,5,40] ifadesiyle erişilir. Örnekte görüldüğü gibi her indeks verinin bir özelliği ile ilgilidir. Pascalda dizilerin boyutu ve büyüklüğü bilgisayarın belleği ile sınırlıdır. Genellikle üç boyuttan daha yüksek boyutlar kullanılmaz.
İki boyutlu diziler satır veya sütun şeklinde işlenebilirler. Aşağıdaki şekilde 3*4 lük bir tablonun satır ve sütun olarak işlenmesi görülmektedir.
Satır ve sütun bazında işlemler.
b)Sütun bazında okuma
Şimdiye kadar anlatılan diziler iki boyutluydu. Programlama dillerinde ikiden yüksek sayıdaki boyutlarda dizi tanımlamak da mümkündür. Temel olarak programlama dillerinin çoğunda matrisin boyutunun bir limiti yoktur yani 3 boyutlu 4 boyutlu yada 100 boyutlu diziler tanımlanabilir.
Aslında dizi tanımı sırasında tek limit bilgisayarın donanım ve işletim sistemi kaynaklarından doğar. Yani örneğin bir tam sayı değerinin (int) 2 bayt (byte) kapladığı bir işletim sisteminde 10000×10000x10000 boyutlarına sahip 3 boyutlu bir dizi tanımlanırsa ( 104 104 104 = 1012 x 2 byte = 2×1012 byte ~ 1 terabyte) yaklaşık olarak 1TB yapar ki bu günümüz bilgisayarları için oldukça yüksek bir RAM miktarıdır.
Programlama dillerinde çok boyutlu diziler iki boyutlu dizilerde olduğu gibi boyut miktarını belirten ilave sayılar tanımlayarak gösterilir. Örneğin:
int a[5][5][5];
şeklindeki bir tanım C/C++ dillerinde veya
int [][][] a = new int[5][5][5];
şeklindeki bir tanım JAVA vey C# dillerinde 5×5x5 boyutlarında 3 boyutlu bir dizi tanımlamak için kullanılabilir.
Burdaki boyut sayısında bir limit bulunmamaktadır. Örneğin
int a[5][5][5][5][5];
şeklindeki bir satır ile 5 boyutlu (ve her boyutu 5 olan) bir dizi tanımlanabilir.