29.10.2014 Views

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

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

tation). Bu şekilde bilgisayarı kilitlemek<br />

gayet basit; bu sebeple programlarınızı<br />

yazarken, mümkün olan tüm hata kontrollerini<br />

kullanmanızda fayda var.<br />

Gelelim HiSoft BASIC'in kullanıcıya<br />

kazandırdığı ekstra komutlara. CONST<br />

komutu yardımıyla, sabitleri daha rahat<br />

tanımlayabilirsiniz. Bu sayede de hafızadan<br />

tasarruf edebilirsiniz. Zira LET komutuyla<br />

tanımlanan değişkenler hafızadan<br />

4 byte yerken CONST komutuyla tanımlanan<br />

sabitler hiç hafıza yemez. Aşağıda<br />

bu komutu kullanan bir örnek bulabilirsiniz:<br />

CONST InterLace=4<br />

CONST BitPlanes=3<br />

SCREEN 1,640,512,BitPlanes,InterLace<br />

Hem bu yöntem kullanılarak bazı sayıların<br />

ne anlam taşıdığını da kolaylıkla görebilirsiniz.<br />

DECR ve INCR komutları yardımıyla<br />

bir değişkeni birer birer artırıp azaltabilirsiniz.<br />

DECRx ===> x=x-l<br />

INCRx ===> x=x+l<br />

REDIM komutuyla, bir matris değişkenini<br />

tekrar tanımlayarak boyutunu rahatlıkla<br />

değiştirebilirsiniz. <strong>Amiga</strong>BASIC'te<br />

bunu yapmak için ilk önce ERASE komutunu<br />

kullanarak matrisi hafızadan silmeniz,<br />

ardından da DIM yardımıyla tekrar<br />

tanımlamanız gerekliydi. REDIM komutu<br />

yardımıyla boyutu değiştirilen bir matrisin<br />

içeriği tümüyle silinir. Fakat bunu da engelleyebilmek<br />

mümkün. REDIM AP-<br />

PEND kullanıldığında, matrisimizin hem<br />

boyutu değişmiş, hem de eski bilgiler silinmemiş<br />

olacak. Bu yöntem yardımıyla,<br />

örneğin bir kartoteks programında hafızanın<br />

otomatik olarak kart sırasına göre artması<br />

hızlı bir şekilde sağlanır.<br />

<strong>Amiga</strong>BASIC'te bir dosyanın diskette<br />

olup olmadığını kontrol etmek için, normalde<br />

dosyayı açmaya çalışmamız gerekli.<br />

Eğer hata mesajı alırsak, bunu ON ER-<br />

ROR... komutuyla algılayıp gerekli işlemleri<br />

yapmamız lazım. Fakat bu işlemler<br />

uzun sürer ve tam da güvenilir olmaz. Hi-<br />

Soft BASIC'teki FEXISTS komutuyla<br />

tüm bu işlemler bir IF..THEN döngüsü<br />

içinde kolaylıkla kontrol edilebilir. Aşağıda<br />

bu komutu kullanan ufak bir rutini inceleyerek<br />

kullanımını rahatlıkla öğrenebilirsiniz:<br />

IF NOT FEXISTSS("Dosya") THEN<br />

PRINT "Dosya bulunamadı."<br />

END IF<br />

Parantezler arasındaki tırnaklar içine<br />

dosyanın directory'sini ve ardından da<br />

dosyanın ismini yazmak mümkün. Burada<br />

uyacağınız kural gayet basit; isim, ilk önce<br />

device ismi (DF0:, vs...), directory ismi,<br />

işareti ve file ismi gelecek şekilde<br />

yazılmalı.<br />

Diskette directory yaratmak için<br />

MKDIR komutunu kullanabiliriz:<br />

MKDIR ("yenidirectory"). RMDIR ise,<br />

açılmış olan içi boş bir directory'i siler;<br />

kullanımı, MKDIR ile aynıdır.<br />

Dosyalarla ilgili diğer bir komut<br />

RESET'tir. Bu komut hiçbir parametreye<br />

gerek duymadan kullanılır ve açık olan<br />

tüm dosyaları kapar.<br />

BLOAD ve BSAVE komutları yardımıyla<br />

hafızanın istediğiniz belli bir bölümünü<br />

dosya olarak diskete kaydedebilirsiniz.<br />

PCOPY yardımıyla ekranın kopyasını<br />

grafik olarak yazıcıdan alabilirsiniz.<br />

Eklenen komutlar arasında döngüleri<br />

kolaylıkla yapmamızı sağlayan bazı komut<br />

grupları mevcuttur. Fakat bunlara<br />

geçmeden önce WINDOW komutuna yapılan<br />

eklemeleri tanıtmak istiyorum. Bunların<br />

hepsi de pencere tipini [window<br />

type) belirlemeye yarar.<br />

32: Pencere çerçevesiyle içeriği ayrı ayrı<br />

değerlendirilir. Bu şekilde sol üst köşe,<br />

artık pencerenin sol üst köşesi değil de,<br />

penceredeki kullanıma izin verilen alanın<br />

sol üst köşesi olur.<br />

64: Pencere, daima mevcut pencerelerin<br />

en arkasında kalır.<br />

128: Pencerenin kenarları olmaz.<br />

256: Verilen koordinatlar, pencerenin<br />

çerçevesi dahil ekranda kaplayacağı alanı<br />

belirler.<br />

Son olarak da değişik şekillerde döngü<br />

kurmaya yarayan komut paketlerini vereceğime<br />

söz vermiştim. Bu komutlardan ilki<br />

DO ... LOOP. Döngüye başlamak için<br />

verilebilecek komutlar şunlar:<br />

DO<br />

DO WHILE n=l<br />

DO UNTIL n=l<br />

Döngünün sonunda da aşağıdaki komutlardan<br />

birini kullanabilirsiniz:<br />

LOOP<br />

LOOP WHILE<br />

LOOP UNTIL<br />

Sadece DO kullanılan yerde ya LOOP<br />

UNTIL ya da LOOP WHILE komutu,<br />

son komut olarak kullanılmalı. Aynı şekilde<br />

ilk komut olarak DO WHILE ya da<br />

DO UNTIL kullanılan döngüde de son<br />

komut olarak sadece LOOP kullanılabilir.<br />

Ayrıca döngünün ortasından da çıkabilirsiniz.<br />

Bunun için ya EXIT LOOP ya da<br />

EXIT DO komutlarını kullanmalısınız.<br />

Size bu komutu daha iyi anlayabilmeniz<br />

için DO komutunun kullanıldığı kısa bir<br />

örnek vermek istiyorum:<br />

i=0<br />

f=l<br />

DO<br />

INCR i<br />

f=f*i<br />

UNTIL i=5<br />

Bu döngü, değişkeni 5 değerine ulaşıncaya<br />

kadar tekrarlanır.<br />

Son olarak da HiSoft BASIC'de uygulayabileceğiniz<br />

kısa bir rekursiv program<br />

vermek istiyorum. Bu sayede de rekursiv<br />

programlan daha iyi kavrayabilirsiniz.<br />

DEF FN fa(n)<br />

IF n

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!