Bilistan

Bugün Bilistan'ın geleneksel basket maçları vardı. Apo ile Oscar karşı karşıya geleceklerdi. Maç başladığında tüm seyirciler yerlerini almışlardı ve oyuncuları bekliyorlardı. Apo kırmızı atleti ile Bilibit takımı adına oynuyordu. Zavallı Oscar'ın taraftarları ise başa bela Bilit'lerdi. Bilibit'ler programlara yapışarak çalışmalarını sağlayan küçük yaratıklardı. Bunlar kırmızı renkli oluyor ve ortalıkta dolaşıyorlardı. Eğer bir probleminiz varsa ortalıkta mavi Bilit'leri aramanız gerekiyordu. Başa bela olan köpekler gibi bu hayvanlar ise programlardaki hataların sebepleriydi. Maç başladığında her iki taraf da çok heyecanlı idi. Bilibit'ler hep bir ağızdan “Apo” diye bağırırken Bilit'ler kendi aralarında bile anlaşamadıklarından sesleri çıkmıyordu. Maçı kaçınılmaz olarak Apo aldı. Oscar ise ne yapacağını bilmeden ortalıkta dolaşıyordu. Sonunda gelip Apo'ya nasıl top sürebildiğini sordu. “Aynen bilgisayardaki FOR/NEXT döngüsü gibi.” dedi Apo. Oscar anlamamıştı tabii ki. “Nek, ne, nö döngüsü?” diye şaşırarak sordu. “Bilibit'ler aşkına.” dedi Apo, “Daha FOR/NEXT'in ne olduğunu az buçuk bilmiyor musun?” Oscar'ın bakışından, bir şey anlamadığı belliydi. “Tamam tamam.” dedi Apo ve anlatmaya başladı... “Bak şimdi bir işi birçok kez yapacaksan, ardarda her şeyi tekrar tekrar yazmana gerek yok tamam mı? Kaç defa yapacaksan o sayı kadar bir döngü kurarsın ve bu iş birkaç komutla çok daha az sayıda satırla biter. “Örneğin top süreceğiz diyelim. Üç defa yere mi vuracaksın? Şöyle bir mantık kurabiliriz:

FOR TOP — 1 TO 3 (Yani top birden üçe kadar)
TOPU YERE VUR (Bu da vereceğimiz komut olsun)
NEXT TOP (Bir dahaki topu yere vur)

Şimdi bu sana gereksiz gibi gelecektir belki de. Diyeceksin ki, üç defa TOPU YERE VUR desek daha kolay olur. Ama ya üçten fazla, örneğin 100 defa top vuracak olsak ne yapacağız? 100 tane komut mu yazacaksın altalta?” “Peki bu arada diğer işler ne olacak?” dedi Oscar. “Mesela topu elimizde çevirmek de istiyoruz.” “İşi zora koşmaktan sıkılmıyor musun sen ya? N'olacak topu elinde çevirince sanki?” “Canım istiyor diyelim. Yapamaz mısın yani?” “Yaparız yaparız kolay. O zaman şöyle diyelim. Topu bir defa çevirdikten sonra beş defa yere vuracağız. Bu işlemi de on kez tekrarlayacağız. Bunun için içiçe iki döngü kurmamız gerekiyor. Bilgisayar iç döngüyü bitirmeden dışarı çıkamaz zaten. Böyle topu bir defa elimizde çevirdikten sonra beş defa yere vuracağız. Peki bunun döngüsünü sen kurabilir misin Oscar?” Benim elim ayağım birbirine dolaşır.” “Peki. Bu iş şöyle olabilir:

FOR ÇEVİR — 1 TO 10 (İşi 10 defa yapacağız)
FOR TOP — | TO 5 (Beş defa top süreceğiz)
.TOPU YERE VUR (Ne olduğu belli)

VİZZZ

GA-AK!

ZIPI

NEXT TOP (Topu bir daha yere vur) TOPU ÇEVİR (Eğer topu beş defa sürmüşsek buraya geliyoruz) NEXT ÇEVİR (Çevirme işlemine devam et) Bunları söyledikten sonra Apo topu eline alarak yürümeye başladı. “Bir, iki, üüç hop.” diye diye devam etti. Daha sonra garip bir şey oldu ve Apo ile top yer değiştirdi. Apo, “İmdaat! Yardım et Oscar. Ortalıkta Bilit'ler var galiba.” diye yardım istedi. Gerçekten de biraz önce yanımda giden Bilit ortalığı karıştırmıştı. Bu arada Oscar şaşkınlıktan ağzındaki peyniri “Gak!” diye aşağı düşürdü. Neyse ki kolay toparlanan Apo devam etti. Ama bu sefer de elinde top yerine Oscar'ın peyniri vardı. “Bak, gördün mü?” dedi Apo Oscar'a. “Döngüyü karıştırınca böyle karman çorman olursun. Sonra da ayıkla pirincin taşını.” “Neyse. Bak şimdi başka bir şey dedi Apo. “Döngünün illa ki birden başlaması şart değil. İstersen 17'den 29'a kadar bir döngü de kurabilirsin. Bu arada kullandığın değişkeni de başka komutlarla birlikte kullanabilirsin. Örneğin

FOR A - 7TO1l1
PRINT “SAYFA NO:”;A
NEXT A

“Böylece sadece 7'den 11'e kadar olan sayfaları numaralandırabilirsin.” “Ayrıca bu döngünün adımları da istediğin kadar olabilir. İngilizce'deki STEP komutuyla döngün ikişer ikişer, üçer üçer veya onda bir onda birlik adımlarla ilerleyebilir.” “Bak buna da bir örnek vereceğim, ama bu son...”

DONG

FOR B 5 TO 12 STEP .2
PRINT Bx5
NEXT B

la ekrana yazdırırsın.”

“Bu döngü yardımıyla da 1'den 2.4'e kadar olan sayıları 0.2 aralık-