OMAY'LA AMOS

CODER

O MAY YA

AMOS

Merhaba. Kısa bir aradan sonra tekrar sizlerleyim. Nasılsınız İK AMIGA severler. Nasıl gidiyor işler. Umarım iyidir. Evet bu ay sizlere geçen ay kaldığım yerden devam edecek ve klasik Basic'in komutlarını vermeye devam edeceğim. Aslında bu Basic komutlarını veriyorum da bu köşeyi okuyanların ne bildiklerini bilmiyorum. Yani düşünün köşeyi okuyan kişilerin hepsi Basic biliyorsa ben niye bu kısımlarla vakit kaybediyorum. Bu aklımı kurcalayan düşünceden beni kurtarmak istiyorsanız, Basic bilip bilmediğinizi bana yazın. Tabii hazır yazmışken bir şeyler sorup, sohbet de edebilirsiniz. Neyse, yukarıda da söylediğim gibi bu ay da klasik Basic'in komutlarına devam ediyoruz. Geçen sayı size sadece Print ve Input komutlarını anlatmıştım. Bu ay da yine birkaç küçük kavramla, bilgisayara veri aktarma konusunu göreceğiz. Şimdi birkaç küçük kavramdan işe başlayalım. İlk önce fonksiyon kavramına gelelim. Merak etmeyin, bu bildiğiniz matematikteki fonksiyon değil. Bu fonksiyonlar kullanıldıklarında size bir değer veren komutlardır. Örneğin bundan evvelki aylarda sözünü ettiğim Free fonksiyonu gibi. Program içinde Free'yi kullandığınız zaman değişkenlerinize ayırdığınız hafızadan ne kadar kaldığını öğrenebilirsiniz. Gördüğünüz gibi bunu diğer komutlar gibi değil de sadece bir değer almak için kullanıyorsunuz. Gelelim parametre kavramına. Parametre de, komutlarda kullanılan ve birbirinden virgül ile ayrılan sayılar veya işin püf noktası

Amal satırlarında olmadığını biliyor muydunuz? Fontlarınızı, çağırdığınız hafızadan atmak için bir komut yoktur. İşte size bu işe yarayan bir satır.

Trap Reserve As Data <Bank No>,1000000000

Burada <Bank No> numarası verin.

yerine

Bir bobu Amal satırları içinde yakıp söndürmek veya gösterip kaybetmek için 0 numaralı imaj no'sunu kullanın.

Örneğin:

Channel 1 To Bob 1
Amal 1,"A0,(1,5)(0,5)"
Amal On 1

Kötü düşünce ile iyi düşünce farkı nedir?

boşluklara kullanmadığınız bir alfanümerik (karakter değişkenleri) değerlerdir. Örneğin ileride göreceğimiz ekran açmakta kullanılan Open komutunun ekran no, ekranın genişliği, ekranın uzunluğu, ekranın renk sayısı ve ekranın modu olmak üzere tam 5 parametresi vardır. Bazı komutlarda kullanmak istemediğimiz parametre kısımlarını boş bırakabiliriz. Örneğin Bob tanımlamakta kullanılan Bob

komutunun normalde 4 parametresi vardır. Ama örneğin bobunuzun x,y koordinatını değiştirmek istemiyorsanız 2. parametreye bir şey yazmamanız gerekir. Fakat virgül sayıları aynı kalmak zorundadır. Yani parametreyi kullanmasanız bile onun boş olduğunu belirtmek için virgülünü koymalısınız. Neyse bunları anlamasanız bile kafanızı fazla yormayın, nasıl olsa ileride bunları çok kolay bir şekilde örneklerle anlayacaksınız. Evet şimdi geldik bir iki küçük noktaya. Bu iki küçük noktayı da belirtip, bilgisayara bilgi verme kısımlarına geçeceğiz. İlk küçük nokta :. Yani iki nokta üst üste işareti. Bu işaret AMOS'ta iki satırı yan yana yazmak için kullanılır. Örneğin birinci satırınız A=5, ikinci satırınız B$="Merhaba" ise, bu iki satırı alt alta yazıp boşuna yer kaybı yapmak istemiyorsanız bir satıra A=5 : B$="Merhaba" yazabilirsiniz. Yalnız burada dikkat etmeniz gereken nokta ileride öğreneceğiniz IF-THEN satırlarında bu işlemi yapamayacağınız.

Diğer bir küçük nokta da, bundan önceki örnek programın başında yazdığım fakat anlaşılmamış veya gözden kaçmış olabilen Rem komutu. Bu komutun tek yaptığı iş kendi kendinize bilgi vermenize yardımcı olmak. Nasıl yani demeyin. Bu komut veya onun yerine geçen ' (apostrof) işaretini başına koyduğunuz satır

