Bilistan

Bilistan'da o gün hava çok güzeldi. Abdullah'ın ise başında fırtına bulutları dolaşıyordu. Bilgisayarının karşısına oturmuş düşünüyordu. Yaptığı programdaki hataları bir türlü temizleyemediği için ödevi geç kalacaktı neredeyse. Gidip Pan'dan yardım istemeyi düşündü ama sonra vazgeçti. En iyisi, diye düşündü, gidip Shadow'a danışayım. Shadow kendi halinde yaşayan bir filozoftu. Bulutun üzerine yayılıp düşünmeye başladığı zaman dış dünyayla tüm ilgisi kesilirdi. Bulutunun üzerini de masa olarak kullanırdı. Kendisinden başka kimsenin kullanamadığı bu garip masa Shadow'un kişiliğini de yansıtırdı. Düşünceli olduğu zaman bulut kararır, kızınca da yağmur yağardı. Abdullah, Shadow'un yanına geldiğinde bulut güneş ışınlarını yansıtıyordu ve pespembeydi. Abdullah, "Şanslı günümdeyim." diye mırıldandı. "Anlaşılan Shadow pek keyifli." Birisinin yaklaştığını hisseden Shadow bir gözünü açıp etrafına bakındı. Abdullah'ı görünce diğer gözünü de açtı ve başını sallayıp selam verdi.

"Şu hesap işini bir türlü yaptıramıyorum." diye yakındı Abdullah. "Peter'la beraber Orhan'ın dükkanından bir sürü komut aldık ama bunları kullanmayı beceremedim." Shadow'un bulutu bembeyaz bir pamuk yığınına döndü. Anlayışla, "Peki kullanım kılavuzunu okudun mu?" Renk değiştirme sırası Abdullah'a gelmişti. "Mık, mik, hık. Ha-hayır." diye gevelendi Abdullah. "Bak, o kitapta tüm komutların kullanımları anlatılmıştır. Bir defa okursan iyi olur. Sonra kullandıkça alışırsın zaten." Abdullah mahçup mahçup anladığını belirtti ve Shadow'u düşünceleriyle baş başa bıraktı. Gidip kullanım kılavuzunu okudu. Elindeki komutlar gerçekten de bir çok görev yapıyordu. Bir defa akış şemasındaki dikdörtgenlere karşılık gelen en önemli komut PRINT'ti. Bunun yardımıyla ekrana istediğini yazabiliyordun. Üüüüf, öğrenicek amma çok şey var ya, diye düşündü Abdullah... "Sonra klavyeden yazı yazmanı ve bunları değişkenlere atamanı sağlayan INPUT komutu vardı. Akış şeması denen o komik şekillerde klavyeden girişi sağlayan bu komut paralelkenar olarak görünüyordu. Değişken denen ve çeşitli değerleri sonra kullanılmak üzere saklayan birimleri bu komutla kullanıcıdan alabiliyordun. Örneğin INPUT "Yar bana bir değişken amaaan";DE komutuyla kullanıcıdan alınıyordu. Aynı şekilde INPUT "Yar bana bir değişken dahaaa";DE$ komutu ise harfler ve sayılardan oluşabilen bir diziyi klavyeden okuyabiliyordu. Bu değişken denen birimlerin uzunluğu en fazla 256 byte uzunlukta olabiliyor. Aldığımız komutların diğerleri biraz karışıkmış diye düşündü Abdullah. Bu IF/THEN hikayesi kendi kendine soru sorup cevaba göre farklı işler yapan biri gibi. Şu telefon etme hikayesindeki gibi mesela. İstediğimiz kadar numara çevirmişsek konuşuyoruz. Yok daha çevireceğimiz numara varsa devam ediyoruz. Basic'te bunun ifadesi şöyle bi şey galiba: Numarayı çevir IF (eğer) tüm numaralar çevrilmedi THEN (o zaman) tekrar çevir Konuş İşte Tüm numaralar çevrilmeden konuşamıyoruz. Bütün numaralar çevrilmişse bir sonraki işlem yapılıyor. Artık konuşabiliriz. GOSUB/RETURN ve GOTO komutlarını da program içinde sıçrama yapmak için kullanacağımızı söylemişti Peter. GOTO söylenen satır numarasına gidiyor. Bu basitmiş GOSUB biraz karışık. Şimdi GOSUB verdiğin satır numarasına gidiyor ama, RETURN komutunu verir vermez program, GOSUB komutunun verildiği yere dönüyor. Ne bu şimdi? Abdullah, kılavuzu okumayı sürdürdükçe daha iyi anlıyordu. Kendi kendine okumaya ve düşünmeye devam etti... Hah! de kolaymış aslında. Ben şimdilik pek kullanmıycam ama gene de bi tekrar edelim. GOSUB bir mektubu adrese göndermek gibi bir şey. Karşındaki mektubu okuyup, sana cevap yazınca, mektup çıktığı yere geri dönmüş oluyor. Biraz garip bir benzetme ama idare eder. Karşı tarafın mektubu okuması ve cevap yazmasını da

GOSUB'la gidilen yerdeki komutlar olarak
düşünebiliriz.Mektubun geri postalanması ise RETURN oluyor
bu durumda.
O zaman bizim programımız da şöyle bir şeyler olacak... Ön-
ce kullanıcıdan hangi işlemi yapmak istediğini sorcaz. Verdiği
cevaba göre alt programa  gitcez. İşimizi bitirince de
başadönceez. Kolaymış yav.
10 INPUT"Hangi işlemi yapmak istiyorsanız onun işaretine
basın (4 - * /)";IS$
20 IF 1S$-"4" THEN GOTO 100
30 IF 1S$-"-" THEN GOTO 200
40 IF 1S$-"*" THEN GOTO 300
50 IF 1S$-"/" THEN GOTO 400
60 GOTO 10
100 PRINT "Toplanacak";
110 GOSUB 1000
120
1380 GÖOTO 10
200 "Çıkartılacak";
210 GOSUB 1000
220 PRİNT A-B
230 GOTO 10
300 PRINT "Çarpılacak";
310 GOSUB 1000
320 PRİNT A*B
330 GOTO 10
400 PRINT "Toplanacak";
410 GOSUB 1000
420 PRİNT A-B
430 GOTO 10
1000 PRIİNT"sayıları sırasıyla yazıp RETURN'e basın"
1010 INPUT"Birinci sayı";A
1020 INPUT"İkinci sayı:;B
1030 PRİNT "Sonuç:";
1040 RETURN
"İşte bu kadaar." diye bağırdı Abdullah. Sonunda becerdim.
Program yapılacak olan işlemi öğrendikten sonra işleme girecek
olan sayıları almak için bir alt programa sıçrıyordu. Burada iki
sayıyı da öğrenen program bu sayılar üzerinde gerekli işlemleri
gerçekleştirdikten sonra programın en başına kadar geri
dönüyordu.

” İşte DORTLARI ALMAYA GİDİYORLAR!

GOTO