Amiga Dünyası sayı 8, sayfa 25

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 25

DEF FN KOMUTU:

Kullanım Şekli: DEF FN isim [(parametre-listesi)]=fonksiyon tanımı

Kullanıcıya fonksiyon tanımlama olanağı sağlayan komuttur.

isim, boşluk içermeyen geçerli bir değişken ismi olmalıdır ve DEF FN'den sonra isim boşluk bırakılmadan yazılmalıdır.

parametre-listesi, fonksiyon tanımındaki değişken isimlerini içerir ve fonksiyon program tarafından çağrıldığında bu değişkenler kullanılır. Değişken isimleri, virgül ile ayrılarak yazılır ve bu değişkenler çağrılan program fonksiyonundan geçirilen argüman değişkenlerinin karşılığı olan belirli değerleri ihtiva ederler.

fonksiyon tanımı, bir sayısal değer ifadesidir. Bir satırla sınırlıdır ve fonksiyondaki işlemi ifade eder. İfadedeki değişken isimleri, program değişkenleri ile aynı olmak zorunda değildir.

Bir fonksiyon çağrıldığında, bir değişken ismi fonksiyon tanımı ve parametre listesinde aynı değerle belirtilir. Aksi takdirde, fonksiyon tanımındaki değişkenin o anki değeri kullanılır.

DEF FN ifadesinde, sayısal ya da yazısal fonksiyonlar tanımlanabilir. Fonksiyon, genellikle çağrılan ifadede belirtilen tipi alır. Yönergede kullanılan data tipi ile çağrılan ifadedeki data tipi arasındaki uyumsuzluk, AmigaBasic'in "Type mismatch" hatası vermesine sebep olur.

İki ayrı DEF FN yönergesinde aynı isimle iki fonksiyon belirtirseniz, Amiga-Basic'in son tanımlamayı geçerli sayacağını unutmayın.

DEF FN, program akışında fonksiyonun çağrılmasından önce yerleştirilmelidir. Aksi takdirde bu kez de "Undefined user function" hatasını alırsınız. DEF FN ifadesi, çıktı penceresinde doğrudan modda ya da bir alt program içinde tanımlanamaz.

Örnek: DEF FNYÜZDE(A,B)=(A/B)* 100 INPUT "BÜTÜNDEKİ PAYİ GİRİN ",PAY INPUT "TOPLAM MİKTAR? ".TOPLAM SONUÇ=FNYÜZDE(PAY,TOPLAM) PRTNT "TOPLAMDAKİ PAY %";SONUÇ

Program çalıştırıldığında PAY değişkenini 47, TOPLAM'ı 235 olarak verirseniz, çıktı penceresinde aşağıdakiler görüntülenir: BÜTÜNDEKİ PAYI GİRİN 47 TOPLAM MİKTAR NEDİR? 235 TOPLAMDAKİ PAY %20

DEFDBL, DEFINT, DEFLNG, DEFSNG, DEFSTR KOMUTLARI:

Kullanım Şekli: DEFDBL değişken-sınırı

DEFINT değişken-sınırı, DEFLNG değişken-sınırı, DEFSNG değişken-sınırı, DEFSTR değişken-sınırı

Verilen değişken tipindeki değişkenlerin baş harfleri sınırlanarak programda kullanılacak değişken tiplerini tanımlamak için kullanılan ifadelerdir. Değişken isimlerinde tiplere göre sınırlama için istenen harfler, değişken-sınırı kısmında belirtilir. Değişken Tanımlama İsmi Tip Karakteri DEFDBL Çift Açıklık # DEFINT Kısa Tamsayı % DEFLNG Uzun Tamsayı & DEFSNG Tek Açıklık (tanımlı) ! DEFSTR Yazısal Dizi $ Örnek: DEFLNG a-p,w

Bu yönerge, uzun tamsayı değişkenlerine verilecek isimleri a ve p harfi arasındaki tüm harfler ile w harfi ile başlayanları kabul eder.

DELETE KOMUTU:

Kullanım Şekli: DELETE [başlangıç satırı] [-bitiş satırı]

Program satırlarını silmek için kullanılır. Yönergede satır numaraları ya da alfanümerik etiketler kullanılabilir. Belirtilen satırlar bulunamazsa, "Illegal function call" hata mesajı alırsınız.

