Bu sayfadaki yazılar
Sayfanın metni
Sayfa 30
Merhaba... Artık AmigaBasic'te ufak tefek programlar yazabilecek duruma geldik değil mi? Komut komut ilerliyor ve her ay yeni komutlarla AmigaBasic'in yeni bir özelliğini daha öğreniyoruz. Bu ay INSTR komutundan başlayarak anlatımlarımızı sürdürüyoruz.
INSTR KOMUTU:
Kullanım Şekli: Değer= INSTR ([başlangıç pozisyonu,] yazısal dizi, aranacak yazısal dizi)
Bu fonksiyon, verilen yazısal dizi içerisinde, belirtilen başlangıç pozisyonundan başlayarak aranacak yazısal dizi karakterlerini arar. Başlangıç pozisyonu argümanını vermek zorunlu değildir, verilmezse arama ilk karakterden itibaren yapılır. Arama sonucunda yazısal dizi içerisinde aranacak yazısal dizi bulunursa; değer, aranan yazısal dizinin başlangıç karakterini verir.
Aranan karakter dizisi bulunamazsa, boşluk karakterlerinden oluşuyorsa veya içinde arandığı yazısal diziden daha uzunsa, INSTR fonksiyonu 0 değerini verecektir. Aynı sonucu başlangıç pozisyonunu yazısal dizi uzunluğundan daha büyük verdiğinizde de alırsınız.
Aşağıdaki örnekleri incelerseniz, komutun çalışmasını daha kolay anlayacaksınız:
INSTR ("Amiga","iga")
komutu, 3 sonucunu verir.
A=INSTR ("Merhaba","iga")
komutunda ise A, 0 değerini alır.
INSTR ("Test", "es")
komutu 2 değerini verirken;
INSTR (3,"Test","es")
komutu, 0 sonucunu verir.
INT KOMUTU:
Kullanım Şekli: Değer=INT(değer)
Bu komut, kayan noktalı bir ondalık sayıyı, tamsayıya çevirir. Bu fonksiyon CINT ve FIX fonksiyonlarından farklıdır. Pozitif bir sayıyı tamsayıya çevirirken virgülden sonrasını atıp tamsayı kısmını verirken; negatif sayıda bir yukarıya yuvarlayarak sonuç verir. Yani:
INT(3.4) INT(3.8)
komutlarının her ikisi de 3 sonucunu verirken,
INT(-2.2)
komutu, -3 değerini alır.
KILL KOMUTU:
Kullanım Şekli: KILL "dosya adı"
RAM, harddisk ya da disketten bir dosya siler. KILL komutu verildiğinde, dosya adı ile belirtilen dosya açık ise AmigaBasic "File already open" hata mesajı verir. Komut çalıştırıldığında silinen dosyanın .info uzantılı ikon dosyası da silinir:
KILL "Adresler"
komutu, o anki directory'den Adresler dosyasını siler.
Komut bir program içine satır olarak yazılabileceği gibi, doğrudan komut modundan yazılarak da kullanılabilir.
Farklı bir directory'den ya da sürücüden dosya silineceği zaman dosya adı başına pathname belirtilir.
KILL "df1:data/adres.dat"
gibi.
LBOUND UBOUND KOMUTLARI:
Kullanım Şekli: Değer=LBOUND (dizi adı [,boyut]) Değer =UBOUND (dizi adı [,boyut])
Bu fonksiyonlar, dizi adı ile belirtilen dizinin alt (Lower BOUNDary) ve üst (Upper BOUNDary) boyutlarını verir, dizi adı, programda tanımlanan bir dizi değişkenidir, ilk ve son dizi elemanı değerleri, DIM ve OPTION BASE ile tanımlanmış değerlerden alınır.
Örneğin
OPTION BASE 0: DIM a(200)
ile tanımlanmış bir dizi için;
LBOUND(a) komutu 0;
UBOUND (a) komutu 200 değerini verir.
boyut parametresi, çok boyutlu diziler için kullanılır. Tanımlı değer 1'dir. Örneğin;
DIM a(3,4,56) olarak tanımlanan bir dizide;
UBOUND(a,1) komutu 3;
UBOUND(a,2) komutu 4 ve
UBOUND(a,3) komutu 56 sonucunu verir.
LBOUND fonksiyonu, OPTION BASE'in 0 ya da 1 olmasına bağlı olarak, 0 ya da 1 değerini alır.
LBOUND ve UBOUND fonksiyonları, özellikle alt programa geçirilen bir dizinin boyutlarını tespit etmek için çok yararlıdır.
LEFT$ KOMUTU:
Kullanım Şekli: LEFT$(yazısal dizi,sayı)
LEFT$, girilen yazısal dizinin sol tarafından itibaren verilen sayı kadar karakterini alarak yeni bir yazısal dizi üretir. Yazısal dizi, 32767 karakterden uzun olamaz. Bu nedenle sayı, 0 ile 32767 arasında bir sayı olabilir.
LEFT$("Amiga'yı çok seviyoruz",5)
komutu, verilen dizi içinden "Amiga" kısmını alır.
LEN KOMUTU:
Kullanım Şekli: Değer=LEN(Yazısal dizi)
Yazısal dizi parametresinde verilen karakter dizisinde bulunan karakterlerin sayısını verir, yazısal dizi içinde boşluk ve kontrol karakteri varsa, onlar da sayılır.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 31
LEN("Amiga'yı çok seviyoruz")
komutu, 22 sonucunu verir.
LET KOMUTU:
Kullanım Şekli: [LET] değişken=değer
Belirtilen değişkene değer atar. LET komutunun yazılması zorunlu değildir. değer, bir ifade de olabilir.
Aşağıdaki örneklerde komutun her iki tür kullanımı da verilmiştir:
LET a=6:LET d=4 n=1:x=0 y=x+l
LIBRARY KOMUTU:
Kullanım Şekli: LIBRARY "dosya adı" LIBRARY CLOSE
Programınızda makine kodu alt rutinler kullanmak isterseniz, bu rutinleri yazmanız gerekmez; library'leri kullanabilirsiniz. Library'ler, pek çok yararlı fonksiyonlar içeren makine kodu programlardır.
dosya adı, çağrılacak fonksiyon ve alt program için AmigaBasic'in çağıracağı dosya adıdır. LIBRARY yönergesi ile programınıza aynı anda en fazla 5 library dosyası iliştirebilirsiniz. LIBRARY CLOSE yönergesi, LIBRARY ile açılmış tüm library'leri kapatır.
Library dosyaları, "Libs" directory'si içinde bulunur. AmigaBasic çağrılan bir library'yi bulamazsa "File Not Found"; yeterli bellek yoksa, "Out of memory" hata mesajlarını verir.
LIBRARY yönergesini kullanmak için, diskette .bmap dosyası yaratılmış olmalıdır; bu dosya, belirtilen library'deki rutinleri tanımlar.
LIBRARY "graphics.library" CALL SetDrMd& (WINDOW(8),3)
örneğinde, önce graphics.library açılıyor. Sonra da bu library'deki SetDrMd fonksiyonu çağrılıyor.
LINE KOMUTU:
Kullanım Şekli: LINE [[STEP](x1,y1) - [STEP] (x2,y2), [,renk] [,B ya da BF]
Bu komut, o anki çıktı penceresinde bir çizgi, içi boş ya da dolu bir dörtgen çizmek için kullanılır. En basit kullanımı bir çizgi çizen,
LINE(x1,y1)-(x2,y2)
formatıdır. (x1,y1), çizginin başlangıç noktasını; (x2,y2) ise, bitiş noktasını tanımlar. Başlangıç noktası verilmezse [LINE -(x2,y2)], AmigaBasic en son kullanılan grafik noktasından itibaren (x2,y2)'ye kadar bir çizgi çizer.
STEP parametresi, mutlak koordinatlar vermek yerine oran kullanılacağı zaman verilir. Başlangıç noktası olarak son tanımlanan grafik noktası kullanılır. Ve verilen adımlar bu noktadan itibaren atlanır. Son grafik noktası (25,10) olan bir durumda verilen:
LINE STEP (5,10)
komutu; x1 değerine 5, y1 değerine 10 ekler ve çizgiyi (30,20) noktasından başlatır. Bitiş noktası için verilen STEP ise aynı işlemi (x2,y2) noktalarına uygular.
renk, çizim için kullanılacak renk numarasıdır. Bu, bir PALETTE yönergesinde kullanılan renk-no'ya karşılık gelir.
",B ya da ,BF" parametreleri dörtgen çizimi için kullanılır. Bu durumda (x1,y1) ile (x2,y2) noktaları dörtgenin karşılıklı iki köşesini tanımlarlar. ",B" parametresi içi boş bir dörtgen çizer. ",BF" ise dörtgenin içini belirtilen renk ile doldurur.
Colors=4 SCREEN l,640,200,Colors,2 WINDOW 2,"Sinus Çizgileri",, 15,1 FORx=0TO617 co=co+1 :IF co>7 THEN co=0 y=90+80*SIN(x/40) LINE (0,90)-(x,y),co NEXTx
Örnek programı yazıp çalıştırırsanız, ekranınızın sinüs dalgaları şeklinde çizgilerle dolduğunu göreceksiniz.
LINE(10,10)-(300,100),1,B
komutu, (10,10) ile (300,100) köşegenleri arasına beyaz ve içi boş bir dörtgen çizerken:
LINE (10,10)-(300,100),3,BF
aynı dörtgeni içi dolu ve turuncu renkte çizer.
LINE INPUT KOMUTU:
Kullanım Şekli: LINE INPUT [;] ["Mesaj yazısı"] [, veya ;]yazısal dizi değişkeni
LINE INPUT komutu, programın çalışması esnasında klavyeden bir satır uzunluğunda yazısal dizi girişini okur ve onu belirtilen yazısal dizi değişkeni içine yerleştirir. Yazısal dizi virgül, noktalı virgül gibi karakterleri içerebilir. Giriş, [RETURN] tuşu ile bitirilmelidir. LINE INPUT, INPUT'tan farklı olarak sadece bir tane ve yazısal dizi değişkeni kabul eder. Verilen değişken yazısal dizi değişkeni olmazsa, "Type mismatch" hata mesajı üretilir.
Mesaj yazısı, AmigaBasic tarafından kullanıcıyı uyarmak için giriş bekleyen satıra yazılır.
LINE INPUT komutu, Mesaj yazısı içine yerleştirilmediyse soru işareti koymaz. Yazı ve değişken arasına virgül ya da noktalı virgül koymak arasında bir fark yoktur.
LINE INPUT ile mesaj yazısı arasına noktalı virgül koyulursa, ekrana yazılacak bir sonraki çıkış kullanıcı girişinin hemen sağından başlar.
LINE INPUT "Adınızı girin:";AD$
komutu, satır imlecinin bulunduğu pozisyona mesajı yazar ve giriş bekler.
LINE INPUT# KOMUTU:
Kullanım Şekli: LINE INPUT# dosya numarası;yazısal dizi değişkeni
Bu komut da aynen LINE INPUT gibi çalışır; ancak karakter dizisini klavyeden değil bir sırasal dosyadan okur.
dosya numarası, OPEN komutu ile yaratılmış bir dosyanın numarasıdır. yazısal dizi değişkeni ise, AmigaBasic'in okunan karakterleri atayacağı değişkenin adıdır.
Dosyadan okunacak karakter dizisinin RETURN [CHR$(10)] ve satır sonu [CHR$(13)] karakterlerini içerecek şekilde düzenlenmiş olması gerekir. Bunlar dışındaki tüm karakterler yazısal dizi içinde kullanılabilirler.
OPEN "0",#2."BİLGİLER" LINE INPUT "Müşteri Bilgileri?";M$ PRINT #2,M$ CLOSE #2 OPEN T\#2,"BİLGİLER" LINE INPUT #2,M$ PRINT M$ CLOSE #2
programı, hem LINE INPUT, hem de LINE INPUT# komutlarına örnek teşkil ediyor. Program önce BİLGİLER adlı dosyayı yaratıyor; kullanıcıdan müşteri hakkında bilgileri istiyor ve klavye girişini okuyarak M$ değişkenine yerleştiriyor. Sonra da M$ değişkenini açtığı dosyaya kaydediyor. Dosyayı bir kez daha açıyor, ama bu kez okuma için. M$ olarak kaydettiği bilgiyi dosyadan okuyup ekrana yazıp, dosyayı kapatıyor.
Gelecek ay, LIST komutundan itibaren devam edeceğiz. Hoşçakalın...