WHİLE yapısı I WHIİLE koşulu DU Komut listesi REPEAT Yapısı Komut listesi UNTİL koşulu E LOOP yapısı (LOOP ) Komut listesi —( ENDLOOP ) ( Komut İistesi EXİT WHEN koşulu Resim 1: Önemli Comal yapılarının yazım diyagramları ram açıkça görülebilen modüllere ay- rılmış olur. Bunlar ileride ana prog- ramda hiçbir değişiklik gerektirmek- sizin kendi içlerinde değişiklikler ya- pılmasına olanak sağlarlar. Prose- dürlere değerler aktarılabilir: Bu da BASIC programcısının hiç tanımadı- ği bir olgudur. İyi, BASIC'te programcı ana prog- ramda kullanılmış olan değişkenler- le çalışır. Peki, değişkenin değiştiril- memesi gerektiğinde ne yapar? Bu durumda COMAL, değişkenlerin lo- kalize edilmesi olanağını verir. Prog- ramcı, 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 64 depolayabilir, böylece programın uzunluğu yalnızca disket kapasitesiy- le sınırlı hale gelir. Fonksiyonlar, prosedürlerle akraba sayılabilirler. Bunlar ek olarak değerleri geri ver- me olanağı da sağlarlar. Bir fonksi- yonu çağırıp buna bir değer aktara- bilir, bunu işleyebilir ve bir sonuç el- de edebilirsiniz. Böylece bir fonksi- yon bir değişkene bağlanabilir. Açım- lamalar biraz karmaşık olan bu ko- nuyu daha kolay anlaşılır hale geti- rebilir. 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ü ko- mutlarının yardımıyla sorunsuz bir biçimde yazmakta olduğunuz prog- rama 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, he- men tüm diğer dillerde olduğu gibi makine rutinlerine eklenme olanağı da sağlamaktadır. Tüm bu olanakla- rın yanı sıra dosya yönetimi ve Floppy erişimi için kapsamlı komut- lar içeriyor olması, COMAL'da ya- zılmış kapsamlı programların her- hangi bir engelle karşılaşmamasını sağlıyor. COMAL hakkında anlatı- lanlardan etkilendiyseniz, kısa süre- de bir COMAL disketi ya da kartu- şu edinmeye çalışın. Ş 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ılabili- yor. Bunu zorunlu kılan, tüm derle- yici dillerde ortak olan bir özellik: Değişkenlerin programın başında ta- nı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 ön- ceden tanıyor olacaktır. Ayrıca he- men bu değişkenin türünü de (sayı- sal ya da harfsayısal) belirleyecektir. Çevirici program olarak daima “bir- likte 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 ayar- laması 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: İnteger (tamsa- yı), 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 yal- nızca “doğru” ve “yanlış” olarak de- netlenen Boole değişkenleri ekleni- yor. Bunlar genellikle döngü koşul- larında sık kullanılıyor. Herhalde en zor kullanılan tür, göstergeyle sunu- luyor. Bu gösterge değişkeni, örneğin