(2) Eğer parametrede yeralan de- Zişkenin değeri dışarı gönderilecekse bu değişken DEĞİŞKEN PARA- METRE 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 kullan- mak gerekir. Bu tür bir parametreyi giriş/çıkış parametresi olarak adlan- dırabiliriz. — Bir DEĞİŞKEN parametresine karşılık gelen parametrenin sadece değişken olması gerektiğini, kesinlik- le bir ifade veya sabit olmaması ge- rektiğini söylemiştik. Eğer değişkenin değeri değişirse bir ifadenin veya sa- bitin 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 mozü- lün verilerini saklamak için hafızanın bir bölümü ayrılır. Bu bölgede mo- dülde yeralan bölgesel değişkenler ve modülde bildirilecek sabitler için yer bulunur. Modülden çıkıldığında ay- rılmış olan hafıza bölgesi silinir. Mo- dül çağrıldığında ise bu bölge yeni- den tanımlanır. Bu yüzden modül çağrıldığında modüle ait değişkenle- rin değerleri tanımlanmamıştır. PARAMETRE KURALLARI Modülün çağrıldığı komutla, mo- dülün başında yeralan parametre İis- tesindeki değişkenler birbirine karşı gelir. () Her iki tarafta da aynı sayıda parametre olmalıdır. (2 Birbirine karşı gelen paramet- relerin veri tipleri-aynı olmak zorun- dadır. B1 DEĞİŞKEN PARAMETRE'ye karşı gelen parametre sadece değişken olmak zorundadır. DEĞER paramet- resine 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üllerimizde kendi baş- larına ufak birer program oldukların- dan onlar da kendi içlerinde modül- ler tanımlayabilirler. PROGRAM ICICE; VAR X,Y :REAL; PROCEDURE DIS(VAR X :REAL); M,N :IİNTEĞER; PROCEDURE IC(X :REAL); VAR N, O :İNTEGER; BEGİN (* IC *) END; (* IC *) BEGİN (* DIS *) END; (* 1C*) BEGİN (* DIS *) END; (* DIS *) PROCEDURE MINIMODUL; CONST zf ı BOSLU BEĞİN (* MlNlMODUL *) END; (* MİNIMODUL *) BEĞIN (* ICICE *) END. (* ICICE *) BLOK HER DEĞİŞKENİN ANLAMI İÇ — X(İÇ modülünün parametre- si) N,O (bölgesel değişkenler) IÇ (DIŞ modülünde tanımla- nan modü Y (İÇİÇE progrâamında ta- nımlarımış değişken) DIŞ (İÇİÇE programında ta- nımlarımış modül) X (DIŞ modülünün paramet- resi) M,N (bölgesel değişkenler) İÇ (bölgesel modül) Y (İÇİÇE programında ta- nımlarmış değişken DIŞ (İÇİÇE programında ta- nımlarımış modül) DIŞ MİNİ- MO- DÜL BOŞLUK (bölgesel sabit) X,Y (genel değişkenler) DIŞ, MİNİMÜDÜL (İÇİÇE programmda tanımlarımış 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 PROCEDU- RE başlığını izleyen tanımlamalar, bildirimler ve komutlar dizisine BLOK adını veriyoruz. Bir değişken sadece bildirilmiş ol- duğu blokta geçerlidir. Bu değişkeni sadece bildirilmiş olduğu blokta kul- lanabiliriz. Değişkeni içeren bloğun dışında bu değişkeni kullanmak an- lamsız olur. Değişkeni kullanabildiğimiz prog- ram parçası değişkenin etki alanı için- dedir. Bu durumda bir değişkenin et- ki alanı tanımlandığı bloğu içerir. PROCEDURE HESAPYAZ; VAR 54 Commodore