AMIGA BASIC
Retro bilgisayarYum! Yeni bir sayı ve yeni bir bölümle karşınızdayız. Bu ayki komutlarımız biraz değişikçe olacaktır. Veri kontrol komutları READ - DATA Read - Data ikilisi ile programın veri kontrolü yapmasını kolaylaştırabilirsiniz. Read komutu Data satırlarından itibaren verileri okur. Örnek : For i=1 to 10 Read a$ Next i Data Orhan, kerim, şahin, vs. Bu programcık 10 kez read komutuyla data okur. Eğer data sayısı 10'dan azsa Out of Data ( Yetersiz veri ) mesajı alırsınız. Örnek # 2: 10 CLS 20 READ A$, A 30 PRINT A$, A 40 GOTO 20 50 DATA AHMET, 5 60 DATA MEHMET, 15 Bu programı çalıştırdığınızda Out of Data mesajı alırsınız. Peki Data'yı AMIGA'ya anlatmak için bir yol yok mu? Tabii ki var. Örnek # 3: 10 CLS 20 READ A$, A 30 IF A=0 THEN END 40 PRINT A$, A 50 GOTO 20 60 DATA Ahmet, 5 70 DATA Mehmet, 15 80 DATA Orhan, 0 90 — Böylece A değişkeni 0 olduğu
zaman programdan çıkarak out
of Data mesajını önlemiş oluruz.
Örnek #4:
Bu örnekte satır numarası
kullanmıyoruz.
Başlangıç:
CLS
LOCATE 5, 5
INPUT " Aradığınızkişinin adı
nedir"; AŞ
ara:
READ C$, B$, TL$
IF C$ - "Piggy” THEN GOTO
nowayout
IF A$ - C$ THEN GOTO ok
GOTO ARA
ok:
CLS
LOCATE 5, 5
PRINT"ADİ : ";C$
PRINT" SOYADI: ";B$
" TELEFONU : "; TL$
bekle:
A$ - İNKEY$:İF A$ — "" THEN
GOTO bekle
GOTO başlangıç
nowayout:
CLS
LOCATE 5, 5
PRİNT " Aradığınızkişi mevcut
değil "
GOTO bekle
DATA Orhan,Cevher,1597062
Data Şahin,Derya,1597063
Data Murat,Adanç,1608211
Data Piggy, Unknown,3322454
Programın açıklaması :
1.satır : Başlangıç adlı label ile
programa başlıyoruz.
2.satır : Ekranı siliyoruz.
3.satır : Cursoru 5, 5 pozisyonu-
na getiriyoruz.
4.satır : KullanıcınınA$
değişkenine bir veri vermesini
sağlıyoruz. 5. satır : Ara adlı label verilen ismi arayan bölümün başlangıcını oluşturuyor. 6. satır : READ komutunu kullanarak Data satırlarını okuyoruz. 7. satır : Eğer data satırlarının sonuna gelinmişse Nowayout adlı label'a atlanıyor. 8. satır : Aranılan isim bulunduysa ok adlı label'a atlıyoruz. 9. satır : Eğer bu şartlar doğru değilse aramaya devam ediliyor. 10. satır : Ok adlı label verinin ekrana basıldığı bölümün başlangıcıdır. 11. satır : Ekran siliniyor. 12. satır : Cursor 5,5 pozisyonuna getiriliyor. 13-14 ve 15. satırlar : Bilgiler ekrana basılıyor. 16. satır : Burası bir bekleme rutininin başlangıcı. 17. satır : Bir tuşa basmanız bekleniyor. Basılınca başa dönüyoruz. 18. satır : Nowayout adlı label ismin bulunmadığını gösteren bölümün başlangıcı. 19. satır : Mesaj veriliyor. 20. satır : Bir tuşa basılması bekleniyor. Read - Data komutunun pratik olmayan yönü dataların her seferinde programın sonuna yazılmasıdır. Yani programı sadece BASIC bilenler kullanabilir. Bilgisayar operatörlerinin de rahatça veri işlem yapabilmeleri için bu verileri diskete kaydedebiliriz. Bu konuda gelecek sayıda bilgi vereceğim. Matematiksel fonksiyonlar LOG Verilen X değerinin Logaritmasını e tabanına göre verir. X sıfırdan büyük olmalıdır. Örnek : Print Log(1), log(10), OCT$ Verilen ondalık sayıyı octal (sekizli) sisteme çevirir. Örnek : PRINT OCT$ (30) RND 0 ile 1 arasında bir rastgele sayı yaratır.
(30*RND) 0 ile 30 arasında bir sayı verir. Bu komutla zar atma işlemi, fikstür çekimi gibi tuhaflıklar yapabilirsiniz. SAY AMIGA'yı konuşturmakta kullanılır. Kullanımı : SAY söz, data data 7 parçadan oluşur. 1. parça : Aksan belirtir. 65-320 arasında olmalıdır. 2. parça : 0 yada 1 olur. 0 olursa vurgu açık olur. 1 olursa robot ses olur. 3. parça : Hız. 40-400 arasında olur. 4. parça : Cinsiyet. 0-Erkek, 1-Kadın. 5. parça : Hertz cinsinden frekans. 5000-28000 arasında olmalıdır. 6. parça : Volüm. 0-64 arasında olmalıdır. 7. parça : Sesin hangi kanallara gideceğini belirler. Siz sesi çift kanala yollayın bunun için de bu değer 10 olmalıdır. SGN Verilen sayının pozitif / negatif olup olmadığını belirtir. PRINT SGN(1), SGN(0), SGN(-1)
Matematiksel SGN fonksiyonu : - Bir sayı 0'a eşitse 0 olur. - Bir sayı pozitifse 1 olur. - Bir sayı negatifse -1 olur. SIN(X) X'in radyan cinsinden olması şartıyla sinüsünü verir. AMIGABASIC kullanarak matematik ödevlerinizi de böylece yapabilirsiniz. Örneğin bir fonksiyonun grafiğini çizdirip kağıda dökebilirsiniz. SQR(X) X'in karekökünü verir. X 0 ya da pozitif olmalıdır. TAN(X) X'in radyan olması şartıyla tanjantını verir. Matematik fonksiyonların AMIGABASIC'e çevrilmesi. Sinüzoid ve Kosinüzoid fonksiyonlardan bazıları AMIGABASIC'te şöyle elde edilebilirler : Hiperbolik tanjant : TANH(X) = (EXP(X) - EXP(-X)) / (EXP(X) + EXP(-X)) Hiperbolik kosinüs : COSH(X) = (EXP(X) + EXP(-X)) / 2 Hiperbolik sinüs : SINH(X) = (EXP(X) - EXP(-X)) / 2
Ters kotanjant :
ARCCOT (x) = ATN (X) * 1.5708 Ters kosekant : ARCCSC (X) = ATN (X/ SQR (X*X-1)) + SGN (X) -1) * 1.5708 Ters sekant : ARCSEC (X) = ATN (X/ SQR
(X*X-1)) + SGN (SGN(X)-1) * 1.5708 Ters cosinüs : ARCCOS (X) = -ATN (X/ SQR (-X*X+1)) + 1.5708 Ters sinüs : ARCSIN (X) = ATN (X/ SQR (-X*X+1)) Cotanjant : COT (x) = 1/ TAN(x) Cosecant : CSC (x) = 1 / SIN(x) Secant : SEC (x) = 1/COS(x) Bu formüller her halde işinize yararlar. Gelecek ay diskete veri kaydetmeye olanak sağlayan işlemlere başlıyoruz. Formatlı bir disketinizi hazırlayın. Bu arada eğer örnek BASIC programlara ihtiyacınız varsa bana disket gönderebilirsiniz. Bir dahaki aya kadar hoşçakalın. BAHADIR AKCAN
ATN (X/ SQR (-
SAL Ham
TENLİST 8 TOR