AMOS tarafından hiç dikkate alınmaz, direkt olarak atlanır. Yani bu komuta, programa sonradan baktığınızda kendinize hatırlatmak istediğiniz şeyleri yazabilirsiniz. Rem komutunu yukarıda anlattığım şekilde bir satırın yanına ' işaretinden sonra

yazabilirsiniz. Fakat bunun da bir istisnası, bu durumda Rem komutu yerine ' kısaltmasını kullanamazsınız, direkt Rem yazmanız gerekir. ' kısaltmasını sadece satır başlarında kullanabilirsiniz. Gerçi önceden de söyledim ama bir hatırlatma yapayım. AMOS'ta olan komut isimlerini değişken ismi olarak kullanamazsınız, bunu biliyorsunuz. Fakat unutmayın diğer komutlarda bunu yaptığınız zaman büyük ihtimalle hata oluşmasına rağmen Rem komutunda bunu yaparsanız hiçbir hata mesajı gelmez. Yani örneğin programınızın içerisinde Remak diye bir değişken kullanırsanız, program test sırasında bir hata vermez fakat çalıştırınca manyak mı ya bu bilgisayar diye bilgisayara bağırmaya başlarsınız. Hazır lafı gelmişken söyleyeyim, unutmayın bilgisayar hiçbir zaman hata yapmaz çünkü bilgisayar kendi başına hiçbir şey yapmaz, ne yapıyorsa sizin söylediğiniz doğru veya hatalı şeyleri yapar, kendimden biliyorum, hatalı bir satır olduğunda yine bu sapıttı, bunun neresi yanlış diye bir saat söylenip sonra hilayt diye bir çığlık atarak hatayı bulmuşumdur. Evet bilgisayara değişken aktarma işine geçmeden önce son olarak anlatmam gereken komut Swap. Aslında dikkat ediyorum da bu bir günah çıkarma yazısı oldu. Bütün bundan önce anlattıklarımı size iki sayı önce anlatmalıydım. Neyse artık kusura bakmayın, öğretmenliğe daha yeni ısınıyorum. Evet Swap komutu diyorduk. Bu komutun yaptığı iş gayet basit. İki tane kesirli, kesirsiz veya karakter değişkenlerini birbiriyle değiştirmek. Zaten İngilizce biliyorsanız hemen anlamışsınızdır. Bu nasıl oluyor derseniz; Swap <Birinci değişken ismi>,<İkinci değişken ismi> şeklinde oluyor. Yani Swap dedikten sonra içeriklerini değiştirmelerini istediğiniz iki değişkeni aralarına bir virgül koyarak yazıyorsunuz. Tabii bir de şunu unutmayın değişkenlerin tipi aynı olmalı. Yani bir tam sayı değişkeni ile bir karakter değişkenini Swap yapamazsınız. Evet artık önceden anlatmam gereken küçük kavramlar bittiğine göre gelelim bilgisayara bilgi aktarmaya. Bildiğiniz gibi önceki sayılarda size değişken kavramını anlatırken bilgisayara bilgi aktarmanın bir yolunu öğrenmiştiniz. Nasıl oluyordu, A isimli değişkeninize 5 bilgisi aktarmak için A=5 yazıyordunuz. Buraya kadar iyi hoş ama, yaptığınız bir programda bir iki tane değişken kullanmıyorsunuz ki, yani öyle olsaydı gibi yazardınız birkaç satır. İşte yüzlerce değişken kullandığınızdan ve bunları yukarıdaki yolla çok çok uzun bir şekilde vereceğinizden imdadımıza

Read, Data

