Amiga Dünyası sayı 3, sayfa 50

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 50

Merhaba... Amiga Basic yazımıza başlarken genel özelliklerinden bahsetmiş ve Amiga Basic'in gelişmiş programlama özelliklerini, alt programları, bellek yönetimini desteklemekte olduğunu anlatmıştık. Bütün bunların dışında bir de Amiga'nın mükemmel fonksiyon kütüphanelerine erişebilmesi, çok güçlü ve esnek özellikler kazandırmaktadır. Bu sayıda Amiga Basic'in bu tür yapısal özelliklerine biraz daha yakından bakalım isterseniz.

SUBPROGRAM (ALT PROGRAMLAR)

Alt programlar, alt rutinlere benzemekle beraber çok daha gelişmiş modüllerdir. Genellikle birçok program tarafından birlikte kullanılmak üzere yardımcı rutinler olarak hazırlanırlar.

Alt programlar da program yönergelerinden oluşurlar. Alt program kullanımının üç kayda değer avantajı vardır. Birincisi, alt programların değişkenleri ana programdan bağımsız kullanmalarıdır, öyle ki alt program ile ana programda aynı değişken isimlerini kullanmış bile olsanız, iki değişken ayrı kabul edilir ve ayrı değerleri ile korunurlar. Alt programdaki değişkenler BÖLGESEL DEĞİŞKENLER olarak adlandırılır, çünkü değerleri ancak alt programın kendi işlevi ile değişebilir. İkinci avantaj, yine birinci avantaja bağlı olarak ortaya çıkar. Bir alt program, yeniden yazılmaksızın kullanılabilir. Çünkü alt program çok az değişikliklerle yeni programlar içine yerleştirilebilirler. Üçüncü avantaj ise alt programların yanlışlıkla çalıştırılma imkânlarının olmamasıdır. Program çalışma akışı esnasında sadece CALL yönergesi ile alt programı çalıştırır, kendiliğinden

END yönergesi görene kadar bir alt rutin gibi işlem yapmaz.

Bir alt program SUB ve END SUB yönergeleri arasında oluşturulur. END SUB yönergesinden önce EXIT SUB yönergesi ile alt programdan çıkılabilir. Yönerge formatı aşağıda verilmiştir:

SUB alt program adı [(parametreler)] STATIC

[SHARED değişken-listesi] * * * END SUB

Alt program adı, en fazla 30 karakter uzunluğunda ve diğer SUB yönergesinde kullanılmayan herhangi bir geçerli belirteçtir.

Parametreler, basit ve dizi değişken olarak iki değişik giriş içerebilir. Girişler virgül ile ayrılır. Parametre sayısı sadece Amiga Basic satırı uzunluğu ile sınırlıdır.

STATIC: Mutlaka kullanılması gereken kelimedir. Alt program içindeki tüm değişkenlerin değerlerini yine alt program içindeki değerler olarak kalacağını ifade eder. Static değişken değerleri alt program dışındaki hiçbir işlemle değişmez.

SHARED değişkenler Alt program dışında ana program bölümleri tarafından değiştirilebilir. Paylaşılması istenen bu değişkenler, SHARED yönergesinden sonraki değişken listesi bölümünde açıkça belirtilmelidir. Alt program içindeki tüm basit ve dizi değişkenleri SHARED yönergesinde belirtilmedikçe bölgesel olarak düşünülürler. SHARED yönergesi, ana programdaki değişkenleri alt program içinde kullanmaya izin verir.

A=l: B = 5: C=10 DIM P (100), Q (100)

* * * SUB AMIGA STATIC SHARED A,B,P (), Q ()

* * * END SUB

Örneğinde ana programda tanımlanan C dışındaki tüm değişkenler AMIGA alt programı tarafından kullanılır. 3

Alt programlar içinde kullanıcı tanımlı fonksiyonlar, yeni bir SUB/END SUB bloğu, COMMON ve CLEAR yönergesi dışında tüm Amiga Basic yönergeleri kullanılabilir.

Ana program alt programı CALL yönergesi ve argüman listesi ile çağırır:

CALL alt program adı (argüman listesi) argüman listesi, ana programdan alt programa geçecek değişkenlerin listesini içerir. Bu komutla çağrılan alt programın ilk satırında CALL yönergesinde belirtilen argümanlara karşılık gelecek değişken isimleri belirtilmelidir. Değişken isimleri ile argüman isimlerinin aynı olması gerekmez. Sadece uygun sayı ve tipte olması yeterlidir.

CALL Ekle (A,B,C) * * * SUB Ekle (A,B,Z) STATIC Z=X+Y X=X+12 Y=Y+94 END SUB

örneğinde A, B ve C argümanlarının alt programdaki karşılıkları sırasıyla X, Y ve Z basit değişkenleridir. Program çalıştığında alt programdaki X, Y ve Z değişkenlerinin yeni değerleri ana programdaki A, B ve C değişkenlerinin yeni değeri olarak atanacaktır.

Ana program değişkenleri değerlerinin alt programda değişmesi istenmiyorsa, değişken isimleri parantez içine alınmalıdır:

CALL Ekle ((A), (B), sonuç) Parantez içindeki bu iki değişken Amiga Basic tarafından ifade olarak kabul edilir ve değerleri alt program tarafından değiştirilemez.

Basit değişkenleri ya da dizi elemanlarını bir Amiga Basic alt programına geçirmek için, değişken bildirimleri aynı şekilde yapılır. Aşağıdaki örnek programda bu tür bir bildirim örneği verilmiştir:

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