Modüler Programlamanın Anahtarı PASCAL (2)

Burak KİPER azımızın ilk bölümünae PASCAL ile tanıştık, belirteçleri ve bazı komutları öğrendik. Bu yazımızda kaldığımız yerden devam edeceğiz.

WRITELN komutu

Programımızın çalışması sonucunda elde edilen neticeleri görebilmemiz için, değişken değerlerini gösterebilmemizin bir yolu olması gerekir. WRITELN (BU ”,SANT,'santimetreye eşittir.'); komutu aşağıdaki görüntüyü elde etmemize sebep olur. Bu 7.620000E-4-01 santimetreye eşittir. Bir WRITELN komutu çalıştığında ” işaretleri içinde kalan karakterler oldukları gibi basılırlar. Çıktıdaki sayıda yeralan E harfi ““on üstü” anlamına gelmektedir. Bir READLN komutundan evvel hangi değerleri istediğinizi kullanıcıya bildirmek için WRITELN komutunu kullanabilirsiniz. WRITELN('ÜÇ DEĞER GİRİNİZ”); READLN(DEĞER1,DEĞER2, DEĞER3); WRITELN komutunu çıktılarınız basmaktan başka, kullanıcıdan ne istediğinizi bildirerek kullandığınız programlarınızı anlaşılır şekle sokacaktır. Bu komutu kullanmadığınız takdirde, kullanıcı karşısına bir soru işareti çıktığında ne tür ve kaç tane veri gireceğini bilemeyecektir. WRITELN Ççıktı-listesi) Açıklama: Çıktılistesinde yeraldıkları sıraya göre bütün değişkenlerin değerleri basılacaktır. Çıktı listesinde yeralan bütün değişkenlerin basımı bittikten sonra imleç bir sonraki satırın başına ilerleyecektir.

Bir Pascal Programının Genel Hali

Şimdiye kadar başlıca altı PASCAL komutu öğrendik: PROGRAM komutu, CONST bildirimi, VAR bildirimi, '*: — READLN, WRI-TELN. Bu komutlar, yazacağınız programların çoğunda yeralacaktır. Şimdiye kadar öğrendiğimiz komutlardan başka bir program BEGIN ve END komutlarını da içerir. Programlarımız BEGIN ile başlar ve END ile biter. Bu iki komut'da ayrılmış kelimelerdir (Reserved Words). Programda yeralan komutlar birbirinden noktalı virgülle ';” ayrılır. Her PAS-CAL programı bir bildirme bölümü ve bir de programın ana kısmı olmak üzere iki bölüm içerir. Bildirme bölümünü, programımızda kullanacağımız değişkenleri tanımlamak için kullanırız. Programın ana kısmında da veriler işaretlenir. BEGİN komutu programın ana bölümünün başlangıcını işaret eder, END ise ana bölümün bittiğini işaret eder ve bir PASCAL programında yeralan son komut olmalıdır. Ayrılmış kelimeler olan BEGIİN ve END'den sonra noktalı virgül kullanılmaz, çünkü bunlar program komutu değillerdir. Bir PASCAL komutunu birden fazla satır kullanarak yazmanız mümkündür. Bir komut'u iki satır boyunca yazabilirsiniz, fakat bunu yaparken bir ayrılmış kelimeyi, bir belirteci veya bir sembolü bölmemelisiniz. Bundan başka noktalı virgül ';” ile ayırarak bir satırda birden fazla komut kullanabilirsiniz. Yazımız boyunca vereceğimiz örnek programlarda virgüllerden sonrâ, aritmetik işlemlerden (: — ,*, 4 ,—,/) önce ve sonra bir boşluk bırakacağız. Bundan başka AYRILMIŞ KELİME-LER'i (reserved words: CONST, VAR, BEĞIN, END) tek başlarına bir satıra yazacağız. Bundan başka programın bölümleri arasında bir boş satır yerleştireceğiz. Bu tip fazladan boşlukların kullanılması COMPILER tarafından gözönüne alınmadığı için programlarımıza bir zarar vermeyecektir, aksine bu tip bir uygulama programımıza okunabilirlik kazandıracaktır. Bu uygulama sırasında değişken isminin arasına boşluk koymamız hatalı olur, yani ÜCRET değişkeninin ÜC RET şeklinde yazmamız hatalıdır.

Programın Bildirim

Bölümü ve Programın Ana Kısmı

Programımızda kullanılan bütün belirteçler, ayrılmış kelime veya standart belirteç değilseler, bir kere tanımlanmak zorundadırlar. Bu tanımlama programın bildirim kısmında yapılır. Ayrılmış kelimelerden CONST ve VAR aşağıda gösterilecek sırada sadece birer kere kullanılabilirler. Bütün sabit bildirimlerinden (CONST) sonra, bütün. değişken bildirimleri (VAR) yapılır. CONST”dan sonra birden fazla sabit tanımlayabilirsiniz, VAR'dan sonra da birden fazla değişken tanımlayabilirsiniz. Bildirim bölümünü BEGIN ve END dahil olmak üzere programın ana kısmı izler. Program komutları arasında noktalı virgül bulunmalıdır. Programın sonundaki END'in sonunda da bir nokta olmalıdır. Aşağıda bir programın genel şekli verilmektedir:

PROGRAM prog-ismi (INPUT,OU-
TPUT);
CONST
sabit — değer;

,»

”»

sabit — değer;
VAR
değişken-listesi: veri tipi;

”

» değişken-listesi: veri tipi, BEĞIN program komutu;

”»

»

END.

Çıktıların Düzenlenmesi

Şimdiye kadarki örneklerimizde yeralan sayısal sonuçlar bilimsel gösterim şekli ile yazılmıştı. Bu şekliyle çıktıların görüntüsünde çok az bir kontrolümüz olur. Yazımızın bu bölümünde çıktılarımızın isteğimize göre nasil düzenlenebileceğini anlatacağız.

Tamsayılı (INTEGER)

Değerlerin Çıktısını Düzenleme

PASCAL 'da çıktıların kontrolü as-
lında oldukça kolaydır, bir çıktı satı-
rının tam istediğiniz gibi görünmesi-
ni sağlayabilirsiniz. PASCAL'da tam-
sayılı değer virgülsüz sayı demektir,
yani 30 sayısını buna bir örnek vere-
biliriz, fakat 30.0 tamsayılı (INTE-
GER) bir sayı değildir. Bunu aşağıda
bir örnek ile göreceğiz.
PROGRAM yas (ınput,output);
VAR
sonuç,dyıl,buyıl;
BEGIN
WRITE(SU ANKİ YIL NEDİR”);
READIN (buyıl);
WRITE ('DOĞUM YILINIZ”);
READIN (dyıl);
sonuç: — buyıl—dyıl;
WRITELN sonuç:5,
INTEGER;

“YAŞINDASINIZ/”); END. ŞU ANKİ YIL NEDİR 1987 DOĞUM YILINIZ 1965 SİZ 22 YAŞINDASINIZ WRIİTELN komutu içinde yeralan sonuç: 5 işareti 22 rakamının bu şekilde basılmasını sağlamıştır. Şimdi size çeşitli örneklerle çıktılarınızın ne şekiller alabileceğini göstereceğiz. Örneklerimizde “Ve” işaretli bir boşluk işareti anlamına geliyor.

Format Basılan Değer (düzenleme) çıktı 234 4 70 234 234 5 70 234 :6 70 Yo -234 4 -234 -234 :5 70 -234 -234 :6 70 Yo -234 234 tuzun o Yo 70234 (Uzun değişkenin değeri 6)

WRITE Komutu

Üstteki örnek programımızda dikkatinizi çektiyse WRITE komutu ile yazdırdığımız yazı ile programa girdiğimiz veri aynı satırda. Bunun sebebi WRITE komutu işlendikten sonra imlecin en son yazılan yerde kalmasıdır. Bu BASIC'teki PRINT komutuna benzemektedir. Bunun aksi olarak WRITELN komutu verilen çıktıyı yazdıktan sonra imleci bir sonraki satırın başına getirir. WRITE (çıktı-listesi) Açıklama: Çıktı listesindeki değişken veya sabitlerin değerleri basılır. Çıktı basıldıktan sonra imleç bir sonraki satırın başına ilerlemez. Aşağıdaki örneğimiz bir yolculuk sırasındaki ortalama hızı ve kilometre başına harcanan litreyi hesaplamaktadır. Programımızda hız = uzaklık/zaman ve yakıt = uzaklık/litre formüllerini kullanacağız.

PROGRAM yolculuk (ınput,output);
VAR
hız, zaman, uzaklık, yakıt, litre:
REAL;
BEGĞIN
write (MESAFE (KM):'); readIn
(uzaklık);
write (ZAMAN (SAAT):'); readIn
(zaman);
hız: — uzaklık/zaman;
writeln (ORTALAMA HIZ
(KPH): “,hız:5:1);
writeln (KİLOMETRE BAŞINA
KULLANILAN YAKIT (LI),
yakıt:5:1)
END.
MESAFE (KM): 100
ZAMAN (SAAT): 1.5
ORTALAMA HIZ (KPH): 66.7
BENZİNLT: 25
KİLOMETRE BAŞINA
KULLANILAN YAKIT
(LT)

:5:1 sembolü kesirli bir sayının beş basım yerinde gösterilmesi gerektiğini belirtir ve noktadan sonra bir rakam bulunabilir. Basılacak olan kesirli sayının noktadan sonra sadece bir rakamı basılacaktır, eğer gerçekte sayının noktadan sonra birden fazla rakamı varsa bunlar yuvarlanacaktır. İlk WRITELN komutu tarafından basılacak çıktı şu şekilde olmalıdır: ORTALAMA HIZ (KPH): XXX.X Burada X basılacak sayıların FORMAT'ını göstermektedir. Buna göre basılacak sayılar üç rakam, bir nokta, bir sayı şeklinde olacaktır. Örnekteki verilen formatta basılacak en yüksek sayı 999.9'dur. Bundan daha büyük sayıların bu format alanına sığması mümkün değildir. Bu yüzden programlarınızda vereceğiniz format alanlarını yeteri kadar geniş tutunuz, basılacak sayıların büyüklüğünden emin değilseniz bu alanları olması gerektiğinden büyük tutun. Eğer basılacak değerlerde negatif sayıların basılma şansı varsa, format alanı tanımlarken eksi işareti içinde yer ayırmayı unutmayın. Format tanımlarken kesirli bir değer için :4 şeklinde bir alan tanımlarsanız, o sayı bilimsel şekilde gösterilecek, fakat tanımladığınız alan genişliği kadar yer işgal edecektir. Aşağıda açıkladıklarımıza örnekler bulacaksınız.

Basılan Değer Format Çıktı 3.14159 1512 03.14 3.14159 3.14159 :5:3 3.142 3.14159 3.14159 :9 070-3.1E 4 00 -0.0006 :9 -0.0006 :8:5 -0.00060 -0.0006 :18:3 0706

ÇIKTI Listesi Olmadan WRITELN Komutu Karakterleri

İ Formatlama satırın basılmasını sağlayabilirsiniz. Bu şekilde, bir kullanım ile boş bir Bu komut çalıştığında imleç bir son- Kar akter basımında da formatlama - raki satırın başına gelecektir. yapabiliriz, eğer tanımlanan format alanı karakter grubunda büyükse, o

zaman yazının başında boşluk olacaktır. Eğer yazınız tanımlanan alandan büyükse, o zaman alanın belirttiği sayıda karakter basılır. Bütün bu durumlara aşağıda örnekler bulacaksınız.

Basılan Yazı Format Çıktı * Yak) ba | * 2 3 Yı | 'M 'MART” :ı2 " MA 'MART” :3 MAR 'MART” :4 MART :5 YMART

Şimdilik

———

STEREO Sİ

10
20
30
40
50
60
7O
80
| 90