Bu sayfadaki yazılar
Sayfanın metni
Sayfa 64
PRINT komutunda, parantezlerin içine yerleştirerek, söz konusu kontrol işlevinin yerine gelmesi sağlanabilir. 1- DEL: Bir karakter geriye gitme komutudur. Normal olarak ekrandaki hataları düzeltmek için kullanılır. Kodu 20'dir. Yalnızca ekranda kullanılmasının nedeni, doğru simge yazıldığında yanlışının silinebilmesindendir. 2- RETURN: İşlevini zaten biliyorsunuz, şaryoyu geriye döndürme komutudur. Bilgisayarlarda şaryonun hareketini, ekranda ise kursörün yerini etkiler. Kodu 13'tür. 3- INST: İşlevini anlatmıştık; yazmış olduğunuz karakterlerin arasına karakter girmenizi sağlar. 4- SPACE: Boşluk tuşunun ASCII kodu ise 160'tır. Dolayısıyla CHR$(160) komutu, ekranda bir boşluk yazılmasını sağlayacaktır. Diğer kontrol karakterlerinin kodlarını da istediğiniz takdirde Programcının El Kitabı'nda EK.C olarak bulabilirsiniz.
Harfler
Nasıl kontrol karakterleri özel hiçbir anlama gelmeyen sayılarla temsil ediliyorsa, harfler ve rakamlar da böyle temsil edilir. Rakamlar da nereden çıktı, diyeceksiniz. Unutmayın ki, rakamları da birer karakter olarak kullanmak mümkün. Başka bir deyişle, tırnak içerisinde verilen “4” rakamı, artık aritmetik bir işlem için bir girdi teşkil edebilecek bir sayı değil, sadece grafik bir anlamı olan harfsayısal bir simgedir. Ve dolayısıyla sayıları kodlayan kodlama sistemi ile değil, harfleri kodlayan ASCII kodu ile kodlanır. Neyse ki, harfleri ve rakamların kodlarını ezberlememize gerek yok. Commodore 64'ün Basic'i özel bir fonksiyon aracılığıyla istediğimiz karakterin ASCII kodunu öğrenmemizi sağlıyor. (Acele etmeyin, “fonksiyon” demenin de, bu Basic denen tuhaf dilde ne anlama geldiğini göreceğiz.) Bu fonksiyonun adı ASC. Dolayısıyla, örneğin,
PRİNT ASC(“H”)
yazdığınızda, ekranda 72 rakamını göreceksiniz. Bu anlamda, ASC() fonksiyonu CHR$() fonksiyonun tam tersi işlevi görüyor. Herhangi bir sayı verdiğinizde, o sayının ASCII kodu olan işlevi yerine getiriyor (dolayısıyla, PRINT CHR$(72) yazdığınız takdirde, ekranda H harfinin yazıldığını görürsünüz). ASC() ise parantez içinde verilen karakterin ASCII kodu olan sayıyı veriyor. Sayılar ve kontrol işaretlerinden başka, büyük ve küçük harflerle, yazarken kullanılan diğer bazı simgeler de ASCII koduna dahildir.
yının bilgisayarda nasıl temsil edilebileceği meselesini çözmüş değiliz. Kendisi, eninde sonunda sadece bir dizi elektrik devresinden oluşan bilgisayar, bilgileri hangi anlamda sayar? Bu bölümde simgelerimize (yani rakam ya da harflere) bilgisayarın kullanılabileceği bir biçim verme yollarını göstereceğiz. Bölümün sonunda, bu simgelerden hesap yaparken, yararlanma metodlarını da vereceğiz. Yalnız dikkat! Bizim mantığımız, çağrışımlarımız ve içgüdülerimizle beslenen çok ince ve zengin
OlOl| / 00100!
mını göreceksiniz; çünkü 72, H'nın
“BU KOMUTA UYMALISIN” cümlesini yazabilmesi için, bilgisayara verilmesi gereken komutları görelim:
1- Önce “Sayfanın başından başla” (FF) komutu verilir. 2- Bunu yazılacak cümlenin kodları izler. 3- Yeniden bir sayfa başı komutu (FF) verilir. Birinci ve üçüncü adımlarda kullandığımız FF komutunun kodu 10 tabanlı 12'dir (16 tabanlı C). İkinci adımda ise cümle harf harf kodlanır. Sayfa 114'teki kodlar tablosundan bu cümle için bize gerekli olan kodları buraya aktaralım:
Sayılama Sistemleri
Dikkatli (ve sabırlı) okurlarımız, ASCII kodlarının, problemin ancak bir kısmını çözdüğünü fark etmiş olacaklardır. ASCII kodları, karakterleri sayılara çeviriyor. Ancak henüz hâlâ herhangi bir sabit mantıktır. Ama bu bölüm okunurken tamamen unutulması gerekir, çünkü bilgisayarın düz mantığı okurun mantığının inceliklerini ve zenginliklerini yorumlayamaz. Bu yüzden bu bölüm ilk bakışta sevimsiz ve hatta zor gelebilir. Dikkatinizi, verilen örneklerin ayrıntısındansa, sorunun kavramsal yönüne yoğunlaştırmanıza salık veririz. Bilgisayarla bir problem çözmek ilk bakışta zor görünse de, aslında çok basittir. Vereceğimiz örnekler Basic dilini kullanmakla, bilgisayara ne yaptırmakta olduğunuz hakkında bir fikir sahibi olmanıza yardımcı olacaktır.
Darbeler
Hangi elektronik sayısal cihaza bakacak olursak olalım, yalnızca iki durum tanıdığını görürüz:
VAR (ON)—Sinyal var YOK yok durumu cihaz için bir nirengi noktasıdır ve 0 DÜZEYİ adını alır. 1 durumu sinyalin en yüksek düzeyi olarak sunulur ve 1 DÜZEYİ adını alır.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 65
değeri, bulunduğu konuma ya da başka bir deyişle, o rakamı izleyen basamakların sayısına bağlı olarak değişir. Örneğin 50 sayısı 500'den böyle ayrılır. Temel alışkanlıklarımızdan biri olduğu için, 10 tabanlı bir sayı yazmak özel bir akıl yürütme gerekmez; yine de basit görünen bu işlem bile aslında soyut bir işlemdir. Bu sayı sisteminde her rakamı, 10 tabanının ardışık kuvvetlerinin çarpanı olarak kullanırız. “Kuvvet” kavramının, sayının sağ üstüne yazılan üst tarafından gösterildiğini ve kendi kendisiyle çarpılması demek olduğunu hatırlayalım. Örneğin;
sıfır kuvveti
birinci kuvvet
fonlar basamağı) ikinci kuvvet (yüzler basamağı) üçüncü kuvvet basamağı)
10 -10 2 40 <10*10 3 10540*40*10
On tabanlı sayılamada her rakam, sağdan başlayıp sola doğru 10 tabanının bir üst kuvvetinin çarpanıdır. (Bu yüzden sık sık kullandığımız birler, onlar, yüzler vb. basamağı deyimleri yalnızca 10 tabanlı sayı sistemi içerisinde bir anlam ifade ederler. Yoksa, her sayı sistemine uygulanacak bir adlandırma için, birinci kuvvet, ikinci kuvvet vb. basamaklardan söz etmemiz gerekirdi.) 10 tabanlı sayı sisteminde bir sayı nasıl yorumlanır ve değeri nasıl elde edilir? Bu soruları 1024 tamsayısını örnek olarak cevaplandıralım:
Basamak di. c b. dü Sayı (rakam) ak 0 cd Taban kuvveti Konum ağırlıkları 40 410 40 40 Rakamların değeri — 1000 100 10 1 (takam'konum ağırlığı) 1000 0 — 20 4 Sayının değeri 1000 * O * 20 4 4 — 1024
* Her sayının sıfırıncı kuvveti 1'e eşittir. Buna göre 2'nin de sıfırıncı kuvveti 1'dir; yani 2^0=1. Kimilerine göre 10 tabanının bunca yaygın olmasının nedeni 10 parmağımızın olmasıdır. Bu görüşe göre parmaklarımız “Sayı” kavramını kolaylıkla somutlaştırmamızı sağlıyorlar. Aristo da halkın çoğunluğunun onlarla saydığını belirtmişti. Ancak burada, başka herhangi bir sayının da taban olarak kabul edilebileceğini söylemeliyiz. Örneğin, birçok dilde, hatta Aristo'nun Yunancasında bile, 5 tabanlı sayı sisteminin kalıntılarına rastlamak mümkün. Başka bir sayının taban kabul edilmiş olduğu bir sistemde yazılmış bir rakamı yorumlamak için başvurmak zorunda olduğumuz adımlar, 10 tabanlı örnekte kullandığımız adımların aynıdır. Her sayı sisteminde kullanılacak simgelerin sayısını seçilen taban belirler.
10 tabanı için 10 simge: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 2 tabanı için 2 simge: 0, 1 (ya da a, y) 8 tabanı için 8 simge: 0, 1, 2, 3, 4, 5, 6, 7 16 tabanı için 16 simge: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
İki tabanlı sayı sisteminin C-64 için özel bir önemi var. Bu yüzden kendisini daha sonra ayrıntılı biçimde inceleyeceğiz. Şimdi 2 tabanlı sayı sistemini gözden geçirelim.
2 Tabanlı Sayı Sistemi
Tıpkı 10 tabanlı sayı sistemi gibi 2 tabanlı sistem de konumsaldır. 10 tabanlı sayı sisteminde herhangi bir sayıyı yazmak ve yorumlamak için yapılması gereken işlemleri hiç düşünmeden, otomatik olarak yaparız. Oysa 2 tabanda düşünmek zorundayız. Ancak kurallar her iki sistemde de aynıdır. Yine de okura aşinalık kazandırmak için, bu bölümde 2 tabanlı sistemde yazılmış sayı ve yapılmış işlemler için birkaç örnek vereceğiz.
Mümkün olan her sayı, 2 tabanlı sistemde de yazılabilir. Şöyle ki, her rakama karşılık olmak üzere yalnızca iki simgeden biri kullanılır: ya 0 ya 1. Değişik konumlarda bulunan rakamlar, 2 tabanının ardışık kuvvetleriyle çarpılır. Bir örnek olarak herhangi bir sayının, örneğin 1011'in yorumlanma biçimini, 10 tabanlı sistem için verdiğimiz örneğe benzeterek gösterelim:
Basamak dc. b a Sayı (rakam) Taban kuvveti Konum ağırlıkları 1 Rakamların değeri — 4 04 4 ağırlığı 8 0 2 4
Sayının 8 * 04-2 4 1 < 11 (10 tabanlı) değeri
Buraya kadar söylediklerimizden, bizim kullandığımız her sayının, içinde bir dizi 1 ya da 0 ile gösterildiği sonucunu çıkarabiliriz. Makine 1 ve 0 dışında hiçbir simge bilmediği için, aynı işlem harflere de uygulanacaktır. Bizimle konuşabilmek için bilgisayarın, bizim kullandığımız harf ve rakamları kendi kullandığı simgelere çevirmesi gerekir. Başka bir deyişle, bizim kullandığımız tüm çizgisel simgeler bilgisayarda 2 tabanından bir sayıya dönüştürülür. Örneğin kullanıcı makinenin belleğine A harfini girmek istediği zaman, bu harfin önce bir sayıya, kodu adını verdiğimiz bir sayıya çevrildiğini zaten görmüştük. Şimdi yapılması gereken işlemlerin tamamını da görebiliriz. Bu harfin kodunun da iki tabanlı bir sayıya çevrilmesi gerekmektedir. B harfinin kodunu elde etmek için ise, A harfinin koduna 1 eklemek yetecektir. Bu işlem tüm alfabeye uygulanabilir. Bu yöntemle bizim kullandığımız tüm anlatım simgelerinin bilgisayarın içinde temsil edilmesi mümkün olmaktadır.
65