Commodore sayı 36, sayfa 64

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 64

WHİLE yapısı

(WHİLE koşulu DO

ENDWHİLE )

Komut listesi

REPEAT Yapısı

REPEAT

UNTİL koşulu

Komut listesi LOOP yapısı LOOP —( ENDLOOP Komut listesi

EXİT WHEN koşulu ram açıkça görülebilen modüllere ayrılmış olur. Bunlar ileride ana programda hiçbir değişiklik gerektirmeksizin kendi içlerinde değişiklikler yapılmasına olanak sağlarlar. Prosedürlere değerler aktarılabilir: Bu da BASIC programcısının hiç tanımadığı bir olgudur. İyi, BASIC'te programcı ana programda kullanılmış olan değişkenlerle çalışır. Peki, değişkenin değiştirilmemesi gerektiğinde ne yapar? Bu durumda COMAL, değişkenlerin kalize edilmesi olanağını verir. Programcı, bir değişkenin bir prosedür içinde, ana programın içinde ya da yalnızca tek bir alt programın içinde erişilir olup olmadığını belirleyebilir. Böylece doğabilecek bir isim karmaşası baştan engellenmiş ve programın tüm kısımlarına bakabilme olanağı da korunmuş olur. COMAL, bu prosedürleri diskette depolayabilir, böylece programın uzunluğu yalnızca disket kapasitesiyle sınırlı hale gelir. Fonksiyonlar, prosedürlerle akraba sayılabilirler. Bunlar ek olarak değerleri geri verme olanağı da sağlarlar. Bir fonksiyonu çağırıp buna bir değer aktarabilir, bunu işleyebilir ve bir sonuç elde edebilirsiniz. Böylece bir fonksiyon bir değişkene bağlanabilir. Açımlamalar biraz karmaşık olan bu konuyu daha kolay anlaşılır hale getirebilir. COMAL dili, C-64'ün verimlilik düzeyini çok aşmayı sağlayan bazı başka komutlar da içerir. Grafik ve ses, COMAL'ın kendine özgü komutlarının yardımıyla sorunsuz bir biçimde yazmakta olduğunuz programa sokulabilir. Grafik alanında COMAL'ın yeteneklerini ölçebilmek için Resim 2 bir fikir verebilmektedir. Burada makine dilinin herhangi bir katkısı yoktur. Ama COMAL, hemen tüm diğer dillerde olduğu gibi makine rutinlerine eklenme olanağı da sağlamaktadır. Tüm bu olanakların yanı sıra dosya yönetimi ve Floppy erişimi için kapsamlı komutlar içeriyor olması, COMAL'da yazılmış kapsamlı programların herhangi bir engelle karşılaşmamasını sağlıyor. COMAL hakkında anlatılanlardan etkilendiyseniz, kısa sürede bir COMAL disketi ya da kartuşu edinmeye çalışın.

Resim 1: Önemli Comal yapılarının yazım diyagramları

PASCAL

Gezimize devam edip PASCAL'a geliyoruz. Bu dil COMAL'a örnek olmuş. Aralarındaki en önemli fark ise, dilin türünden kaynaklanıyor. Gerek COMAL gerekse BASIC'in tümüyle çevirici diller olmalarına karşın, PASCAL yalnızca karşılık gelen bir derleyiciyle birlikte kullanılabiliyor. Bunu zorunlu kılan, tüm derleyici dillerde ortak olan bir özellik: Değişkenlerin programın başında tanımlanmaları zorunlu. Hepiniz bunu C-64 BASIC'inden tanıyorsunuz. Bu durumda programın içinde bir yerde ortaya çıkan bir değişkeni çevirici önceden tanıyor olacaktır. Ayrıca hemen bu değişkenin türünü de (sayısal ya da harfsayısal) belirleyecektir. Çevirici program olarak daima “birlikte işlediğinden”', bir değişken için gerekli bellek alanı onun ilk ortaya çıkışında ayrılmaktadır. Derleyici, bir PASCAL programından tümüyle kendi başına işleyebilen bir makine dili programı üretir. Bu sırada değişkenler için gerekli yeri sağlayan bir çevirici sözkonusu değildir. Dolayısıyla derleyicinin baştan hangi değişkenlerin kullanılacağını, bunların uzunluklarını bilmesi ve derleme sırasında gerekli alanı buna göre ayarlaması gerekir. Bu nedenle PAS-CAL'de değişkenler programın başlangıcında deklare edilir. Zorunlu olarak gereken komutlar bu sırada koyu olarak yazılırlar. BASIC'ten tanıdığımız üç farklı değişken türü vardır: Integer (tamsayı), Floating Point (kayar nokta) ve String (yazısal dizi). Bugün piyasada bulunabilen PASCAL versiyonları, beşer tamsayı ve kayar noktalı sayı türleri içeriyorlar. Bunlara bir de yalnızca “doğru” ve “yanlış” olarak denetlenen Boole değişkenleri ekleniyor. Bunlar genellikle döngü koşullarında sık kullanılıyor. Herhalde en zor kullanılan tür, göstergeyle sunuluyor. Bu gösterge değişkeni, örneğin sizin verdiğiniz bir değeri içermez. Çoğu zaman burada değerin bellekte bulunduğu yerin başlangıç adresi gizlidir. Resim 3, bu soyut süreci açıklamayı amaçlamaktadır. Bir başka ilginç veri türü ise RECORD (kayıt) olarak adlandırılır. Bu tür, özellikle dosya yönetiminde kullanılır. Buna ufak bir örneği Resim 4'te görebilirsiniz. Tüm RECORD kendine özgü bir ada sahiptir. Bunun içindeki ögeler, yine, RECORD'la ayrılamaz biçimde bağlı olan bağımsız değişkenler oluştururlar. Bunlar yalnızca RECORD'un adıyla birlikte anılabilirler. “isim” değişkenini ““ad- RECORD'unda işlemek isterseniz, programda şu tanımlamayı yapmanın gerekir: Adres-isim Bu karmaşık yazı biçiminden kurtulunabilmesi için, PASCAL'da DO-WITH komutu vardır. Bu yolla RE-CORD adının verilmesi gereksiz hale gelir. Bu veri türü en çok dosya yönetimi alanında kullanılır. Çünkü komple veri cümlelerinin işlenmesini çok kolaylaştırır. Tabii ki PASCAL, dosyaların işlenmesi için gerekli tüm komutlara sahiptir. Henüz var olmayan, hızlı bir biçimde kendine özgü prosedür ya da fonksiyon olarak programlanmasıdır. Prensipte bunlar da aynen COMAL'daki gibi çalışır. Ama parametre aktarımı sırasında prosedür ya da fonksiyon için değişkenlerin yeniden deklare edilmesi zorunludur. Bir prosedür içindeki değişkenler daima yerel olarak geçerlidir. Derleyicinin verimiyle bağlantılı olarak, tüm program için kullanılabilecek daha global değişkenlerin deklare edilmesi olanağı bulunabilir. Böylece PASCAL'in önemli fonksiyonlarını sıralamış olduk. Derleyiciyi satın alırken dikkat etmeniz gereken konu, verimliliğin derleyiciden derleyiciye değişebilirliğidir. Bu durum özellikle C-64/C 128 için grafik ve ses yeteneklerinin kullanılabilmesi açısından önemlidir.

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