64 Basic
Retro bilgisayarEvet arkadaşlar yeni bir Basic yazısı ile yine karşınızdayım. Geçen ay verdiğim problemi herhalde hepiniz kolaylıkla çözdü. Yalnız problemin sonunda aylık %5 faiz yazısını yıllık %6 faiz olarak değiştirmeliydik. Bilmem farkında mısınız ama eğer ayda %9 faiz koyarak hesapladığımızda yalnız geçen ay ki komutları kullanarak program gereğinden fazla uzar. Siz en iyisi onu yıllık %9.10 faiz ile hesaplayın. Yapamayanlar bir daha denesin. Geçen ay ki yazımın sonunda da belirttiğim gibi Arit-
matik işlem operatörlerini bilmeyen yeni kullanıcılar haklı olarak problemi zor buldu. Yeni Commodorcular için Aritmatik işlem operatörlerini bu yazımda anlattım. Geçen sayı yazıyı kapatırken size öyle bir program yapın ki kullanıcıya maaşını sorsun, yiyecek, yol ve diğer masraf-
ları ayrı ayrı sorarak kalan parayı yılda
9.10 faizden bankaya yatırıp bir yıl
sonra biriken parayı ekrana yansıtma-
nızı istemiştim. Şimdi programın yapı-
mına geçelim :
10 INPUT " MAASINIZ "; M
20 INPUT " YOL MASRAFLARINIZ ";
A
30 INPUT "YİYECEK MASRAFLARI-
40 INPUT " DİGER MASRAFLAR "; C
50 KzM-(A*B4C) :
PARAYI HESAPLAMA
60 T-K*12 : REM ARTAN PARANIN
BİR YIL SONRAKI TUTARI
70 F-T/10 :REM FAİZ TUTARI
80 T-T4F : REM ARTACAK PARA-
NİN FAİZ İLE TOPLANMASI
90 PRİNT " BİR YİL SONRA BİRİKEN
gibi aslında hiç de karışık değil. Kim bilir belki de hepiniz bu kadar basit sorular sorulur mu diye, bana, kızıyorsunuzdur. Programda hemen dikkatinizi çeken yeni bir komut var ve siz ne işe yaradığını bile anlamadınız belki de. Bu yönergemizin ismi REM. Rem'in kullanılışı çok basit. Bir komut olarak işlevi yok. Yalnızca program içine koymak istediğiniz mesajları buradan bu mesajları yalnızca programın listesini alan bir kişi okuyabilir. Rem komutundan sonra yazılanlar hiç bir şekilde ekrana yansımazlar. Şimdi gelelim bu ay ki dersimize.. İlk önce makinemize işlem yaptırmayı sağlayan aritmetik operatörler. Bizim şu aşamada kullanacaklarımız : + : Toplama işlemi - : Çıkarma işlemi / : Bölme işlemi * : Çarpma işlemi Bu semboller rakamlar arasında ve matematiksel değişkenler arasında kullanılır. İşlem demişken hemen konuyla bağlantılı olarak bir çok bilgisayarda temel komut görevi gören LET komutuna bir göz atalım.
Görevi komuttan sonra gelen işlemi hesaplamaktır. LET C=A*B gibi. Commodore 64 matematiksel işlemleri LET komutu kullanmadan da uygulayabildiğinden gereksiz gibi görülmektedir. Yukarıdaki ifadeyi C= şeklinde yazmamız 64'ün aynı işlemi yapmasına yol açar. Bu yüzden yapacağımız programlarda pek kullanmayacağız. GOTO: İşte BASIC'te çok sık kullandığımız bir komut daha. Bu komut aracılığıyla programın istediğimiz bölümünde istediğimiz satıra atlamasını sağlarız. Kullanımı GOTO 10, GOTO 1200 şeklindedir. Komuttan sonra gitmek istediğimiz satır numarasını yazarız. Örnekleri verelim. ÖRNEK 1-1: 10 PRINT "COMMODORE 64" 20 GOTO 10 ÖRNEK 1-2: 10 PRINT "COMMODORE 64"; 20 GOTO 10 Yukarıdaki iki örneği ayrı ayrı yazıp çalıştırın. Fark ekrana hemen yansıdı. Programlar arası bu farkı örnek 1-2'nin birinci satırının sonuna koyduğumuz ; işareti sağlıyor. Noktalı virgül işareti hemen sonra boşluk bırakmadan anlamı taşıyor. Yalnız PRINT komutu ile kullanılır diye bir şart yok. (INPUT'u hatırlayın.) Vakit kaybetmeden hemen bir sonraki komut. IF... THEN...: BASIC'te karşılaştırma olayını yapan komut. Karşılaştırılacak değer IF kelimesinden sonra, koşul sağlanmışsa yapılacak işlem THEN kelimesinden sonra yazılır. Bu komutta örnekler çok çeşitli olabilir. Sayılar, değişkenler, diziler ve karakterler karşılaştırılabilir. Komuta örnekler vermeden önce karşılaştırma ifadesinde kullanacağımız operatörler.
<<: Küçük veya Eşit
Büyük veya Eşit
<>: Eşit Değil
Yukarıdaki işaretleri zaten matematik-
ten biliyoruz. Şimdi bir sayısal örnek
yapalım.
ÖRNEK:
10 S-607 :REM SİFREMİZ
20 İNPUT" SİFREYİ GİRİN "; A
30 IF A<> 607 THEN GOTO 50
35 İF Az607 THEN 40
40 PRİNT "SİFREYİ BİLDİNİZ."
NIZ SAYI KUCUK GELDİ ": GOTO 10
60 IF A>607 THEN PRİNT " VERDİĞİ-
NİZ SAYI BUYUK GELDİ": GOTO 10
RUN
SİFREYİ GİRİN ? 1234
VERDİĞİNİZ SAYI BUYUK GELDİ
SİFREYİ GİRİN ? 345
VERDİĞİNİZ SAYI KUCUK GELDİ
SİFREYİ GİRİN ? 607
SİFREYİ BİLDİNİZ.
Yaptığımızbu örneği incelediğinizde
hiç birinizin bu komut hakkında bir so-
runu kalacağını zannetmiyorum. Şimdi
aynı programı rakam olarak değilde
isim olarak yapalım.
ÖRNEK:
10 X$z " ISTANBUL" : REM BU SE-
FERKİ SİFREMİZ
20 İNPUT "SİFRE İSMİ GİRİN "; A$
30 IF A$- " ISTANBUL "THEN GOTO
50
40 1F A$<> " ISTANBUL" THEN
PRİNT" OLMADI ": GOTO 20
50 PRİNT " BİLDİNİZ !!! "
RUN
SİFRE İSMİ GİRİN ? BARIS
OLMADI
SİFRE İSMİ GİRİN ? GİGFU
OLMADI
SİFRE İSMİ GİRİN ? İSTANBUL
BILDINİZ !!!
Ne kadar basit değil mi ? Basic'in ne
kadar yüksek seviyeli bir dil olduğu iş-
te bunun gibi kullanımı kolay ve çeşitli
komutlarla belli oluyor. Bu komuttan da
sonra başka bir Basic kahramanına
geçelim.
FOR ...TO...NEXT :
Bu komut değişkenleri sayaç olarak
kullanmanızı sağlayan kullanışlı bir ko-
muttur. FOR'dan sonra herhangi bir
değişken atanarak yapılması istenen
işler sırayla satır satır girilir.Girdiğiniz
emirlerin tekrar edilmesi gereken son
satırından sonra NEXT yönergesi ko-
nur. (Bu arada yapılması gereken işin
sayısı ve TO konarak
belirtilmelidir.)Biraz karışık gibi görülse-
de aslında basit sayılır. En iyisi siz alt-
taki örnekleri dikkatle inceleyin.
ÖRNEK :
10 FOR A-0 TO 16
20 POKE 53281,A
30 NEXT
Bu ufak programda A değişkeni sıra-
sıyla O'dan 16'ya kadar değer alıyor.-
Her değer alışında hemen bir sonraki satıra atlıyor ve oradaki komutu yerine getiriyor. NEXT komutu ile karşılaştığında yeniden değer almak için ilk satıra dönüyor. İkinci satırdaki POKE komutunu henüz işlemedik ama eğer bir POKE komutu olsaydı ekrana verir. NEW: Yeni bir program yapmak istediğimizde bu komutu vererek hafızayı boşaltırız. CONT: RUN/STOP tuşu ile durdurduğumuz çalışmayı hemen bu komutu ve yanındaki rakamların ifadesini anlamışsınızdır. Bir başka örnek. ÖRNEK: 10 FOR X=1 TO 40 20 PRINT "64'LER DERGİSİ"; 30 NEXT Bu programı da yazıp RUN'ladığınızda ekrana yan yana 64'LER DERGİSİ yazılarının geldiğini göreceksiniz. Zannedersem bu komutu da anlamış bulunmaktasınız. Şimdi FOR komutunun bir başka yönerge ile kullanımı: TO... STEP...: Bu komutun da yukarıdakinden pek bir farkı yoktur. Yalnızca STEP yönergesinden sonra artma sayısını vereceksiniz. STEP 1, birer birer artırır, STEP 2 ikişer, STEP -1 ise başında eksi olduğundan birer birer azaltır. Hemen basit bir örnek: ÖRNEK: 2-1 10 FOR X=0 TO 100 STEP 2 20 PRINT X 30 NEXT ÖRNEK: 2-2 10 FOR X=99 TO 0 STEP -1 20 PRINT X 30 NEXT 40 PRINT "BOOMMM" İki örnekte de açık açık kullanımlar ortada... Hayal gücünüzü çalıştırın. PRINT komutunu ve renkleri kullanarak FOR NEXT yönergesi ile basit demolar yapın. Bu ay programsal komutları burada bırakalım. Daha fazla yüklenirsem kafanız karışabilir. Bir ay içinde burada anlattıklarımı anlayıp önceki bilgilerle pekiştirirseniz garanti veriyorum ki birçok faydalı programı yapar hale gelirsiniz. Yazıyı bitirmeden bilgisayara direkt verdiğimiz bazı komutları size aktarayım. RUN: Hafızada bulunan programı çalıştırmaya yarar. LIST: Yaptığımız BASIC programın listesini programı bu komutu vererek kaldığı yerden işlemesini sağlarız. Ama program kesildikten sonra hiçbir komut vermemeniz gerekir. LOAD: Dışarıdan numarası belli olan cihazdan bilgi yükler. LOAD "ISIM" <TEYP> LOAD "ISIM",1,1 <TEYP> LOAD "ISIM",8,1 <DISK> SAVE: Hafızada bulunan programı kasete veya diskete kaydeder. SAVE "ISIM" <TEYP> SAVE "ISIM",8 <DISK> Bu aylık da bu kadar. Tabii geçen ay olduğu gibi bu ay da bir problemimiz var. PROBLEM: 42 kişilik bir sınıfta 28 kişi matematikten direkt geçmiş, 26 kişi fen grubu derslerden takıntısız geçmiş, geri kalanlar ise bütünlemeye kalmıştır. Ben sizden bu sınıfın başarı grafiğini iki ayrı ders ve genel olmak üzere yatay barlar halinde istiyorum. Kolay çözmeniz için iki ufak ipucu. Birincisi bar dediğim grafik karakteri Negative Space'den oluşacak. İkincisi belki bilmiyorsunuzdur. Bir satırda 80 kolon var, bu yüzden satırı yüze bölemezsiniz. Düşünün ve formülünü bulun. (Unutmayın her grafik tek satırdan oluşacak.) Hey sen niye babana soruyorsun onun zamanında bilgisayar mı vardı? Her türlü sorunlarınız için adres aşağıda serbestçe yazın... Ve derslerinizi çalışmadan gelmeyin karşıma. Ben şimdi AMOS BASIC öğrenmeye gidiyorum... Bir dahaki aya kadar BYE!!! BARIŞ YALÇINKAYA PK 205 BEŞİKTAŞ / İSTANBUL
'NTİ &/ NE GO WI
Oyunlardaki Başarınızın sırrı:
Tabii ki ??