Bu sayfadaki yazılar
Sayfanın metni
Sayfa 61
BURAK KİPER
Geçen bölümde yapısal veri tiplerinden dizileri incelemeye başlamıştık. Tek boyutlu dizilerden sonra sıra çok boyutlu dizileri incelemeye geldi. Tek boyutlu dizileri yukarı aşağı gelip gidebildiğimiz sayfalar olarak düşünebiliriz. Bazen iki boyutta ifade edilmesi gereken veriler için tablolar oluştururuz. Bu tabloları aşağı yukarı ve sağa sola gidebildiğimiz sayfalar olarak düşünelim. Bu tablolar iki boyutlu dizilerdir. Pascal'da iki boyutlu bir dizi tanımlayalım:
VAR T: ARRAYII..4,1..3) OF INTEĞER;
T isimli INTEGER değerli tablomuz dört sıra ve üç kolondan meydana geliyor. Kolonlar 1 ile 3 arasında indekse sahip. Sıralar ise 1 ile 4 arasında indekse sahip. Tanımladığımız tablomuzu bir sayfa olarak düşünün. Sayfamız dört satıra sahip. Her satır ise üç tane INTEGER sayı alıyor. Tanımladığımız tablo muhtemelen şu değerleri içeriyor olabilir:
K1 K2 K3 S1: 4 2 10 S2: 14 30 80 S3: 5 96 22
Tablodaki istediğimiz herhangi bir değeri indekslerini kullanarak ifade edebiliriz. Mesela (2,3) satır2, kolon3 80 değerini taşıyor. Tablodaki bir değere ulaşabilmek için ilk önce sıra(satır), sonra kolon indeksini vermemiz gerekir: |satır,kolon| Mesela, T|3,1| = 22 İki boyutlu dizi için iki indeks kullandık. Üç boyutlu bir dizi içinse üç indeks kullanmamız gerekirdi. Pascal normalde istediğimiz boyutta dizi tanımlamamıza izin veriyor.
Mesela üç boyutlu bir dizi tanımlayalım:
VAR B: ARRAYII..30,1..5,1..4) OF REAL;
B adlı diziyi sayfaların oluşturduğu bir kitap gibi düşünebiliriz. İlk indeks kitabın sayfa numarasını belirtir. İkinci indeks o sayfadaki satırı belirtir. Üçüncü indeks ise kolonu belirtir. Bu durumda kitabın 25 numaralı sayfasında 3 numaralı satırın ikinci kolonuna bir değer vermek istersek:
Bİ25,3,2): —4.4; RECORD-KAYIT
Son olarak yapısal veri tiplerinden dizileri inceledik. Dizilere birçok yüksek seviye programlama dillerinde rastlayabiliriz. Şimdi bahsedeceğimiz yapısal veri tipi ise PASCAL gibi yapısal programlamaya yatkın dillerin dışında diğer yüksek seviye programlama dillerinde bulunmaz. Bu yeni yapısal veri tipine RECORD adı veriliyor. RECORD sözcüğünün dilimizdeki karşılığı kayıt, sicil, tutanak anlamlarına geliyor. Bu veri tipinin yaptığı adına çok uygun. PASCAL'ın çok popüler bir dil haline gelmesinde bu veri tipinin katkısı çok büyük. Dizilerde yer alan bireylerin hepsinin aynı türde olması gerekiyordu. Buna karşın RECORD ile tanımladığımız bir değişkenin birimleri farklı veri tiplerine sahip olabilir. Mesela INSAN adlı bir değişkeni RECORD olarak tanımlarsak bu değişkenin birimlerinde o insana ait yaş, doğum yılı, iş, adres ve benzeri bilgileri saklayabiliriz. Bir dizide herhangi bir elemana indeks sayesinde ulaşabiliyorduk. Bir RECORD içinde ise alanlar bulunuyor. Bu veri tipini daha iyi anlamak için bir örnek görelim: Diyelim ki, bir kayıt tutmak istiyoruz. Kayıtta şu bilgiler yer almalı: İsim, cinsiyet, aylık ücret, giriş yılı.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 60
İkinci parça karşılaştırma yapan bölümdür. Bunu while işleminin kullanımında gördük. For çevrimi bu eşitlik sağlanana kadar devam eder. Örnekte bu bölüm fahr <= 300 olarak görülmektedir. For çevriminin fahrenayt ısı değerinin 300'den küçük ya da eşit olana kadar devam edeceğini ifade etmektedir. For çevriminin devam etmesi printf (...... ) işleminin fahr <= 300 olana kadar tekrarlanması demektir. Eşitliğin sağlanmaması durumunda bir alt işleme geçilir. Örnekte printf (.....) işleminden sonra bir işlem olmadığından program sona erer. Son ve üçüncü bölüm ise işlem bölümüdür ve her for çevriminde bir tekrarlanır. Bu işlem yardımıyla ilk örnektedir adım değişkeninin kullanılması gereği ortadan kalkmaktadır.
SEMBOLİK SABİTLER:
Son örnekte kullandığımız adım ve en yüksek ısı değeri 20 ve 300 olarak belirlenmiştir. Doğal olarak bu değerler farklı olabilir. Örneğin hesaplama her 10 birimlik artımda tekrarlanabilir. Bu durumda program
Commodore'la açık öğrenim :
içinde düzeltme gereklidir. Bu işlemin pratik olmaması nedeniyle sabitlerin sembolik gösterimi özelliğinden yararlanılabilir.
Örneğimizi bu mantıkla tekrar yazarsak:
# define ENDÜŞÜK O 4&define ENYÜKSEK 300 # define ADIM 20
main ()
int fahr; for (fahr -ENDÜŞÜK; fahr < - ENYÜKSEK; fahr -fahr * ADIM) printf (“ fahr, (5.0/9.0)*(fahr-32));
Örnekte EN DÜŞÜK, EN YÜKSEK, ADIM #define komutu ile yanındaki değerlere eşitlenmiştir. Böylece bir değişiklik gerektiğinde sadece bu bölüm düzenlenir. Sembolik sabitler genellikle büyük harflerle gösterilir. Bunun nedeni ise sembolik sabitlerin değişkenlerle karışmasını önlemek ve kolay incelenen program yazılımı sağlamak içindir. Ayrıca #define işleminin sonunda noktalı virgül (;) kullanılmadığını da belirtelim.