1 Ekim 1986 Tarihli Commodore Gazetesi Sayfa 59

1 Ekim 1986 tarihli Commodore Gazetesi Sayfa 59
Metin içeriği (otomatik olarak oluşturulmuştur)

tulmak mümkün olur. BLOAD ve BSAVE ise herhangi bir bellek içe- riğini (makine programları, grafik- ler vb.) yüklemeye ve bellekte saklamaya yararlar. Sıralı ve rast- gele kütüklerin daha kolay kulla- nılmasına yarayan bir dizi komut daha vardır. Örneğin RECORD ile bir rastgele kütüğün herhangi bir veri kaydına doğrudan erişilebi- lir: APPEND ise sıralı kütüklere ek veri kayıtlarının sorulmasınc ya- rar. GOTO'suz Programlama BASIC 7.0, GOTO'lara gerek duymaksızın yapılandırılmış prog- ramlamayı sağlayan bir dizi dön- gü ve yapı komutlarına sahiptir. Bunlardan biri, ELSE koşulu için (F..THEN sorusunun geliştirilmişi. Şimdiye kadar alternatifli tercihler şu örnekteki gibi programlanabi- liyordu: 40 İF A$—”N” THEN PRİNT “HAYIR”GOTO 30 20 PRİNT “EVET” 30 REM BOYLECE DEVAM BASIC 7.0'da aynı işi yapmak için çok daha kolay aniaşılabilen tek bir satır yeterli: 10 1F A$—”N” THEN PRİNT “HAYIR'SELSE PRİNT “EVET” A$, “N”e eşitse "HAYIR”, değilse “EVET” basılacaktır. Yazık ki, ELSE komutu bu şekliy- le tek bir satırla sınırlanmıştır. Bu- rada gerekli çareyi BEGİN...BEND ile parantezleme sağlar. BEĞİN ve BEND arasında yer alan tüm Basic satırları, Basic çe- viricisi tarafından tek bir Basic sa- tırı gibi algılanan bir öDek oluştu- rur. Bu nedenle BEGİN...BEND, özellikle İF sorularında çok yarar sağlar: 410 İNPUT “SENİN BİLGİSAYARIN COMMODORE MU BASKA MI?;CS 20 İF CS$ - “COMMODORE” THEN BEĞİN 30:PRİNT"C-128 SATIN ALINIZ!” 40:BEND:ELSE BEGİN SO:PRİNT“HAİN!” 60 BEND H N F 60 Burada dikkat edilmesi gere- ken, İF komutunun 20 satırından 60 satırına kadar yayılmakta ol- masıdır. Bu örnekte, eğer bilgisa- yar Commodore ise, bir C-128 sa- tın alınması öneriliyor. Eğer bilgi- sayaır Schneider veya başka bir markaysa hemen “hain” damga- sı vuruluyor. Tabii ki, bu tür IF...THEN...ELSE so- ruları, BESİN...BEND ile birbirine geçirilebilir. yani hem THEN bölü- müne hem de ELSE bölümüne ek IF soruları eklenebilir. Böylece daha büyük program öbekleri de GOTO kullanılmaksı- zın programlanabilir. GOTO'nun dışlanması, programa bir toplu bakışı kolaylaştırdığı gibi, hızını da oldukça artırır. Basic çevirici her GOTO komutunda öncelikle programın içinde ondalık olarak bulunan satır numarasını ikili yazı düzenine dönüştürmek ve verilen satırı aramak zorundadır. Bir di- ğer avantaj: Program komutları- nın kendilerine artık daha başka satır numaralarına gerek kalmı- yor. Örnek program hiçbir deği- şiklik gerektirmeksizin olası tüm sa- tır alanlarında kullanılabilir. Böylesine kolay programlanan yalnızca dallanmalar değilidi. Özellikle döngülerde, yani belirli program parçalarının tekrarlan- masında, BASIC 7.,0'ın üstünlüğü kendini açıkça göstermektedir. C-ö4'ten de bildiğimiz gibi, bir FOR...NEXT döngüsü, aynı döngü- nün İF ve GOTO ile programlan- mış halinden bir miktar daha hız- hodır. FOR...NEXT döngüsünün de- zavantajı ise, döngünün kaç ke- re tekrarlanması gerektiğinin gi- rişte verilmesi zorunluluğudur. Bu commodore dezavantaj, yeni ve hızlı bir DO...LOOP döngü yapısı İle orta- dan kaldırılabilmektedir. FOR...NEXT gibi DO...LOOP da is- tenen uzunlukta bir program bö- lümünü çevreleyebilir. DO komu: tu, yalnızca Basic çeviricisinin döngünün başlangıcını faretme- sini sağlar. Buna ilişkin LOOP'a eri- şildiğinde, herhangi bir arama süresi gerektirmeksizin son dere- ce hızlı bir biçimde DO'ya geri at- lanacaktır. Yani sonuçta ortaya çıkan, DO ile LOOP arasında bir “sonsuz döngü“dür. Bu döngüyü terkedebilmek için, EXİT komutu öngörülmüştür. EXİT'in görevi, LO- OP'un arkasından programın akı- şının normal bir biçimde sürdürül- mesidir. Bu nedenle EXİT komutu, çoğunlukla bir koşula bağlanır. Örnek: 10 X-1 20 DO 30:X — x * 2:PRİNT X AD:İF X > 1500 THEN EXİT 50 LOOP x değeri, 1500 değeri aşılana kadar ikiye katlanır ve görüntüle- nir. Bu koşulsuz DO...LOOP döngü- sünün yanısıra, koşullara bağımlı iki tür de öngörülmüş durumda: DO WHİLE...LOP, WHILE'den sonra yer alan koşul geçerli olana ka- dar sürer: 10DO WHİLE A$ —- : GET A$:LOOP Hiçbir tuşa basılmamış olduğu durumda, WHİLE koşulunu yerine getiren A$ daima boştur. Döngü- nün terkedilmesi ancak bir tuşa

Bu sayıdan diğer sayfalar: