LABEL'dan sonra gelen komut ye- rine BEGİN...END blokları arasın- da komut grupları da olabilir. CASE AY OF 1,3,5,6,8,10,12: GUN:- 31; 4,6,9,1 :GUN: — 30; 2 : BEĞGİN I FRAC (Y/4)-0 THEN GUN: - 29 ELSE GUN: -— 28; END: Üstteki programımızda AY, GÜN ve Y değişkenlerinin INTEGER veri tipinde daha evvel tanımlandığını ka- bul ediyoruz. FRAC fonksiyonu ya- pılan bölmenin kalanını hesaplıyor. Hangi komutun işleneceğini sapta- yan değeri üreten ifadeye “seçici”” de- nir. Seçici'nin değeri INTEGER ola- rak sınırlandırılmamıştır; REAL ve- ri tipi hariç şimdiye kadar öğrenmiş olduğumuz tüm veri tiplerini kullana- biliriz. Aşağıdaki ufak programı in- celeyin. PROGRAM örnek; VAR NOT: CHAR; BEGIN READLN (NOT); CASE SECIM OF “A*: WRİTELN (Cok iyi”); *“B': WRİTELN (İyi”); *“C': WRİTELN (Orta'); *“D': WRİTELN ('Geçer”); “E*: WRİTELN (ÇZayıf”); END; END; CASE komutunda kullanılan LA- BEL 'ların veri tipi seçici değişken ve- ya ifadenin veri tipi ile aynı olmak zo- rundadır. Son olarak program döküm ekin- de bulacağınız programın genel açık- lamasını görelim: Programımız bir işyerinde çalışan komisyoncuların çalışma şekillerine göre alacakları ücreti saptıyor. Çalışanlar üç grupta hesaplanıyor; geçici, düzenli, kıdemli. Programımız satıcının ne kadarlık satış yaptığını sorduktan sonra hangi türde olduğu- nu (G)eçici, (D)üzenli, (K)ıdemli so- rusunu yönelterek öğreniyor. Yapılan seçim TİP değişkenine yükleniyor. WHİLE döngüsü ile G, D, veya K. harflerinden sadece birinin seçilmesi 56 sağlanıyor. CASE komutu ile yapılan seçime göre program akışı sağlanı- yor. CASE TİP OF *G': “Geçici satıcı için komisyon hesapla” “D”': “Düzenli satışı için komisyon hesapla”” “K': “Kıdemli satıcı için komisyon hesapla”' END ALT PROGRAMLAR Şimdiye kadar herhangi bir prog- ramlama dilinde görülebilecek ko- mutları öğrendik. Yazımızın başında PASCAL'ın modüler programlama için çok uygun bir dil olduğunu söy- lemiştik. PASCAL'ı böylesine güçlü bir dil yapan nedir? Büyük boyutta bir program yapacağımız zaman, programımızı her biri kendi başına bir program sayılabilecek modüller halinde hazırlarız. Bu modüllerin bir- leşmesi ile programımız oluşur. Mo- düler bir program yazmak bize ne gi- bi faydalar sağlar? İlk olarak yapa- cağımız işleri ufak parçalar ayırıp, bu parçalarla tek tek uğraşabiliriz. Ha- zırladığımız modüllerin sağlıklı bir şe- kilde çalıştıklarını anlamamız, boyut- ları ve yaptıkları işler ufak olduğun- dan çok daha kolay olur. Program- da her hangi bir mantık hatası çıktı- ğında, hatanın nerede olduğunu ara- mak için uzun araştırmalara girme- miz gerekmez; soruna sebep olan mo- Commodore dülün elden geçirilmesi hatanın gide- rilmesi için yeterli olur. Nasıl bir araba başlıca dört teker, dört kapı, bagaj kapakları, kaporta ve iç aksamdan oluşursa, biz de prog- ramımızı böyle küçük parçalara, ya- ni ait programlara ayırarak hazırla- TIZ. Modüler bir programlama yapma- nin başlıca üç yararını sayabiliriz: (i) Programımız için bir modül ha- zırlarken dikkatimizi sadece bu bölü- me yöneltebiliriz, böylece programı kolaylıkla başedilebilecek parçalara ayırmış oluruz. I21 Çok büyük programlarda aynı anda farklı kişiler programın farklı modüllerini hazırlayabilirler. IB Eğer bir modülün programda birden fazla yerlerde kullanılması ge- rekiyorsa modül bir kere yazıldıktan sonra ihtiyaç duyuldukça kullanıla- bilir. Başka programlama dillerinde de alt programlar bulunuyor, ancak PASCAL'da alt programlar çok da- ha önemli bir yer tutuyor. BASIC”- de bir alt programı ancak satır numa- rası vererek çağırabiliyorsunuz ancak PASCAL'da alt programınızın, da- ha doğrusu modülünüzün adını ver- meniz yeterli oluyor. Öncelikle alt programların yapıla- rını inceledikten sonra programları- mızı modüler biryapı kullanarak na- sıl hazırlayacağımızı göreceğiz. FUNCTİONS (fonksiyonlar) SOR, SORT, TRUNC, RO- UND önceden tanımlanmış olan fonksiyonlardan bazılarıdır. Ancak önceden tanımlanmış olan fonksi- yonlardan hiçbirisi ihtiyacımızı kar- şılayamazsa ne yapabiliriz? FUNCTION bildirimi ile istediği- miz bir fonksiyonu tanımlayabiliriz. Verilen bir sayının isteğimiz üstünü bulabilen fonksiyonu aşağıda incele- yebilirsiniz. FUNCTION USALMA (X:RE- AL;N:İINTEGER4):REAL; VAR SONUÇ : REAL; I:İNTEĞER; BEGIN SONUÇ: —1.0; FOR 1:—1 TO ABS(N) DO SONUÇ: — sonuç*X;