Commodore sayı 19, sayfa 52

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 52

BURAK KİPER

PROCEDURE (Alt programlar)

Yazdığımız bir fonksiyon kendisine veri olarak bir veya birkaç parametre alıp sadece bir tek değer elde eder. Bu yüzden birkaç veri karşılığı sadece bir değer elde edeceğimiz durumlarda fonksiyon yazmak yararlı olabilir. Peki yazacağımız modülün birden fazla sonuç vermesi gerekiyorsa ne yapabiliriz? Bu noktada bize yardımcı olarak PROCEDURE'lar yani alt programlar devreye giriyor. Alt programlar sayesinde yazımızın başında da söylediğimiz gibi programımızı, ufak birçok modül yazıp bunları birleştirerek oluşturabiliyoruz. Modüllerimiz birçok parametre alıp birçok sonuç elde ederek sonuçları kendisini çağıran ifadeye iletebiliyor, bu sırada parametreleri tanımlama şeklinize göre veri parametrelerinin de değerleri değişikliğe uğrayabiliyor. İlk olarak yapısını görelim:

PROCEDURE procedure-ismi; Bölgesel-bildirim-bölümü BEĞİN komutlar END;

PROCEDURE kelimesinden sonra sizin vermiş olduğunuz isme göre modülümüz tanımlanmış olur.

Bölgesel-bildirim-bölümü'nde yer alan tüm değişkenler sadece modülümüz çalıştırıldığında tanımlıdırlar ve sadece modülün içinde kullanılabilirler.

Yazdığımız modülü çalıştırmak istediğimizde adını yazmamız yeterli olur. Eğer modülümüz parametrelere sahip olacaksa yapısı aşağıdaki gibi olmalıdır.

PROCEDURE proc-ismi (parametreler); Bildirim-bölgesi BEGIN komutlar END; Aynı şekilde isteğimize göre modülümüze isim vererek modülümüzü tanımlamış oluyoruz. Bundan sonra parantez içinde parametreler yer alıyor. Bildirim bölgesinde yer alanlar sadece modül çalıştırıldığında tanımlı oluyorlar. BEGIN...END arasında modülümüzü oluşturan komutlar yer alıyor. Modülümüzü çalıştırmak için modülün adını ve parantez içinde parametrelerini vermek yeterli olur. Parametrelere göre hacim hesaplayacak bir modül hazırlayalım:

PROCEDURE HACİM (UZUN- LUK, GENİŞLİK, YÜKSEKLİK: REAL);

VAR H:REAL; BEGÜN H:- UZUNLUK*GENİŞLİK* YÜKSEKLİK; WRITELN (HACİM:0, H:9:1); END;

Bir yapısı program veya fonksiyon yapısına benzer. Sadece ayrılmış kelime olarak PROGRAM veya FUNCTION yerine PROCEDURE kullanıyoruz. Ancak PROCEDURE başlığı FUNCTION başlığından bir noktada ayrılıyor: Procedure ismi bir değer yüklemede kullanılmadığından sonuç veri tipine ihtiyaç duymuyoruz. Yukarıda yazmış olduğumuz modülü çalıştıralım:

Klavyeyle gezinmek için ← ve → tuşları.