ve Restore komutları yetişiyor. Komutların Türkçe. karşılıklarını verince daha iyi anlayacaksınız. Sırayla okuma, bilgi ve yenileme. Yaptıkları işte aynı isimleri gibi. Bilgiyi okuma ile okuyor ve sırası gelince — yeniliyorsunuz.Gelin — Az5 ifadesini Read, Data ile yazalım: Read A Data 5 Şimdi diyeceksinizki A—5 ile yazacağım şeyi niye iki satıra uzatayım ama bekleyin. Şimdi iki program veriyorum arka arkaya ikiside aynı işi yapıyor. AzI : Bz5 : C$z"AMOS" : D#-1.23 :OMAY$z"Bunak" Şimdide ikinci program: Read A,B,C$,D#,OMAY$ Data 1,5,"AMOS",1.23,"Bunak" Gördüğünüz gibi değişken sayınız artınca Read-Data kullanmak daha pratik bir hal almaya başlıyor. Evet gelelim Read-Data komutlarının diğer özelliklerine. Şimdi ilk olarak Read komutu Data'dan önce gelmelidir. İkincisi Read'de verdiğiniz değişken tipiyle Data'da okuduğunuz değişken tipi aynı olmalıdır. Üçüncü olarak Data satırı Read'den hemen sonra gelmek zorunda değildir. Read'den daha aşağıda olmak üzere programın herhangibir yerinde olabilir.Son olarakta Read satırında Data satırında olan sayıdan daha fazla değişken okutursanız Out of Data hatası alırsınız. Yani bilgisayar sizi kibarca daha fazla bilginizin olmadığını ama sizin -ısrarla ona oku emri verdiğinizi belirtir. Şu programı bir yazın: For K-zI To 4 Read A$ : Print A$; : Wait 50 Next Data "A","M","O" Data "S" Şimdi bu program üzerinde konuşalım. Şimdi For-Next döngülerini ileride anlatacağım için şimdilik sadece burada kullanılanın For ile Next arasındaki satırı dört kere tekrarlattığını bilin yeter. Evet progamı sırayla inceleyelim. Program başladığında For komutu sayesinde içerdeki satır bir döngüye giriyor. Bundan sonra program Read A$ komutuyla — bilgisayardan AŞ adlı değişken için bir bilgi istiyor ve ilerdeki Data satırına bakıp "Â" adlı bilgiyi alıp A$ değişkeninin içine kaydediyor. Yani komutunun görevini yapıyor.Sonra Print A$, sayesinde ekrana A$'ın içeriği olan "A" harfi basılıyor(sondaki noktalı virgül bilgisayara alt satıra geçme, ben bu satıra devam edeceğim demek) ve Wait komutu sayesinde bir saniye bekliyor, Next komutunu gören program tekrar

Read A$'a geri dönüyor ve biz bu satır sayesinde bilgisayardan bir bilgi daha istiyoruz. O zaman bilgisayar yine Data'ya gidip kaldığı yerden devam ediyor (unutmayın bilgisayar kaldığı yeri tutuyor, zaten öyle de yapması lazım yoksa bize sonsuza kadar "A" değerini verirdi) ve bize "M" değerini veriyor, Demin "A" değerini alan A$ değişkeni bu sefer "M" değerini alıyor ve ekrana "M" de yazılıyor. Bu böyle 4 kere sürdüğünde de ekrana AMOS yazılıyor. Peki size bir soru. Eğer döngüyü bir kere daha yapsaydık ne olurdu bakalım? Aferin bildiniz, bilgisayar daha fazla okuyacağım bilgi yok deyip isyan ederdi. Efendim ne dedin, ha bir arkadaşınız niye "S" harfi aşağıya yazıldı diyor. Sevgili arkadaşım bunun özel bir anlamı yok, isterseniz onu "O"'nun yanına da yazabilirdiniz, ben sadece böyle de yazılabileceğini göstermek için öyle yaptım. Şimdi bir program daha yapıp bunu konuşalım: Read A,B$,C#,D Evet bu programla Data satırlarında işlem de yapabildiğinizi öğrenmiş oluyorsunuz. Sonuç olarak program A değişkeni 16, B$ değişkeni "OMAY'la AMOS", C# değişkeni 5.5, D değişkeni ise 0 ile 20 arasında bir değer alıyor. Evet yazının sonuna yaklaşırken son olarak size Restore komutunu anlatmak istiyorum. Bu yaptığı iş aslında çok basit.

Bir sonraki Read komutunun nerden
bilgi okumaya başlayacağını belirtiyor.
Şuf program üzerinde tartışalım.
Restore UC : Read A$
Restore BIR : Read B$
Restore IKI : Read C$
Print A$4"
BIR:
Data "AMOS"
IKI:
Data "sevenler."
UC;
Data "Merhaba"
Evet program başlayınca Restore

komutu bilgisayara diyor ki sen bundan sonraki okuma işini ÜÇ isimli satırdan yap. Sonra A$ değişkeni "Merhaba" değerini alıyor bundan sonra da sırayla okuma işlemleri Restore komutu ile BİR ve İKİ isimli satırlardan devam ediyor ve en sonunda A$, B$ ve C$ değişkenleri aralarında bir boşluk bulunacak şekilde ekrana yazılıyorlar. Evet bu aylık da bu kadar sevgili arkadaşlar. Bu ay örnek program yok çünkü hem mektuplar var hem de ben biraz lafı fazla uzattım, artık kısmetse gelecek aya. Bu aylık da bu kadar. Bu arada artık yazılarımı kafiyeli bitirmeyeceğim söz. Buyrun size bir şiir.

“Garibim Omay hep meraktır. Kendine ettiği helaktır. Her ay bekler mektup diye, Belkim biraz salaktır.”