DIM KOMUTU:

Kullanım Şekli: DIM [SHARED] değişken-listesi

Dizi için boyut belirtme komutudur. Bu komut, dizi değişkenleri için maksimum sayı belirtir ve saklama alanı yaratır.

DIM yönergesinde belirtilen boyut, 10'dan büyük olmalıdır; aksi takdirde AmigaBasic "Subscript out of range" hatası üretebilir. Verilebilecek en küçük değer (aksi OPTION BASE yönergesinde belirtilmedikçe) 0'dır. DIM ile belirtilebilecek maksimum dizi boyutu 255'tir; ancak bu sayı mevcut bellek miktarına göre arttırılabilir.

DIM yönergesi ile açılan dizi elemanlarının başlangıç değeri sıfır olarak Amiga-Basic tarafından yerleştirilir.

SHARED seçeneği, değişkenleri ana ve alt programlar tarafından erişilebilir yapmayı sağlar. DIM SHARED yönergesi her zaman ana program içinde belirtilmelidir. Bu seçeneği kullanarak tekrar yazmaksızın aynı DIM yönergesini birçok alt programda kullanabilirsiniz.

Bir dizi, bir programda yalnızca bir kez tanımlanabilir, aynı isimle yeni bir tanımlamaya izin verilmez. Farkında olmadan bu işlemi yapmışsanız ya da DIM yönergesini yanlış bir yere yazmışsanız, programı çalıştırdığınızda "Redimensioned array" hata mesajı ile karşılaşırsınız. Bu hatadan kaçınmak için, DIM yönergelerini programın başına yerleştirmelisiniz.

Şimdi bir örnekle bu komutu da tamam- layalım: DIMB(15) FOR 1=1 TO 19 READ B(I)

PRINT B(I); NEXT I DATA 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

END KOMUTU:

Kullanım Şekli: END

Tüm açık dosyaları kapatarak program çalışmasını bitirir ve bir önceki moda döner.

END yönergesi, programın çalışmasını bitirmek için istenen herhangi bir yere yerleştirilebilir, ancak genellikle programın sonu olması uygun görülür.

EOF KOMUTU:

Kullanım Şekli: EOF(dosya numarası)

End-Of-File (Dosya Sonu) koşulunu kontrol eder. Program içinde datalarınızı sakladığınız bir bilgi dosyasını okuma için bu kontrol kullanılır.

Fonksiyon, sıralı (sequential) bir giriş dosyasının sonuna ulaşıldığında, -1 (doğru) değeri alır. Bir INPUT yönergesi ile data okuma sırasında "Input past end" hatası almamak için EOF ile dosya sonunu kontrol ettirmek şarttır.

EOF, rasgele (random) erişimli bir dosyada kullanıldığında, son GET yönergesinin tam bir kayıt okuyamadığı durumlarda doğru değeri alır.

Ve koşula uygun olarak daha sonraki program adımına geçerek çalışmasını sürdürür.

EOF fonksiyonun çalışmasını bir ömek üzerinde inceleyelim: ÖPEN T',#l,"ADRES" WHILE NOT EOF(l) PRINT ASC(INPUT$(1,#1)) LET C=C+1:IF C=10 THEN PRINT:LET C=0 WEND CLOSE#l END

Dosya açma işlemlerini OPEN komutunu incelerken daha rahat anlayacaksınız. Örnekte var olan bir ADRES dosyası kullanılıyor ve WHILE NOT EOF koşulu ile işlemin dosya sonu olana kadar yapılması isteniyor. Dosya sonu olduğunda ise, END komutu ile program sona eriyor.

ERASE KOMUTU:

Kullanım Şekli: ERASE dizideğişken-listesi

Dizileri bellekten siler. DIM komutu ile oluşturulup içine bilgi saklanan diziler bellekte silininceye ya da makine kapatılıncaya kadar saklanır. Ancak henüz açılmamış bir dizi silinmek istenirse, bir hata mesajı alınır.

Örnek: ERASE Dizi

Bu aylık da bu kadar. Gelecek ay görüşmek üzere, hoşçakalın.....

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