IFN -—0 THEN USALMA: - SONUÇ ELSE USALMA: - 1.0/SONUÇ END; Kendi yazdığımız fonksiyonda da- ha önceden tanımlı olan ABS() fonk- siyonunu kullandık. ABS() fonksiyo- nu sayesinde N değişkeninin değeri negatif de olsa gerekli sayıda çarpma işleminin yapılması sağlanmış oldu. Fonksiyonumuzun ilk satırını oluş- turan: FUNCTION USALMA(X: REAL;N:IİNTERGER):REAL; fonksiyonun ismini ve parametrele- rini belirliyor. Fonksiyonumuzun na- sıl çalıştığını anlatmadan evvel kul- lanıcı tarafından tanımlanan fonksi- yonların yapısını görelim: FUNCTION fonksiyon-ismi (Pa- rametreler): Sonucunun veri tipi; Bölgesel-bildirim-bölümü BEGİN Fonksiyonu oluşturan komut satır- ları END; FUNCTION'dan sonra fonksiyo- nun ismini yazıyoruz, daha sonra pa- rantez içinde fonksiyonun paremet- releri bildiriliyor, son olarak bu satır- da parantez kapatıldıktan sonra iki nokta üst üste koyularak (*:') fonk- siyonun sonucunda elde edilecek ne- ticenin veri tipi bildiriliyor. Bölgesel-bildirim-bölümü'nde bil- dirilen tüm değişkenler sadece bu fonksiyon çağrıldığında tanımlı hale geliyorlar. BEGIN...END arasında fonksiyonu oluşturan komut satırla- rı yer alıyor. Komut satırlarının en az birinde komutun sol tarafında olmak üzere fonksiyonun adının bulunma- sı gerekiyor. Üstteki örneğimizde USALMA: - SONUÇ; şeklinde bir ifade kullanmıştık. Bu şekilde kulla- nılan bir ifade sonucunda fonksiyon çalışmasını bitirdiği zaman bulduğu değeri ismine yükler. Üstteki örnekte dikkatinizi ilk ola- rak fonksiyonun sonu olan END sa- tırından sonra noktalı virgül *;* gel- diği çekmiştir. Gerçek fonksiyon ya- pısı bakımından program yapısına benziyor, ama END komutundan sonra nokta “.” yerine noktalı virgül *” geliyor. Fonksiyon tanımlarken dikkat et- memiz gereken iki nokta bulunuyor. ) Sonucun veri tipi standard veri tiplerinden (BOOLEAN, INTEGER, REAL, CHAR) biri olmak zorunda- İ 121 Eğer fonksiyonumuzda para- metre bulunmayacaksa parametreler bölümünü ve parantezleri kullanma- yız. Örneğimizde tanımladığımız fonk- siyonu nasıl kullanacağız? Programı- mızın herhangi bir satırında fonksi- yonun adını ve gerekli paremetreleri vererek istediğimiz sonucu elde ede- biliriz. ÇARPIM değişkeninin prog- ramımızda REAL veri tipi ile tanım- landığını kabul edelim. Programımız- da şöyle bir satır kullanabiliriz: ÇARPIM: - USALMA (5.0,4); Fonksiyonumuzda beş sayısının dördüncü üssünü bulmasını istiyoruz, bu komut işlendiğinde ÇARPIM de- ğişkeninin içeriği 625 olur. Şimdi satır satır fonksiyonumuzun nasıl çalıştığını görelim: Ayrılmış kelimelerden (RESER- VED WORDS) olan FUNCTION ile bir fonksiyonun yazılımına başlıyo- ruz, daha sonra fonksiyonun ismi he- men sonrasında da parantez içinde parametreler geliyor. Fonksiyon program içinden çağrıldığında'prog- ramın içinde adını ve parantez için- de parametrelerini vermemiz gereki- yor. Parametreleri de fonksiyon ya- zılirken kullanılan sıraya göre verme- miz gerekir: Commodore Programda ÇARPIM: — USALMA (5.0,4); demiştik. Parametrelerin birbirlerin- den virgül (*,”) ile ayrıldıklarına dik- kat edin. 5.0 değeri X parametresine, 4 değeri N parametresine karşı gel- mektedir. Eğer parametreleri karşı- lıklı gelecek şekilde vermezseniz hiç ummadığınız neticeler elde edebilece- ğiniz gibi hata mesajları ile de karşı- laşabilirsiniz. Eğer fonksiyonumuzun hiç bir pa- rametresi yoksa parantezleri kaldır- mamız gerekir. Fonksiyonumuzu tanımlarken pa- rantez içine yazmış olduğumuz (X:REAL;N:İTEGER) ne anlama geliyor? Fonksiyonumuzun iki para- metresi var. İlk parametre olan X de- Bişken REAL veri tipinde, ikinci pa- rametre olan N değişkeni ise INTE- GER veri tipinde olmalı anlamına ge- lir. USALMA(5.0,4) ile fonksiyonu- muzu çağırdığımızda X değişkeni 5.0 değerini alırken N değişkeni 4 değe- rini alıyor. Parantezden sonra gelen :REAL ise fonksiyonumuzun neticede REAL veri tipinde bir sonuç göndereceğini alıyor. Fonksiyonumuzu yazarken en az bir ifadenin solunda fonksiyonun is- minin bulunması gerektiğini söyle- miştik. Bu sırada fonksiyonun ismi normal bir değişkenmiş gibi davranır ve fonksiyonun başlığında yer alan parantezlerden sonra belirttiğimiz ve- ri tipine sahip olur. Bir fonksiyon hiç bir parametre al- mayacağı gibi örneğimizde gördüğü- müz gibi birden çok parametre de alabilir. Program çalışması sırasında fonk- siyonun adı ile karşılaştığında özel bir hafıza bölgesi hazırlar. Bu bölgede fonksiyonda tanımlanan değişkenler yer alır. Örneğimizde USALMA, SO- NUÇ, I, X, N değişkenleri için yer ayrılır. Fonksiyon yazarken yapabileceği- niz hatalardan birisi de, fonksiyonu yazarken fonksiyonun ismini bir ifa- denin sağında kullanmanız olabilir. Çünkü fonksiyonun ismi sadece bir ifadenin solunda kullanıldığında de- Bişken vazifesi görür. Program Döküm Eki'nde bir fonk- siyonun nasıl programda kullanıldı- ğına dair bir örnek program bulabi- lirsiniz. BN A L | KŞK 37