Commodore sayı 19, sayfa 54

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 54

(2) Eğer parametrede yer alan değişkenin değeri dışarı gönderilecekse bu değişken DEĞİŞKEN PARAMETRE tipinde olmalıdır. Bu tür bir parametreyi çıkış parametresi olarak adlandırabiliriz. (3) Eğer modüle gönderilen bilgi işlenerek geri gönderilecekse o zaman DEĞİŞKEN PARAMETRE kullanmak gerekir. Bu tür bir parametreyi giriş/çıkış parametresi olarak adlandırabiliriz. Bir DEĞİŞKEN parametresine karşılık gelen parametrenin sadece değişken olması gerektiğini, kesinlikle bir ifade veya sabit olmaması gerektiğini söylemiştik. Eğer değişkenin değeri değişirse bir ifadenin veya sabitin değişmesi gerekeceğinden bu çok saçma olurdu. Bu yüzden değişken parametrelerde sadece değişken kullanabiliyoruz.

PROCEDURE VERİ BÖLGESİ

Her modül çağrılışında, o modülün verilerini saklamak için hafızanın bir bölümü ayrılır. Bu bölgede modülde yer alan bölgesel değişkenler ve modülde bildirilecek sabitler için yer bulunur. Modülden çıkıldığında ayrılmış olan hafıza bölgesi silinir. Modül çağrıldığında ise bu bölge yeniden tanımlanır. Bu yüzden modül çağrıldığında modüle ait değişkenlerin değerleri tanımlanmamıştır.

PARAMETRE KURALLARI

Modülün çağrıldığı komutla, modülün başında yer alan parametre listesindeki değişkenler birbirine karşı gelir. (1) Her iki tarafta da aynı sayıda parametre olmalıdır. (2) Birbirine karşı gelen parametrelerin veri tipleri aynı olmak zorundadır. (3) DEĞİŞKEN PARAMETRE'ye karşı gelen parametre sadece değişken olmak zorundadır. DEĞER parametresine karşı gelen parametre değişken, sabit veya bir ifade olabilir.

İÇ İÇE MODÜLLER

Şimdiye kadar modüllerimizi ana programdan sonra tanımlamıştık. Gerçekten modüllerimiz de kendi başlarına ufak birer program olduklarından onlar da kendi içlerinde modüller tanımlayabilirler.

PROGRAM ICICE;

VAR X,Y :REAL; PROCEDURE DIS(VAR X :REAL); VAR

M,N :İNTEGER; PROCEDURE IC(X :REAL); VAR N, O :İNTEGER; BEGIN (* IC *)

END; (* IC *) BEGIN (* DIS *)

END; (*1C*) BEGİN (* DIS *)

END; (* DIS *) PROCEDURE MINIMODUL; CONST BOSLUK (* MINIMODUL *)

EN! (* MINIMODUL *) BEGIN (* ICICE *)

END. (* ICICE *)

BLOK HER DEĞİŞKENİN ANLAMI

İÇ — modülünün parametresi) N,O (bölgesel değişkenler) İÇ (DIŞ modülünde tanımlanan modül) Y (İÇİÇE programında tanımlanmış değişken) DIŞ (İÇİÇE programında tanımlanmış modül) DIŞ — X (DIŞ modülünün parametresi) M,N (bölgesel değişkenler) İÇ (bölgesel modül) Y (İÇİÇE programında tanımlanmış değişken) DIŞ (İÇİÇE programında tanımlanmış modül) MİNİMODÜL BOŞLUK (bölgesel sabit) X,Y (genel değişkenler) DIŞ, MİNİMODÜL (İÇİÇE programında tanımlanmış modüller) İÇİÇE X, Y (genel değişkenler) DIŞ, MİNİMODÜL (İÇİÇE programında tanımlanmış olan modüller)

DEĞİŞKENLERİN ETKİ ALANI

Bir FUNCTION veya PROCEDURE başlığını izleyen tanımlamalar, bildirimler ve komutlar dizisine BLOK adını veriyoruz. Bir değişken sadece bildirilmiş olduğu blokta geçerlidir. Bu değişkeni sadece bildirilmiş olduğu blokta kullanabiliriz. Değişkeni içeren bloğun dışında bu değişkeni kullanmak anlamsız olur. Değişkeni kullanabildiğimiz program parçası değişkenin etki alanı içindedir. Bu durumda bir değişkenin etki alanı tanımlandığı bloğu içerir.

PROCEDURE HESAPYAZ; VAR

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