Commodore sayı 26, sayfa 49

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 49

VAL(AS$) komutu yardımı ile sayısal değeri elde edeceğiz. Kullanıcının verisi: 123R56 Bunu değerlendiren program komutu: A=VAL(AS$) Komutun işlenmesinden sonra A değişkeninin değeri 123 olur. Bu değer bizim elde etmek istediğimiz sonuç olmadığı için programımız hatalı olarak çalıştı demektir. Eğer programı kendi kullanımınız için yazdınızsa bu tür bir hatadan programın çalışma şeklini bildiğiniz için kaçınabilirsiniz. Ancak programınızı başkalarının da kullanabileceğini göz önüne alırsak tamamen hatasız programlar yazmanız gerekir. Program döküm ekindeki PROGRAM-1 kendi programlarınıza ekleyebileceğiniz bir alt program niteliğinde. Alt program olarak kullanılacağı için program satırları 35000'den başlıyor. Eğer satır numaralarını değiştirmek isterseniz gerekli GOTO ve GOSUB satır numaralarını da değiştirmeyi unutmayın. Aşağıdaki değişkenlere, alt programı çağırmadan evvel programınızda değer vermelisiniz. Gelelim bu değişkenlerin ne işe yarayacağına: MN=0 Sadece sayısal veri istenirse, MN=1 Veri içinde karakter de bulunabilir. DL değişkeninde belirtilen veri uzunluğundan daha kısa uzunlukta veri girişi yapılamaz. IL= Verilmesi istenen verinin maksimum veya kesin uzunluğu, Bundan başka alt programda şu değişkenler de kullanılıyor: CC IN$ değişkenindeki geçerli karakter sayısı. CS = Kursorun o anki bulunduğu kolon.

CZ = Kursorun o anki bulunduğu satır. CP = Veri alanı açarak elde edilen uzunluk. MS Veri girişi sırasında en büyük kursor kolonu. G$ = En son GET komutu ile alınan karakteri taşır. IN$ = Kullanıcıdan alınan verinin tamamı bu değişkenin içinde ana programa iletilir. Kullanılan hafıza adresleri: 204 Kursoru aktif hale getirir.

204 Kursoru görünmez yapar. 205= Kursorun yanıp sönme hızını belirleyen adres.

207 = 0 Kursor kapalı durumda. 1 Kursor açık durumda.

214 Kursorun bulunduğu kolon. 215 Kursorun bulunduğu satır.

Alt programı çağırmadan önce programınızda OPEN 1,3 komutunu kullanmanız gerekir. Çünkü elde edilen veri ekrandan 35680 numaralı satırda GET#1 komutu ile alınıyor. Şimdi alt programın bazı satırlarının açıklamasını yapalım: 35020 Değişkenler hazırlanıyor ve GET için kursorun yeri saklanıyor. 35060 Klavyeden bir karakter okunuyor. 35080 Eğer klavyeden okunan karakter RETURN tuşu ise ML değişkenindeki değere ve verinin uzunluğuna göre veri alışı bitiriliyor. 35100-35130 Eğer DELETE ve İNSERT tuşları kullanıldıysa, veri alanının sadece geçerli değerleri (CP=0) aldığı durumda uzunluk ve pozisyon sayaçları ayarlanıyor. 35140 İNSERT eğer IL değişkeni ile verilen uzunluk aşılıyorsa işleme konuyor. 35160-35180 CRSR SAG ve CRSR SOL tuşlarına basıldığında kursorun veri giriş alanından ayrılıp ayrılmadığını kontrol eder. 35200 MN değişkenine göre veri giriş noktası belirlenir. 35220-35240 Eğer kursor veri alanı içinde ise ve sadece sayısal veri girilecekse, girilen karakterler kabul edilir. Program 47-58 arasındakileri kabul ediyor. Ancak isteğinize göre kabul edilebilecek değer aralığını değiştirebilirsiniz. Bu değer aralığı 0-9 arasındaki sayıları içeriyor. 47 değeri 0 rakamını, 58 değeri 9 rakamını temsil ediyor. 35300-35380 Programın bu kısmında da aynı şeyler yapılıyor, ancak kabul edilen karakter aralığı harfleri de içerecek şekilde genişletiliyor. 35400 Eğer veri gereğinden kısaysa ve ML=0 olarak verilmişse veri girişi bitirilmiyor. 35600-35690 Veri giriş alanı ekrandan alınıp IL değişkenindeki değere ulaşılana kadar veya ekranda başka veri kalmayıncaya kadar değişkenine konuyor. Bu işleme başlamadan önce kursor veri giriş alanının başına götürülüyor. Bu şekilde GET#1 komutu veri alanının başından başlıyor. 36000-36060 Kursor kapatılıp G$ değişkeninin içeriği ekranda gösteriliyor. Bu alt programı programlarınızda nasıl kullanabilirsiniz? Mesela veri olarak bir mamül kodu gireceksiniz. Bu kod altı rakam uzunluğunda ve tamamen sayısal olmalı. Bu şartları içeren ana program şu şekilde olabilir: 10 OPEN 4,3 100 MN=0 110 IL=6 : GOSUB 35000 120 IN$=IN$

İstediğiniz kod IN$ değişkeninde. Elde edilen sonucun sadece sayısal ve altı rakamdan oluştuğuna emin olabilirsiniz.

1 Komutu

Klavyeyle gezinmek için ← ve → tuşları.