Amiga Dunyasi - Sayi 13 (Haziran 1991).pdf - Retro Dergi
Amiga Dunyasi - Sayi 13 (Haziran 1991).pdf - Retro Dergi
Amiga Dunyasi - Sayi 13 (Haziran 1991).pdf - Retro Dergi
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
kullanarak değiştirmelisiniz (sonlarındaki<br />
takıları silerek).<br />
CHAIN komutuyla kullanılan COM-<br />
MON komutunda hem ana programda,<br />
hem de yüklenen alt-programda gerekli<br />
değişkenleri ve sabitleri programın ilk satırında<br />
tanımlamanız gerekir. Bu tanımlama<br />
sırasında tüm değişken ve sabitleri ana<br />
programdaki COMMON satırında nasıl<br />
sıralamışsanız, alt-programlarda da aynı<br />
sırayı kesinlikle takip etmeniz gerekli. Ayrıca<br />
matris değişkenleri de COMMON<br />
kullanılarak sadece aşağıdaki şekillerde<br />
tanımlanabilir:<br />
DIM STATIC B( 10,3,2)<br />
COMMON B ya da<br />
COMMON K(4)<br />
DIM K(8,12,2,6)<br />
FRE komutu ile kullanılabilen -1, 0 ve 1<br />
parametreleri, nedense hep aynı değerleri<br />
vermekte. Bunun sebebi, herhalde AC-<br />
BASIC'in programlanmasındaki bir hatadan<br />
kaynaklanmakta. Bu yüzden bu komutu<br />
kullanmanın pek anlamı yok. Aynı<br />
şekilde CLEAR komutu da çalışmakta. İstediğiniz<br />
değeri girin, AC-BASIC bunu<br />
CLEAR gibi algılayacaktır. Bu komutun<br />
zaten pek faydası yok; çünkü compile edilen<br />
programlar sistem rutinlerini kullandıklarından<br />
gerektiği kadar hafızayı otomatik<br />
olarak ayırırlar.<br />
AC-BASIC'in bir diğer dezavantajı da<br />
matris değişkenlerinde ortaya çıkıyor. Bildiğiniz<br />
gibi, <strong>Amiga</strong>BASIC maksimum<br />
255 matris değişkenine izin veriyor. AC-<br />
BASIC bu konuda çok daha cimri; izin<br />
verdiği matris değişkeni sayısı 7!<br />
Alt-rutinlerde DIM SHARED komutu<br />
kullanılamaz; çünkü compiler hazırlanırken,<br />
piyasadaki <strong>Amiga</strong>BASIC de bu komutu<br />
alt-rutinlerde kullanamıyordu. Fakat<br />
compiler ile birlikte verilen SORTSUBS<br />
programı sayesinde bu tür hatalar engellenebilir.<br />
<strong>Amiga</strong>BASIC matris değişkenlerinin<br />
hepsi dinamiktir. Bu, matrisin gerektiğinde<br />
ekstra komut kullanımı gerekmeden islenilen<br />
boyuta getirebileceği anlamına<br />
gelmekte. Fakat compiler bunun yanı sıra<br />
bir de statik matrislere izin vermekte.<br />
Bunları tanımlamak için matrisi DIM komutu<br />
ile yaratırken satırın sonuna STATIC<br />
kelimesini eklemek yeter. Bu durumda<br />
derleyici compile işlemi sırasında tüm statik<br />
matrisleri ve bunlara ait tüm adresgöstergeçleri<br />
(addresspointer) yaratarak<br />
bunları programa hafıza adresleri olarak<br />
girer. Bu sayede compile edilen program,<br />
sonuçta bir hayli hızlı çalışacaktır. Fakat<br />
bu hızın da bir (hatta daha çok) bedeli<br />
vardır:<br />
1. ERASE komutu statik matrislerde kesinlikle<br />
kullanılamaz.<br />
2. Statik bir matris değişkeninin boyutları,<br />
program akışı sırasında değiştirilemez,<br />
sabit kalmalıdır.<br />
3. Matris değişkenlerinde grafik saklanacaksa<br />
(grafik için olan GET ve PUT komutlarıyla),<br />
bunların boyutunu iyi planlayarak<br />
hesabınızı yapmanız gerekmekte.<br />
Grafikler çok renkli ise, 3 boyutlu bir<br />
matris işinizi görecektir.<br />
4. OPTION BASE komutunu, ilk matris<br />
tanımlamasından (gerek statik, gerek dinamik)<br />
ve ilk matris kullanımından önce<br />
kullanmalısınız.<br />
DEF (DEFDBL, DEFINT, DEFLNG,<br />
DEFSNG, DEFSTR ve DEF FN) komutlarını<br />
kullanırken de bazı garipliklere rastladım.<br />
Bunun sebebi, komutu yanlış yerde<br />
kullanmam oldu. Bu komutlar DIM SHA-<br />
RED komutundan önce kullanılmalı. Ayrıca<br />
DEFINT'te de nedenini çözemediğim<br />
bir hata var. Bu yüzden bu komutu ya kullanmamanızı<br />
ya da çok dikkatli olmanızı<br />
tavsiye ederim.<br />
Bu kadar hatanın ve dezavantajın üzerine<br />
AC-BASIC compiler'm avantaj ve fazlalıklarına<br />
geçebiliriz. Bunlar arasında en<br />
yararlı bir tanesi var ki. bunun sayesinde<br />
kilometrelerce süren IF ... THEN ... EL-<br />
SE ... IF ... dizimlerinden kurtulabiliriz.<br />
Sadece compiler'da bulunan bu güzel komut<br />
paketi, SELECT ... CASE ... END<br />
SELECT komut dizimidir. Bunlar sayesinde<br />
rahatlıkla içice döngüler gerçekleştirebilirsiniz.<br />
Aşağıda bu iki yeni komutu<br />
kullanan ufak bir program bulunmakta.<br />
Bu sayede, komutların kullanımını rahatlıkla<br />
öğrenebilirsiniz:<br />
INPUT a,b<br />
PRINT "a değişkenini"<br />
SELECT CASE a<br />
CASE-1,>0<br />
PRINT "ya -1 ya da pozitif bir değerdir."<br />
CASE 7 TO 11<br />
PRINT "6'dan büyük ve 12'den küçük<br />
bir değerdir."<br />
CASE ,