Kullanıcıdan bilgi almak, bilgileri karşılaştırmak ve sonuçlara göre yapacağı işlevleri belirlemek bu derste öğreneceklerimiz.
INPUT
Kullanıcıdan bilgi almak için INPUT komutunu kullanırız. Burada kullanıcının girdiği bilgi, değişkenimize aktarılmaktadır. Örneği inceleyin..
Kalemimiz(İmleç) yazının hemen sonunda bulunmakta. Bunları diğer değişkenlerle hizalamak için (,) kullanabiliriz (Aynı Print'te olduğu gibi).
Dikkat edilirse INPUT'dan sonra isteğin belirtildiği tırnak işaretlerinden sonra bir değişken geliyor. Burada sayısal değerler için INTEGER, alfasayısal değerler için STRING ($) kullanılmalıdır. Eğer sayısal bir değer isteniyor fakat alfasayısal değer giriliyorsa aşağıdaki hatayı verir ve sizden tekrar değer girmenizi ister.
INPUT için isteneni bu komutun içinde belirtmeyebilir ve INPUT "", Degisken şeklinde kullanabilir ve isteneni kendiniz belirtebilirsiniz. Aynı zamanda LOCATE, COLOR gibi kodlarda INPUT'dan önce kullanılarak INPUT mesajını şekillendirebilirsiniz. Örneğin:
INPUT$() Fonksiyonu
Bu komut, değişken için kullanıcıdan istediğiniz karakter sayısınca bilgi almanızı sağlar. Parantez içine kaç karakter istendiği yazılır.
Bu kullanıcıyı bekletmek için kullanılan bir yol olarak da bilinir. Böylece bilgi ekranı kapanmayacak ve kullanıcının herhangi bir tuşa basması istenecektir. Örnek bir Kullanım kullanıcıdan E veya H harflerinden birisine basmanız durumunda yapacaklarının belirtilmesidir. Bunun için IF..THEN ile DO..LOOP ve FOR.. döngülerini anlatmamız gerekiyor. Aşağıdan itibaren bu konuları bulabilirsiniz.
Etiketler
Normalde okullarda ve üniversitelerde, qbasic kitaplarında her satır bir sayı ile isimlendirilir. Ve aşağıdaki şekilde uzar gider..
Bu şekilde yapılması işin bilimsel yanı da olsa, sizlere kolaylık olması açısından bu yolu değil etiketleri adlandırdığınız ve bunun dışında sayılardan oluşmayan daha kolay bir etiket yönetimi öğretmek istiyoruz.
GOTO Etiket
Anlamı gitmek olan bu komut programı belirtilmiş bir etikete yönlendirmek için kullanılır. Aşağıda GOTO Bitir dediğimizden itibaren bilgisayar etikete gider ve aşağıdaki satırları okumaz.
IF ... THEN (... ELSE)
Değişkenlerin durumları istediğimiz gibi ise, sayısal değer bakımından büyük, küçük ya da eşitse veya tam tersi ise gerçekleşmesi gerekenleri belirttiğimiz EĞER ... İSE anlamına gelen komuttur. Burada kullanılan operatörler aşağıda tablolanmıştır.
Önermenin gerçekleşmesi için birden fazla şart olmalıysa VE anlamına gelen AND, ikisinden biri olmalıysa VEYA anlamına gelen OR kullanılır. ELSE ise önerme yanlış ise gerçekleşecek olaydır. Ayrıca bir de XOR var, bu önermelerden ikiside doğru veya ikiside yanlışsa önermenin geçersiz olduğunu, bir yanlış bir doğru ise geçerli olduğunu anlatır. Aşağıda bir örnek var. Örnekteki temel şart A'nın 14 ve B'nin 10 olmasıdır (Bunu verdiğimiz değerlerle sağladık). İkisinden biri bu kurala uymazsa Baslat etiketine yönlendiriliyor..
Aşağıdaki örnek ise bir 'VEYA' örneği. Burada B değerini değiştirdik ve kriterlerden birini bozduk. Buna rağmen önerme geçerli olacaktır. Çünkü bizden ikisinden birinin istenilen olmasını istiyor. Ve A değeri bunu sağlıyor..
Aşağıda daha kompleks bir örnek var. THEN belli bir noktada bitiyor. Bilgisayara THEN'in sonunu END IF ile anlatıyoruz. Aşağıdaki programda asıl mantık C'nin istenenden fazla ya da az olması durumunda bu sayıdan 1 eksilterek ya da arttırarak eşitleme ve eşitledikten sonra programı bitirmek. Dikkat ederseniz bu IF içinde IF kullanımına bir örnek oluyor aynı zamanda. Yalnız bunların yerleştirilmesine çok dikkat etmelisiniz. Bu aynı Ana yollar ile Tali yollar arasındaki fark gibi olmalı.
INPUT$() fonksiyonunda Evet ve Hayır'ı kullanmaktan bahsetmiştik, şimdi uygulama zamanı: Örnekte E harfine basmadığınız sürece programda kalıyorsunuz.
Dilerim konuyu iyi anlatabilmişimdir. Çünkü bu IF .. THEN çok yerde kullanılır (özellikle oyun yapımında).. Daha sonra tekrar IF .. THEN komutuna döneceğiz.
FOR .. NEXT
Belirtilen aralıklarda bir değeri değiştirerek kodların tekrarını sağlar. Bir işlevi, defalarca uygulamanın en güzel yolu. Bilgisayar FOR görünce, FOR'dan sonraki değişkenin değerini 1 TO 3 için konuşursak 1, 2, 3 şeklinde değiştirir ve uygulamaya devam eder.
FOR degisken 0 to 100 STEP 2 şeklinde kullanırsak, bilgisayar 2'şer atlayarak değişkeni değiştirecektir. Bu durumda 'degisken' değeri 0,2,4,6...98,100 şeklinde gidecektir. Bu komut özellikle ARRAY(dizi) değişkenlerinde büyük kolaylık sağlar.
DO .. LOOP
DO .. LOOP, For'dan daha farklıdır. DO ile LOOP arasında aksi belirtilmediği sürece sürekli gider. Aşağıdaki örnek çalıştırılırsa eğer sayıların bir artarak ekranda aktığı görülür ve bu herhangi bir tuş ile durdurulmaz. Ama Qbasic'in CTRL + PAUSE tuşunu kullanarak kodlar bölümüne geri dönebilirsiniz
Yukardaki örnek sadece işlevini anlatmak içindi. Tabi DO..LOOP arasına birçok kod gelebilir ve bunlar IF .. THEN ile belirtilmiş olabilir. Aşağıdaki örnekte 3. döngüden sonra a, 3 değerini alacak ve EXIT DO ile DO'dan çıkıp LOOP'un altına geçecektir.
Bu işlemi DO UNTIL ya da LOOP UNTIL kullanarak yapabiliriz. Bu 'olana kadar' anlamı taşımaktadır. Aşağıdaki örnek yukardakinin UNTIL kullanılmış şeklidir. A, 5 değerini alınca yine DO-LOOP'dan çıkılır.
Başlangıçta daha çok kullanılan kodlara yer veriyorum, WHILE'de bir döngüdür. Tek farkı bu kez Doğru, Yanlış'ın kullanıldığı bir döngü olması.