1 Haziran 1989 Tarihli Commodore Gazetesi Sayfa 10

1 Haziran 1989 tarihli Commodore Gazetesi Sayfa 10
Metin içeriği (otomatik olarak oluşturulmuştur)

neğin programınıza yeni bir rutin koyduktan sonra onu bu yeni haliy- le kaydetmek yerinde bir uygulama- lıdır. Yeni rutininizi program içinde çalıştırmanız mümkün olmazsa veya sistem uçarsa önceki kopyaya geri dönerek programlamaya devam ede- bilirsiniz. Şimdi biraz hergün karşılaşılan programlama ve programa girme ha- talarına bakalım. Herhangi bir prog- ramcının herhalde en sık karşı karşı- ya geldiği hata mesajı ünlü SYNTAX ERROR'dnr Bu mesajın sebepleri arasında en başta programı BASIC tarafından yorumlanamayan bir bi- çime dönüştüren yazım hataları gelir. Genellikle, yanlış yazılmış bir komut (ör: POKE yerine POEK veya O ha- rif yerine Ü sayısını basmak gibi) şek- lindedir. Syntax error komutunun bize yap- tığı en büyük yardım, hatanın mey- dana geldiği satırı söylemesidir. Eğer belli bir satırda SYNTAX ERROR'- ün nerede olduğunu göremiyorsanız bu satırı girin. Bazen satırı ol- madığı halde doğruymuş gibi görürüz ve satırı baştan girmek burada basit bir çözüm olabilir. Asıl mesele çıkaran syntax error, kullanıcı tarafından tanımlanan bir fonksiyondaki (DEF FN) hatadan kaynaklanır. Eğer fonksiyon hatalıy- sa hata mesajında belirtilen satır, fonksiyonun tanımlandığı satır yeri- şıklık sahibi olarak sakınılabilir. Bir kez daha, bu komutlarla ilgili tecrü- benin kılavuzdaki i bölümleri okuyarak kısa zamanda kazanılabi- leceğini hatırlatalım. Başka bir yaygın problem, progra- mın işlemesi sırasında bilgisayarın koyduğu bazı sınırlamalardan dola- yı meydana gelir. Bu tür hatalarda, program sentaksı doğrudur ancak program, bilgisayarı yerine getireme- yeceği bir şey yapmaya zorlamakta- dır. Syntax error'ler gibi işleme ha- taları program içinde belli bir satırı sebep olarak gösterirler. Hatanın ne- denlerini bulmak pek kolay olmadı- ğından, düzeltmede sorunlar çıkabi- lir. Örnek olarak ILLEGAL OUAN- TITY hatası herhangi bir bellek ad- resini sıfırdan küçük veya 255'den büyük bir sayı ile POKE etmeye ça- lıştığınızda alacağınız bir mesajdır. Bu değer, program içinde başka bir satırda heeaplamyor olabilir ancak hata mesaj satır bu kullanmaya çalışan satırın numarası- dır. Hatayı düzeltmek için bu yanlış değeri üreten satırı bulmak gereklidir. OUT OF DATA mesajı da bir baş- ka yaygın hatayı bildirir. Bu mesajla karşılaştığınızda hemen READ ko- mutunun okuyacak data bulamadığı- nı düşünmelisiniz. Aslında OUT OF DATA'nın sebepleri çok farklı ola- bilir: eksik bir data ifadesi veya satı- rı; okunacak data miktarını aşan bir FOR/NEXT döngü artışı; unutulan virgüller ya da virgül yerine konan noktalar veya datayı RESTORE yap- madan tekrar READ ile okutmaya çalışmak gibi. Uzun data satırlarını bılgısayara girmek bütün proramcılar için sinir bozucu bir işlemdir. Sonsuz gibi göz- üken satırlarda yanlış girilmiş data- bulmak saman içinde topluiğne aramaya benzer. Burada yapılacak şey datayı kolanlar ve satırlar halin- de teker teker kontrol etmek ve bu arada virgül yerinde bulunan nokta- larla O ile karışan O harflerini ve ben- zer yazım hatalarını bulmak olmak- tadır. Bazı durumlarda sayıları ters yazmak (02'yi 20 yazmak gibi) prog- ramı çalıştırdığınızda hata mesajı al- madan programınızın kilitlenmesine sebep olabilir. Hatalı girilmiş dataların genellik- le programın son çeyrek kısmında ve satır sonlarında bulunduklarını ken- dınız de keşfedebilirsiniz. Burada Sİ- tavsiyemiz programı Üüzen- lı bir şekilde yazmaktır. Salun 10K'lık bir programı bir oturuşta yazmayı düşünmeyin. mutlaka bir yerlerde ha- ta yaparsınız. Örneğin bir data satı- rını yazmayı unuttuğunuzda değiş- kenlerin hatadan sonraki kısmının ta- mamı yanlış değerler alabilir. Üste- lik bir de satırları saklamadıysanız ve sistem uçarsa bunları baştan tekrar yazmak bir işkence haline gelecektir. Altrutinlerden birini atladığınızda ve- ya program tarafından çağrılmaya- cak biçimde yerleştirdiğinizde RE- TURN WITHOUT GOSUB hata mesajını karşınızda bulursunuz. NEXT WITHOUT FOR mesajı da benzer meydana gelir. En muhtemel mesajlardan biri de UN- DEFİNED STATEMENT ERROR'- dür. Bu hata, programda olmayan bir satıra gidilmesini bildiren bir sa- tırda ortaya çıkar. Sonuçta en iyisi belli aralıklarla ve dıkkaıle girmek olacaktır. Analitik hatalar takip edilmeleri en zor olan hatalar arasında başta yera- lırlar. Bunlar BASIC'in farkedeme- yeceği, program dizaynı ve mantık hatalarıdır. Yani program doğru bir sentaks ile çevrildiği halde gerektiği biçimde çalışmaz. eğin aşağıda- ki programda bir bölüm hesaplamak için iki değişken kullanılmaktadır. Döngünün değerinin her azalışın- da değişkenlerden birisinin 1'den kü- çük olup olmadığı kontrol ediliyor. GOTO ifadesi yanlış satır numarası- nı gösterdiğinden kontrol edilen B de- gişkeni aynı değeri tekrar alırken bö- len durumundaki A değişkeni, satır 30'da bir DIVISION BY ZERO ha- tası verinceye kadar satır 40'ta azal- maya devam eder. Hata esasında satır 60'tadır ve GO- TO ifadesi, satır 30'u göstermelidir. Benzer tipte programlama hataları sonucunda program hata mesajı ver- meden yanlış sonuçlar bildirecek şe- kilde çalışabilir. Bunu önlemek için programı zihinden veya kâğıt üzerin- den adım adım izleyerek hesapların ters gittiği satırları bulmak gerekmek- tedir. Bazen bir programı run etmeye ça- lışırsınız ve hiçbir şey olmaz. Ekran

Bu sayıdan diğer sayfalar: