ARRAY yapısal veri tanımlama- sında köşeli parantezler arasında in- deks tipini, OF'dan sonra ise bu di- zideki verilerin tipini tanımlarız. İn- deks basit veri tipinde olmak zorun- dadır. İndeks için INTEGER, CHAR veya sizin tanımladığınız bir basit veri tipini kullanabilirsiniz. Ancak, CONST A-—1.5; B-9.9; TYPE | X- ARRAYJA..Bİ OF INTEGER; şeklinde bir tanımlama yapmanız yanlış olur. Çünkü köşeli parantez- ler arasında yeralan indeks için RE- AL veri tipini kullandık. OF'dan sonra gelen veri tipi için is- tediğiniz veri tipini kullanabilirsiniz. X değişkenimiz aşağıdaki verilere sa- hip olsun: XÜ - XEB): — XIN, XI21, X3), XI4), XISI değiş- kenlerine indeksli değişken adı veri- lir. İndeksli değişkenleri normal de- Bişkenleri kullandığımız şekillerde kullanabilirsiniz. İndeksli değişkenle- re READ ve READLN komutları ile değer yükleyip, WRİTE ve WRI- TELN komutları ile değerlerini yaz- dırabiliriz. Kendi tanımladığımız veri tipleri- ni array'lerin indekslerini tanımlama- da kullanabileceğimizi söylemiştik: TYPE | SATRANÇ -— (PİYON, AT, FİL, KALE, VEZİR, ŞAH); VAR DEĞER:ARRAY İSATRANÇI OF INTEGER; bu şekilde bir tanımlama yaparsak, VALUEİPİYON):- 1; VALUEJATI: — 3; VALUEFFİLİ: -3; VALUEİKALEJ: - 5; VALUE|VEZİR): - VALUEİŞAHJ: — 1000; bu komutları kullanabiliriz. Tek Boyutlu Diziler Diziler ve FOR komutu birlikte 60 çok uyumlu bir şekilde çalışabilirler. İndeks değişkenini her seferinde bir arttırarak sıra ile dizideki tüm ele- manlara ulaşabiliriz. Sıra ile dizide- ki tüm elemanlara ulaşabildiğimiz için aynı işlemleri dizideki tüm değiş- kenlere uygulayabiliriz. Mesela bir di- zinin tüm elemanlarının değerlerini toplayalım: TOPLAM: - 0; FOR I:-1TO 5 DO TOPLAM: - TOPLAM 4 Bil) I değişkeninin değeri her seferinde bir artacağından sıra ile B değişkenin- de bulunan tüm elemanların değerleri TOPLAM değişkeninde toplandı. Dizideki indeks sabit bir sayı ol- mak zorunda değil, örneğimizde ol- duğu gibi bir ifade olabilir. Bu şekil- de programımız indeks değerini ken- disi hesaplayabilir. Program Döküm Eki'ndeki PROGRAM | her saat için sıcaklığı alıp günün en sıcak, en soğuk ve or- talama sıcaklığını hesaplıyor. ISI di- zi değişkenine yirmidört saatin veri- leri okunuyor. Mesela, ISI|1) değiş- keninde günün birinci saatinin, ISIfSI değişkeninde günün onbeşinci saati- nin ısısı saklanıyor. Program Döküm Eki'ndeki PROGRAM3, ufak bir bütçe progra- mı. Ön başlık altında aylık harcama- ları hesaplayacak bir program. Prog- ramımız başlık numarasını ve yapılan harcamayı veri olarak alıyor. PASCAL'da genelde, dizilerin ele- manları ile tek tek uğraşabiliriz. Me- sela iki diziyi tek bir komutla topla- yamayız. Ancak iki dizi aynı veri ti- pine sahipseler tek komutla birbirine eşitleyebilirsiniz: CONST MAX — 100; TYPE INDEKS-İ.MAX; ARR - ARRAYJINDEKS) ÖF REAL; AR X, Y, Z : ARR; BEĞİN :eT END. Bu program; FOR I:-TO 100 DO Xİ:-YD yerini tutuyor. PACKED Array Bir dizi tanımlarken ARRAY'in ba- şına PACKED getirebiliriz. Mesela, Z:PACKED ARRAYİI..5) OF BOO- N; PACKED kelimesi sayesinde Z di- zisindeki değerler bilgisayar hafızası- na mümkün olduğu kadar sıkıştırıla- rak yazılır. Bu sayede hafızadan ka- zamnırız, ancak sıkıştırılmış dizinin ele- manlarına ulaşma hızımız biraz aza- lir. Genellikle BOOLEAN veya CHAR veri tipindeki dizileri sıkıştır- mak yararlı olur. Sıkıştırılmış bir dizinin elemanla- rına da normal bir dizideki gibi ula- şabiliriz. Mesela: VAR PCPACKED ARRAYII..SI OF CH BEĞİN C:-PCJA); PCS): — AŞ END. Sıkıştırılmış dizileri kullanmada karşılaştığımız bir sorun var. READ (Z(3) şeklinde bir komut yanlışı olur. Bunun yerine, READ (C) ZEB): - komutları aynı işi görür. Program Döküm — Eki'nde PROGRAMÂA ve 5 programları da di- zilerle ilgili. PROGRAMA veri olarak girdiğiniz bir satırlık yazıda her har- fin ne kadar kullanıldığını bulur. PROGRAMŞ, her harfin yerine geçe- cek başka bir harf alıp yazmış oldu- ğunuz satırı şifreler. Karakter Dizileri Değerleri karakter dizisi olan değiş- kenleri tanımlamak için PACKED ARRAY tanımını kullanacağız: PACKED ARRAY (i...n) OF CHAR YIYAZI; BEĞI -'Commodore'; END. Yapısal veri tiplerine gelecek yazı- mızda devam edeceğiz. Şimdilik hoş- çakalın... D