Bu sayfadaki yazılar
Sayfanın metni
Sayfa 21
yazısı çıkacaktır.
[DO...LOOP] Bu komutta döngünün sayısı belirtilmez ve döngüden çıkış yalnızca [EXIT] ve [EXIT IF..] komutları ile yapılır. Döngüden çıkış yapılmazsa, sonsuza kadar devam edebilir. Kullanımı çok kolaydır. Döngü yapılacak programın başına [DO], sonuna da [LOOP] yazıılarak döngü işlemi yapılır. DO
PRINT "MERHABA" LOOP programı, siz durdurana kadar çalışacaktır.
[EXIT] Bu komut ile [DO...LOOP] döngüsünden çıkış yapılır. Eğer iki tane veya daha fazla [DO...LOOP] kullanılırsa, kaç tanesinden çıkacağı komuttan sonra gelen sayı ile belirtilir.
DO DO PRINT "İÇ DÖNGÜ" IF MOUSE KEY=1 THEN EXIT IF MOUSE KEY=2 THEN EXIT 2 LOOP PRINT "DIŞ DÖNGÜ" LOOP Bu programda ilk exit ile ilk [DO ... LOOP]'tan çıkılır. Fakat diğer LOOP dev- reye gireceği için bu döngüye bir daha gi- rilir, ikinci döngüden de çıkmak isteniyor- sa, [EXIT 2]yazılmalıdır. Bu programdan çıkış, mouse'un sağ düğmesine basılarak gerçekleşir.
[EXIT] ile, [FOR...NEXT], [WHILE...WEND] ve [REPEAT...UNTIL] komutlarının döngülerinden de çıkış yapılabilir.
[EXIT IF...] Bu komut, verilen koşula uygunluk durumunda döngüden çıkışı sağlar. [EXIT IF (durum), (sabit)] olarak kullanılır. [IF .... THEN EXIT] ile aynıdır; fakat kullanıcıya kolaylık olsun diye, bu komut da eklenmiştir. Sabit kaç tane döngüden çıkılacağını belirtir.
M=0 DO M=M+2 FOR I=1 TO 20 EXIT IF M=18,2 NEXT LOOP Programda M değişkeni 18 olduğunda, sistem iki döngüden kurtulacak ve programdan çıkacaktır.
[EDIT] Bu komut tek başına kullanılır ve çalışan programı durdurup editör ekranına geçişi sağlar. Programlarınızın sonuna bu komutu koyduğunuzda, doğrudan editör ekranına geçebilirsiniz.
[DIRECT] Tek başına kullanılır ve çalışan programı durdurup direct moda geçişi sağlar.
SATIR ETİKETLERİ:
Şimdi de gelelim satır numaralama ve etiketleme işlemine. Satır etiketine LABEL diyeceğiz, çünkü diğer tüm bilgisayar açıklamalarında etiketin ismi İngilizce olarak geçer. Basic dilinin ilk versiyonlarında her satırın başına o satırı temsil eden numaralar koymak gerekliydi. Satır numaraları, program satır sırası ile GOTO ve GOSUB komutları kullanılarak dallanma yapılacak program bölümünü belirtir. Amos Basic'te ise, bu satır numaraları yerine gidilecek program bölümünün başına o bölümü belirtecek LABEL'ı koyarız.
LABEL Etiketlenecek satırın başına konulur ve istenilen karakter serisinden oluşur. Karakter serisinden sonra ':' işaretini koyarak bu karakter serisinin bir LABEL olduğunu belirtiriz. Eğer bu işaret konulmazsa, Amos Basic o satırda hata olduğunu belirtecektir. Örnek olarak;
OSMAN:PRINT "Çok kolay" satırı verilebilir. Tabii ki bu etiketleme olayının ne işe yaradığını merak ediyorsunuz. Bunu öğrenmenin tek yolu, çokça kullanacağımız [GOTO] ve [GOSUB] komutlarını anlamaktır.
[GOTO] [GOTO (label)] olarak kullanılır. Program çalışırken [GOTO] komutunu gördüğünde, doğrudan komutu takip eden label'a atlar ve label'ın başladığı yerden devam eder. Bu komut her başımız belaya girdiğinde başvurduğumuz bir dost gibidir. Örnek verecek olursak;
KILROY:PRINT "MERHABA" GOTO KILROY Şimdi, bu programın çalışmasını inceleyelim. İlk çalıştırıldığında bilgisayar KILROY adı altında etiketlenmiş bir satır görür ve bu satırı çalıştırır. Sonra ikinci satıra geçer, burada GOTO komutunu görür ve komuttan sonra gelen label'a yani KILROY satırına atlar. Bu böyle devam eder gider, program sonsuza kadar MERHABA karakter serisini ekrana yazar. Programdan çıkmak istiyorsanız, [Ctrl+C] tuşlarına birlikte basarak çıkabilirsiniz. Bundan sonra iki kere [Esc] tuşuna basarak editör ekranına dönebilirsiniz.
[GOSUB] [GOSUB (label)] olarak kullanılır.
[GOTO] komutuna benzer; fakat çok daha farklı olarak çalışır. Bilgisayar [GOSUB] komutunu gördüğünde, komutu izleyen label'a dallanır ve [RETURN] komutunu görene kadar programın bu satırlarında çalışmaya devam eder. [RETURN] komutunu gördüğünde [GOSUB] satırının bir altındaki satırdan itibaren işlevine devam eder.
GOSUB ALI END ALI:PRINT "MERHABA" RETURN Program çalıştırıldığında, ilk satırda ALI etiketi altındaki satıra atlar. Burada MERHABA ekrana yazılır. Sonra program [RETURN] komutunu görür ve [GOSUB] komutunun bir altına döner. Burada [END] komutunu görür. [END], yalnız başına kullanılır ve programın o satırda bittiğini belirtir.
[GOSUB] komutu ile kullanılan başka bir komut da [POP]'dur. Normal koşullar altında GOSUB-RETURN döngüsünden çıkılamaz. Çünkü program GOSUB komutunun işlevinden sonra RETURN'ü arar. Zaten programın sonunda RETURN'ü bulamazsa hata verir. Bu döngüden çıkmanın tek yolu, yani RETURN'ü devreden çıkartmak için [POP] komutu kullanılır.
A=0 MELTEM :GOSUB ALI GOTO MELTEM ALI:PRINT "HELLO" A=A+1 IF A=8 THEN POP:GOTO BİTİŞ RETURN BİTİS:END Bu programda POP kullanılmasaydı, program sonunda Amos Basic size hata verecekti.
Diğer bir dallanma komutu da, [ON...GOTO]'dur. [ON (değişken) GOTO (label 1, label2, label3....)] olarak kullanılır. Komut, değişkenin değerine karşı gelen label'a atlar. Karışık gibi görünse de, çok kullanışlı bir komuttur. Komutta değişken değer 1 ise label1'e, 2 ise
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 20
Amos Basic'te de diğer dillerin çoğunda olduğu gibi bir duruma koşullu olarak yaklaşmak ve koşulun sonucuna göre değişiklik yapmak veya dallanma yapmak gerekir. Zaten bu da programlamanın temeli sayılabilir. Basic benzeri ileri diller, durumları mantıksal olarak test ederler. Test etme olayını, [IF...THEN] formatındaki komut üstlenir.
[IF...THEN...ELSE] Komut, birçok dilde kullanılır. Amaç aynıdır fakat format değişebilir. Durumları test etmeye yarar. Testin sonucu doğru ise, THEN'den sonra gelen işlevi, yanlış ise ELSE'den sonra gelen işlevi yapar. ELSE'i kullanmak her zaman gerekli değildir.
1=10 FOR 1=1 TO 30 INC A IF A=20 THEN PRINT "ANIN DEĞE- Rİ 20"
NEXT I Program çalışıp A değişkeni 20 değerini aldığında, [PRINT] komutu devreye girecek ve kendisinden sonra gelen yazıyı ekrana çıkaracaktır. Bu programda, [IF] komutu ile A değişkenini test ediyoruz. Eğer A 20 değerini almışsa, THEN'den sonra gelen işlem yapılır ve ekrana "A'NIN DEĞERİ 20" yazılır. Bu örnekte [IF] komutuna ELSE eklersek ve test sonunda durum yanlışsa ELSE'den sonra gelen işlem'e geçilir.
[IF....ELSE....END IF] Bu, değişik bir formda bir [IF] komutudur. [IF] komutu bu formda kullanıldığında, durum test edildikten sonra yapılacak işlem birden fazla olabilir. Yukarıdaki formda, testten sonra sadece bir işlem yapılabilir. Fakat bu formda istendiği kadar işlem yapılabilir, ELSE kullanma zorunluluğu yoktur.
IFA=B PRINT "EŞİTTİR" INPUT "SAYI GİRİNİZ";C ENDIF Bu programda, durum koşulu doğru ise, yani A değeri B'ye eşitse IF ile END IF arasındaki işlemler yapılır.
INPUT "İKİ TANE SAYI GİRİNİZ"- ;A,B
IFA<B PRINT "B, ADAN BÜYÜK" ELSE IFA>B
PRINT "A B'DEN BÜYÜK" ELSE IFA=B PRINT "A EŞİTTİR B'ye" ENDIF ENDIF ENDIF Bu örnekte, iki sayıyı karşılaştırma işlemi yapılmaktadır. Görüldüğü gibi her [IF] komutuna karşılık bir [END IF] gelmiştir. Eğer ilgili komutları kapatılmazsa hata verir.
Yazımızın bu bölümünde size, Amos Basic dilinin döngü ve dallanma ile ilgili komutlarını anlatmaya çalışacağız. İlk olarak döngü nedir, ne işe yarar sorularının cevabını arayalım. Döngü, bir işlemi birden fazla kez tekrarlamak demektir. Amos Basic ve diğer çoğu dilde en çok kullanılan [FOR...NEXT] döngüsüdür. Bu komutla, programın bir bölümünün kaç kere tekrarlanacağı belirtilebilir. Bu da kullanıcı açısından gerçekten büyük bir kolaylık. Programlar yapmaya başladığınızda, bu komutun ne kadar çok kullanıldığını fark edeceksiniz.
[FOR...NEXT] [FOR (değişken)=(sabit1) TO (sabit2) STEP (sabit3)] olarak kullanılır. Bu formattan sonra, tekrarlanacak program ve programın sonunda da [NEXT (değişken)] komutu olmalıdır. Bilgisayar, FOR döngüsüne ait [NEXT] komutunu görene kadar aradaki işlemi yapar. [NEXT] komutu ile, değişken sabit3 ile toplanarak arttırılır veya azaltılır. Yani [değişken = değişken + sabit3] olur. FOR döngüsünde başlangıç sabiti ve bitiş de sabit2'dir. Değişkenin değeri sabiti ile başlar ve sabit2 olana kadar devam eder. Eğer FOR döngüsüne STEP koymazsanız, değişken doğrudan bir arttırılarak işlemi yapmaya devam eder.
FOR I=1 TO 20 PRINT I+"."+"DÖNGÜ" NEXT I Bu programı çalıştırdığınızda, ekrana 1'den 20'ye kadar DÖNGÜ yazılacaktır. İki veya daha çok FOR döngüsü iç içe kullanılabilir. Fakat her FOR için kendine ait bir [NEXT] komutu olmalıdır. Zaten [NEXT] komutunu unutursanız, system sizi uyaracaktır.
FOR 1=0 TO 20 STEP 2 FOR J=40 TO 50 ……………. NEXTI NEXTJ Örnekte iki tane FOR döngüsü karşılı- ğında, iki [NEXT]komutu kullanılmıştır, ilk [FOR] komutunda kullanılan STEP, I değişkeninin 0 dan 20'ye kadar her dön- güde iki sayı arttırılacağını belirtir: 0, 2,4, 6, 8 .... gibi. 1=20 olduğunda, program FOR döngüsünden kurtulacaktır.
[WHILE...WEND] Diğer bir döngü komutu da, [WHILE...WEND]'dir. Bu komut, değişkenin durumuna göre döngü yaratır. Normalde kullanımı çok kolaydır, fakat genelde bu komutun kullanımında zorluk çekilir. [WHILE (durum) ....WEND] olarak kullanılır. WHILE'dan sonra gelen durum koşulu doğru olduğu sürece, program bu döngüde kalır. Doğru değilse, döngüden çıkar.
INPUT "BİR SAYI GİRİNİZ";X PRINT "11'E KADAR SAYIM" WHILEX<11 INCX PRINT X WEND PRINT "BİTİŞ" Programda durum X< 11'dir. Yani X değişkeni 11'den küçük olduğu sürece [WHILE...WEND] arasındaki program tekrarlanır.
[REPEAT...UNTIL] [REPEAT...UNTIL], durum belirtilerek yapılan döngü komutudur. Kullanımı diğerlerinden farklıdır. Durum koşulu, programın sonuna yerleştirilen UNTIL'den sonra verilir. REPEAT başta kullanılır. Koşul olumsuz olana kadar döngü yapılır.
1=10 REPEÂT PRINT "DÖNGÜ" İNCİ UNTIL 1=20 programında, ekrana 10 tane DÖNGÜ ya-