Pascal (3)
Yazımızın geçen bölümünde PASCAL'ın bazı temel komutları ile, çıktılarımızı nasıl düzenleyebileceğimizi görmüştük. Bu yazımıza veri tiplerinin tanıtılması ile başlayacağız.
VERİ TİPLERİNE GİRİŞ
PASCAL'ı bilgisayar dilleri arasında popüler yapan özelliklerden biri de birçok ayrı türde bilgi türünü kullanabilmesidir. PASCAL'da iki tür numerik veri tipi REAL ve INTEGER. Bu veri tiplerinde çalışırken aritmetik işlemlerden +, -, *, / ve eşitleme işareti olarak da := kullandık. Bu aritmetik işlemcilere ek olarak INTEGER veri tipinde kullanabileceğimiz iki aritmetik işlemci daha bulunmaktadır. Bunlar DIV ve MOD aritmetik işlemleridir. Bu aritmetik işlemleri daha sonra detaylı olarak anlatacağız. INTEGER veri tipi ile REAL veri tipi arasındaki fark, INTEGER veri tipinde sayıların tam sayı olmasıdır. Buna karşın REAL veri tipindeki sayılar kesirlidir. INTEGER veri tipinin REAL veri tipine göre kullanımı daha kısıtlıdır. INTEGER veri tipini daha çok programlarımızda herhangi bir olayın tekrarlanmasını saymada kullanırız. REAL veri tipindeki sayılar bir desimal nokta içeren rakam grubundan oluşur. REAL veri tipindeki sayıları bilimsel gösterimlerde yazmak mümkündür. Bu durumda sayı bir tam sayı veya kesirli sayı ile başlar, bunun hemen arkasından E harfi gelir. Bu harfi + veya - işaret, en sonunda da sayının kuvvetini içeren iki rakam olacaktır. REAL veri tipindeki sayıların geçerli ve geçersiz olabilecek örnekler bulunmaktadır. Geçerli REAL sayılar Geçersiz REAL sayılar
3.14 260 (. dan sonra sayı yazılmamış) -0.0007 (. dan evvel sayı yazılmamış) 454321.0 14 (. dan evvel sayı yazılmamış)
-34E-04 - -18.E-07 (-18. sayının REAL kısım hatalı)
-4.345E2 (-434.5) -21E5 (.5 sayının tam kısmı hatalı) 1.3E 46 (1.1234 REAL kısmı hatalı)
INTEGER veri tipi ile ilgili olarak PASCAL'da MAXINT standart belirteci tanımlanmıştır. Bu standart değişkenin değeri her PASCAL sisteminde farklıdır, kullanmakta olduğunuz PASCAL sisteminde bu standart değişkenin değerini öğrenmek için WRITELN (maxint) komutunu yazınız. Veri tiplerinden üçüncüsü CHAR veri tipidir. CHAR veri tipindeki değişkenlerde tek bir karakter tutabilirsiniz. Bu tipte tanımlanmış olan bir değişkene atayacağınız karakteri (') işareti içinde bulundurun. Programınızda READLN komutu kullanarak CHAR veri tipindeki bir değişkene bilgi okuttuğunuzda o anda klavyeden girilen karakter bu değişkene atanır. Klavyeden giriş sırasında boş karakter göndermek için boşluk tuşuna basınız. Bir CHAR veri tipindeki değişkene programınızda boş karakteri atamak istiyorsanız AD := ' ' şeklinde yazın, eğer '' şeklinde yazarsanız bir hata mesajı ile karşılaşırsınız. Aşağıda CHAR veri tipinde bir değişkenin ve sabitin tanımlanması yer almaktadır.
CONST
VAR
har, ad: CHAR;
Dördüncü standart veri tipi BOOLEAN'dır. Bu veri tipine bu ad matematikçi GEORGE BOOLE'den verilmiştir. Bu veri tipinin alabileceği sadece iki değer bulunmaktadır. Bu değerler TRUE ve FALSE'dur. Bu veri tipi, yazımızın ileriki bölümlerinde göreceğimiz kontrol komutlarında kullanılmasında bize lazım olacaktır. Mesela I değişkeninin değeri J değişkeninin değerine eşittir gibi komut eğer her iki değişkenin değeri de birbirine eşitse doğrudur, aksi takdirde yanlıştır. Bu komutun doğruluk veya yanlışlığına bilgisayarın karar vermesi için bu iki değişkenin değerlerinin hafızaya konması gerekir. Bu karşılaştırmada sonucu BOOLEAN veri tipinde bir değişkene konduğunu düşünürsek bu değişken TRUE veya FALSE değerlerinden birini alır. BOOLEAN veri tipinde kullanacağımız işlem işareti '=' (Eşit'tir). Örnek olarak J = I diyebiliriz. Eğer J ve I değişkenlerinin değerleri birbirlerine eşitse o zaman bu komut doğrudur. Eğer değişkenlerin değerleri birbirlerinden farklı ise bu komut yanlıştır. = işlemcisinin kullanımına örnekler aşağıda yer almaktadır.
Değer FALSE TRUE FALSE TRUE
PASCAL'da BOOLEAN veri tipinde kullanılan yedi işlemci vardır. Biz şu anda bunlardan altısını tanıyacağız. Aşağıda bu işlemleri kullanarak yapılmış komutlar bulunmaktadır. Bu komutlara göre BOOLEAN ifadesinin alacağı değerler açıklanmıştır. I ve J komutlarda kullanılan değişkenlerdir.
İFADE DURUM I=J I değişkeni J değişkenine eşittir. I<J I değişkeninin değeri J değişkeninden küçüktür. I>J I değişkeninin değeri J değişkeninden büyüktür. I<=J I değişkeninin değeri J değişkeninden küçük veya eşittir. I>=J I değişkeninin değeri J değişkeninden büyük veya eşittir. I<>J I değeri J değişkenine eşit değildir. Bu işlemcileri REAL, INTEGER, CHAR veri tipleri ile de kullanmak mümkündür. Aşağıda üstte verilen işlemcilerin komutlarda kullanımına örnekler verilmiştir.
DEGER 4<6 TRUE 3<>3 FALSE 5>4 TRUE 1.2<2.4 TRUE
2.5 >= 1.2 FALSE 4.4 <= 4.4 TRUE
CHAR veri tipinde bu işlemcilerin kullanılmasında şu örnekler verebiliriz.
İFADE DEĞER TRUE FALSE SA'< TRUE
Şimdiye kadar gördüğümüz işlemcilerin birbirlerine göre üstünlük sıraları vardır:
*,/,DIV, MOD İlk yapılacak >- <> Son yapılacak
İşlemcilerin sıralarına örnek:
5+2 < (1*3)-2 İlk önce çarpma işlemi 3+2>7-5 İlk önce toplama ve çıkarma 12 DIV 4-2+2 İlk önce DIV 5-3+2 İlk önce toplama İlk önce çarpma
BOOLEAN İŞLEMCİLERİ
Bu işlemciler NOT, OR ve AND'dir. Bu işlemcileri BOOLEAN ifadelerde kullanırız, bu ifadelerin sonucu BOOLEAN olur. NOT işlemcisinin aşağıdaki kullanılışında elde edilen değerlere dikkat ediniz.
İfade Değer
— FALSE NOT FALSE — TRUE
Aşağıda OR ve AND işlemcilerinin doğruluk tablosu yer almaktadır.
65
Örnek: (12 OR (5-2) AND NOT (343-6) Yazımızın bundan sonraki kısmında şimdiye kadar üç bölümde anlattıklarımızı kısaca gözden geçireceğiz. Bundan sonraki bölümden itibaren PASCAL dilinde yer alan tekrarlama komutlarını anlatmaya başlayacağız. İlk önce aşağıdaki altı maddeyi hiçbir zaman unutmayınız. 1. Bilgisayar hafızası hiçbir zaman boş değildir, hafızanın ilk içeriği olabilir. 2. Hafızadaki bir bilgi o yere yeni bir bilgi konduğunda yok olacaktır (mesela READLN komutu ile bir veri okutursanız). 3. Bir programı çalıştırmak için o programı önce bilgisayarınızın hafızasına yüklemelisiniz. 4. Herhangi bir verinizin işlenebilmesi için ilk önce o verinin hafızaya yazılması gerekir. 5. Bir bilgisayar kendi başına düşünemez, bilgisayarın bir işi yapabilmesi için ona önce o işi yaptıracak olan programı yüklemeliyiz. 6. Bilgisayarı programlamak çok eğlenceli olacaktır, fakat öncelikle sabırlı, düzenli ve dikkatli olmalısınız. Programlarınızda kullanacağınız her değişken, sabit belirteçleri ilk önce tanımlamayı unutmayın, unutmamanız gereken bir diğer şey de komutları noktalı virgülle “;” ayırmaktır. Şimdiye kadar öğrenmiş olduğumuz PASCAL komutları ve bunların yaptıkları işler şunlardır.
KOMUT ETKİSİ Program komutu PROGRAM adres (INPUT, OUTPUT) Programımızın ismi ADRES, veri dosyaları INPUT ve OUTPUT adını almıştır.
hiçbir zaman boş değildir, hafızanın programınız için anlamsız
Sabit tanımı CONST kdv belirtecine sabit olarak 0.1, yıldız belirtecine sabit olarak * atanmıştır. Değişken tanımı
SEL.
İfade Değer
— TRUE
TRUE TRUE VAR Hafızada REAL sayılar için a,b,c FALSE FALSE a, b, REAL; değişkenlerine INTEGER sayılar için TRUE AND TRUE TRUE i, j INTEGER; i ve j değişkenlerine yer TRUE AND FALSE FALSE
FALSE AND TRUE FALSE
FALSE AND FALSE FALSE kar := satış - alış; satış değişkeninin değerinden alış değişkeninin değeri çıkarılarak sonuç kâr
Yeni öğrendiğimiz işlemcilerle birlikte işlemcilerin üs- değişkenine atanıyor.
tünlük sıralamasını tekrar oluşturalım. WRİTE komutu WRITEÇUCRET -”, ücret değişkeninin değeri DİV MOD İlk yapılacak vcret:7:2); yedilik alanda noktadan sonra AND İki rakam olmak üzere yazılacaktır. READLN komutu READIN OR, AND ve NOT işlemcilerinizi komutlarda — zaman); hız ve zaman değişkenlerine nirken ifade de parantez kullanmanız çok iyi olacaktır, veri girişi yapılır. böylece meydana gelebilecek herhangi bir karışıklığı önlemiş olacaksınız. Şimdilik hoşçakalın... O