Kontrol blokları
Programlama dillerinde döngüler ve akış kontrol komutları çok sık kullanılır. Programları program yapan esas kısımlar bu komutlarla sağlanır. Qbasicde diğer programlama dillerindekine benzer yapıda döngüler ve mantıksal karşılaştırmalar yapılabilir.
IF … THEN … ELSE
Mantıksal karşılaştırma için kullanılır. Karşılaştırma işlemin sonucunda bir değer döner bu değer ya mantıksal DOĞRU dur ya da mantıksal YANLIŞ. Lise 1 deyken matematik dersinde 1 ve 0 lar ile, doğru ve yanlışlar ile işlemler yapardık. Birçok kişide ne işe yarıyor bunlar diye söylenip dururlardı. Demek ki bir gerekliliği varmış. İşte onlar burada gerekecek, isterseniz MANTIK ile ilgili kısımları bir daha gözden geçirin. 

Mantıksal karşılaştırma için basit bir örnek:
Burada A değişkenin değeri 40 ise B nin değeri de 40 olacaktır. Eğer A nın değeri 40 dan farklı ise bu satırın hiçbir etkisi olmayacaktır.
Bir başka kullanımı:
Üstte A değişkeninin değerinin 40 dan büyük olup olmadığı kontrol ediliyor. Mantıksal karşılaştırmanın sonucunda ancak iki değer dönebilir. DOĞRU veya YANLIŞ. Doğru olması durumunda THEN den sonraki işlem yapılır, YANLIŞ olması durumunda ise ELSE den sonraki işlem. A ya 25 aktardığımız için A>40 mantıksal karşılaştırmanın sonucu YANLIŞ olacaktır. Çünkü 25, 40dan büyük değil. Bu durumda M$ a “Sayı 40 dan küçük” değeri aktarılır.
DÜŞÜN: Üstteki programı denedikten sonra A = 40 olsaydı sonuç ne olurdu? diye düşünüp cevabı bulmaya çalışın. Sonra Qbasicde deneyerek düşündüğünüzü kontrol edin.
IF ile karşılaştırma yaptığımızda dönen değerlere göre çok sayıda komut yürüteceksek aşağıdaki yapıyı kullanırız. Bu şekilde kullanımda karşılaştırma bloğunu bitiren END IF kullanmak zorundayız.
Örnek :
İç içe IF.
Mantıksal karşılaştırmalar
Şimdiye kadar bir satırda bir değişkeni karşılaştırdık. Bazen birkaç değişkenin karşılaştırılıp sonucunun alınması gerekebilir.
Mantıksal karşılaştırmalarda kullanılacak terimler: AND , OR , XOR , EQV, IMP, NOT
Değer | Mantıksal karşılaştırma ve sonucu | ||||||
X | Y | NOT X | X AND Y | X OR Y | X XOR Y | X EQV Y | X IMP Y |
1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
1 -> Mantıksal Doğru
0 -> Mantıksal Yanlış
Bu terimlerden faydalanarak bitsel karşılaştırma da yapılabilir.
PRINT (155 AND 160)
yazdığımızda 128 sonucunu alırız. Çünkü 155 in 2 li sayı düzenindeki karşılığı 10011011, 160 ınki ise 10100000. İkisini alt alta yazıp bitlerini AND ile karşılaştırdığımızda
0 -> Mantıksal Yanlış
Bu terimlerden faydalanarak bitsel karşılaştırma da yapılabilir.
PRINT (155 AND 160)
yazdığımızda 128 sonucunu alırız. Çünkü 155 in 2 li sayı düzenindeki karşılığı 10011011, 160 ınki ise 10100000. İkisini alt alta yazıp bitlerini AND ile karşılaştırdığımızda
çıkar. O da 128 e eşittir. Desimal sayıları 2 li sayıya çevirmek için Hesap makinasını Bilimsel görünüme getirerek kullanabilirsiniz.. Dec = Decimal(10 lu sayı), Bin = Binary (2 li sayı), Hex = Hexadecimal (16 lı sayı)
ELSEIF, SELECT CASE
IF in bir başka kullanımı
1
2
3
4
5
6
7
8
9
10
|
INPUT "1 ile 3 arasında sayı girin " ; A
IF A = 1 THEN
PRINT "SAYI = 1"
ELSEIF A = 2 THEN
PRINT "SAYI = 2"
ELSEIF A = 3 THEN
PRINT "SAYI = 3"
ELSE
PRINT "HATALI SAYI"
END IF
|
Bunun yerine buna benzer yapıya sahip anlaşılırlığı ve kodlaması kolay olan SELECT CASE yapısı kullanılır.
Qbasic Kursu Asıl Kaynak: http://akcansoft.blogspot.com
YanıtlaSilYazar: Mesut Akcan