Delphi’de Diziler

Diziler değişkenlerin devamı niteliğindedir. Yani, dizileri kullanabilmek için değişkenleri bilmeniz şarttır. “Diziler nedir?” sorusuna gelirsek, bir veri grubunu tek bir değişkende tutmaya yarayan değişkenlerdir.

var
dizi:Array [0..10] of String;

elimizde 0..10 a kadar yani 11 tane String değişken oldu 🙂 bunu nasıl kullanırız?

dizi[0]:='Ahmet';//dizinin 0. değerine 'Ahmet' yazdırdık
dizi[1]:='Kürşat';//dizinin 1. değerine 'Kürşat' yazdırdık
dizi[2]:='ÇAKIR';//dizinin 2. değerine 'ÇAKIR' yazdırdık
Caption:= dizi[0] + ' ' + dizi[1] + ' ' + dizi[2];//formun caption ına Ahmet Kürşat ÇAKIR yazdırdık...

İki küçük ipucu:
Low(dizi) bize dizinin başlangıç değerini (bizim dizi için 0)
High(dizi) bize dizinin bitiş değerini (bizim dizi için 10)

Çok Boyutlu Dizi

Birden fazla boyutu olan diziler. Ben 2 boyutlu üzerinde çalışma örneği vereceğim, ancak istediğiniz kadar boyut kullanabilirsiniz. İki boyutlu dizi ise bir nevi tablo gibi yani matris de denebilir, hatta matris 🙂 Bunu tanımlamanın iki çeşitli yöntemi vardır;

var
ikiboyut: array [0..10,0..10] of string;
ucboyut: array [0..10,0..10,0..10] of string;
ikiboyut2: array [0..10] of array [0..10] of string;
ucboyut2: array [0..10] of array [0..10] of array [0..10] of string;

kullanımı da iki çeşit 🙂 ancak şuna dikkat çekiyorum ki: her iki yöntem her ikisi içinde geçerlidir.

ikiboyut[0,0]:='Ahmet';
ikiboyut[0][1]:='Kürşat';
ikiboyut[1,0]:='ÇAKIR';
ikiboyut[1][1]:='Delphi';

Gördüğünüz üzere bazı veriler atadık bunları tablo ile örnekleyecek olursak oluşan veri şu şekildedir;

Ahmet Kürşat «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş»
ÇAKIR Delphi «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş»
«Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş»
«Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş»
«Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş»
«Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş»
«Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş»
«Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş»
«Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş»
«Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş»
«Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş» «Boş»

3 boyutluyu bir küp, 4 boyutluyu… bilemeyeceğim 🙂 ama istediğiniz kadar tanımlayabilirsiniz.

Dinamik Diziler

Bunlarda boyutunu istediğimiz zaman istediğimiz gibi ayarlayabileceğimiz dizi tipleri.

Tek boyutlu için örnek verirsek;

var
dinamikdizi: array of string;

şeklinde tanımlarız. Kullanmadan önce boyutunu ayarlamak zorundayız. Boyutunu ise şu şekilde ayarlıyoruz;

SetLength(dinamikdizi,10);//boyutuna 10'a ayarladık...

Kullanımı diğeriyle aynı 🙂 Çok boyutluyu şöyle tanımlıyoruz;

var
dinamik_ikiboyut_dizi: array of array of string;
dinamik_ucboyut_dizi: array of array of array of string;
//...

Boyutunu şu şekilde ayarlarız;

var
i:integer;
begin
SetLength(dinamik_ikiboyut_dizi,10);//eksen 1 10a ayarlandı...
for i:=Low(dinamik_ikiboyut_dizi) to High(dinamik_ikiboyut_dizi) do  //döngüyle eksen 1 e ait tüm değerleri gezeriz
SetLength(dinamik_ikiboyut_dizi[i],10);//eksen 2 10a ayarlandı...

Evet, denemek için yüz küsür belkide bin küsür boyutlu bir dizi tanımlamak isteyebilirsiniz, ancak bilgisayar kaynakları sınırını geçemeyeceğinizi hatırlatmak isterim 🙂

Tags: , , , , , , , , ,

No comments yet.

Leave a Reply

*