REXX Programlama Dili - Alt Yordamlar ve İşlevler - Alt Yordamlar

REXX programlama dilinde alt yordamların tanımlanması işlemi, diğer yordamsal programlama temelli dillerdeki aynı mantık esası çerçevesinde gerçekleşmektedir. Bu işlemin gerçekleştirilmesini sağlayan anahtar kelime, Procedure anahtar kelimesidir. Bu anahtar kelimenin sağladığı olanaklar ışığında bir alt yordamın tanımlanması işlemine ait temel noktalar, izleyen satırlarda sıralandığı gibidir.

Nokta - 1

Alt yordamın ismi belirlenir. Bu isim belirleme işlemi gerçekleştirilirken İngiliz alfabesinde bulunan harflerin büyük/küçük yazılışları, rakamlar ve REXX yorumlayıcıları için özel anlamı olmayan karakterler, 256 karakter uzunluğunda kullanılabilir.

Nokta - 2

İsim belirleme işlemi yapıldıktan sonra, onu izleyen karakter konumuna veya bir boşluk bırakarak sonraki karakter konumuna bir tane iki-nokta-üst-üste (":") karakteri konulur.

Nokta - 3

Ardı sıra Procedure anahtar kelimesine ait Expose anahtar kelimesi kullanılarak, alt yordama değiştirge olarak geçirilecek değişkenlerin tanımı yapılır. Aynı şekilde, alt yordamdan çıkacak değerleri tutacak değişkenlerin tanımı yapılır.

Bu tanımlama işlemi yapılırken, kullanılacak değiştirge isimlerinin, alt yordamı bulunduran ana program içerisindeki değişkenlerle aynı isimde olmasına dikkate edilmelidir.

Ayrıca, belirtilen değişkenlerin dışında herhangi bir değişkenin belirtilmesi halinde bunun dikkate alınmaması isteniyorsa, bir tane nokta (".") işareti değişken listesinin sonuna konulmalıdır.

Nokta - 4

Alt yordamın gövdesine ait dizilimler yazılır.

Nokta - 5

Alt yordamdan dönecek değer, alt yordamın adından sonra belirtilecek değiştirge listesinde yer almayacaksa, geri dönüş değeri olarak belirtilecek değer, Return anahtar kelimesi kullanılarak geri gönderilir.

Nokta - 6

Alt yordamı dizilimsel anlamda sonlandırmak amacıyla bir tane Return anahtar kelimesi sona yerleştirilir.

Buraya kadar değinilen 6 noktanın dikkate alınması sonucu tanımlanan alt yordamın çağrılması işleminin gerçekleştirilmesi için izleyen satırlarda belirtilen noktaların dikkate alınması önerilir.

Nokta - 1

Call anahtar kelimesinin ardı sıra alt yordamın ismi yazılır.

Nokta - 2

Ardı sıra, alt yordama giriş değiştirgesi olarak aktarılacak değişkenler ile varsa alt yordamdan çıkış değeri olarak kullanılacak değişkenlerin listesi yazılır.

Nokta - 3

Eğer alt yordamdan çıkış değeri olarak herhangi bir değişken kullanılamayacaksa, RESULT özel değişkenin değeri kullanılır.

Buraya kadar değinilen toplam 9 noktanın ışığında örnek bir alt yordamın tanımlanması ve çağırılması işlemine ait ayrıntılar, izleyen satırlarda belirtildiği gibidir.

Ayrıntı - 1

Çağırılmak istenen alt yordamın adı "ay1" şeklinde olsun. Bu alt yordam için geçerli olacak giriş değiştirgesinin adı da "giris" şeklinde olsun. Alt yordamın gövdesinde, kendisine "giris" isimli değiştirge ile verilen değerin standart normal çıktı ortamına yazılmasına ilişkin dizilim olsun. Üstelik, bu alt yordam şimdilik bir değer döndürmesin. Bu durumda

/* */

giris = 200

Call ay1 giris

Exit 0

/* ----- */

ay1 : Procedure Expose giris

Say 'Giriş Değeri = ' giris

Return

dizilimleri yazılabilir. Dikkate edilmesi gereken nokta, Procedure Expose değişkeni ile belirtilen "giris" isimli değişkenin, ana program içerisinde de yer almasıdır. Eğer farklı bir isim belirtilseydi, bu durum hataya neden olabilirdi.

Ayrıntı - 2

"ay1" isimli alt yordama "giris" değiştirgesi ile aktarılan değer 2 ile çarpılsın ve alt yordamdan geri gönderilsin. Bu durumda, alt yordamdan dönecek değer RESULT özel değişkeni kullanılarak ele alınıp işlenebilir. Bu durumu örnekleyen dizilimler olarak da

/* */

giris = 200

Call ay1 giris

sonuc = RESULT

Say 'Dönen Değer = ' sonuc

Exit 0

/* ----- */

ay1 : Procedure Expose giris

donus = giris * 2

Return ( donus )

Return

/* ----- */

şeklindeki düzgü kesiti verilebilir.

Ayrıntı - 3

"ay1" isimli alt yordamdan dönecek değeri, "cikis" ismini taşıyan ve Call anahtar kelimesi kullanılırken alt yordam adından sonra belirtilen değiştirge listesi üzerinden elde edebilmek amacıyla

/* */

giris = 200

Call ay1 giris cikis

Say 'Çıkış Değeri = ' cikis

Exit 0

/* ----- */

ay1 : Procedure Expose giris cikis

cikis = giris * 2

Return

/* ----- */

dizilimlerine benzer bir yapının kullanılması yerinde olur.

Açıklama(lar)


İçindekiler Sayfası İçindekiler Sayfası