Bu sayfadaki yazılar
Sayfanın metni
Sayfa 42
Ne zaman Balık burcu dense, aklıma bir incir gelir; olgunluğunun doruğunda ama dalından henüz düşmemiş bir incir. Görüntüsünden önce kokusuyla farkına varılır. Kendine özgü bir kırmızılıktaki damlalarıyla usaresini akıtırken, sanki yere, yerçekimine doğru eğilimini simgeliyor gibidir. Eskiler bir şeyin sonunun, vardığı sonucun aynı zamanda onun yetkinliği, en mükemmel ân'ı olduğunu söylerlerdi. Ama betimlemeye çalıştığım türden incirin, bu bakımdan bir yanıltıcılığı vardır. Elbette o da eninde sonunda dalından düşecektir. Ama bu gerçeklik, olgunluğunun doruğunda olduğu o son ân'ın tılsımını azaltmaz. Sonu sanki sadece kendi geçici olgunluğunu değil, bütün toprağın ve özellikle de kendisine en yaraşan yer olan Ege'nin yetkinliğidir. İnsan ona bakar ve doğum-ölüm çemberinin kırılabileceğini, olgunluğun süreklilik kazanarak bir varoluş biçimine dönüşebileceğini sanır. Ya da başka bir imge: Alabildiğine gerilmiş bir saz teli düşünün. Odadaki her titreşimden etkileniyor; her gölgeye, her renge, her duygu kıpırtısına ses veriyor: Ya da daha doğrusu her şey kendi sesini onda buluyor.
AZ 3 A
Balığın Kötülüğü
Tekilliğinizi, bireyselliğinizi bir an için unutup onun muğlaklığına, bulanıklığına gözlerinizi dikmeye cüret edin. Orada kendinizi yeniden keşfedeceksiniz. Çünkü siz ona baktığınız sürece, sizi bir şekilde yansıtmayan, hesaba katmayan hiçbir şey yapmayacaktır. Bu yüzden ona kızmak neredeyse olanaksızdır. Çünkü size en büyük kötülüğü yaparken bile, sizin bir yanınızı hesaba katmakta olduğunu fark edersiniz- bu yan, sizin kendinizde en sevmediğiniz, kendinize en karşı yan bile olsa. Size yapılmakta olan kötülüğü, aslında sizin kendi kendinize yapmakta olduğunuz, bunu hak etmiş olduğunuz duygusundan kurtulamazsınız. Belki de teninizi yarmakta olan soğuk madeni tutan el, kendi intihar tutkunuzdur. Bütün bunlar kısaca “anlayışlılık” diye adlandırılabilecek -yanlış ve eksik olarak “anlayışlılık” diye adlandırılabilecek- bir özellikten kaynaklanıyor. Balık burcu insanı, herkesi içerden, kendisi oymuşçasına tanır. Anlaşılmak mutluluksa eğer ve aşktan vazgeçebildiğiniz takdirde, kimse sizi onun kadar mutlu edemez. Bütün bunlar dışardan bakılarak söylenmiş sözler. Balık burcunu sevmiş, ondan incinmiş ve onu sevmeye devam etmiş birinin söyleyebileceği sözler. Ya balık burcunun kendisi?.. Onun yalnızlığını tarif edecek sözleri kim bulup çıkarsın?
Samet KUMAŞ
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 43
Cenk EDEN
Siz; bilgisayarcılar arasına yeni yeni katılan yeni bilgisayar sahipleri. Siz; bunun gururunu, coşkusunu taşıyan ve sorumluluklarınızın bilincinde olan yeni gönüllüler. Bilgisayara “merhaba” dediniz ve belki de kullanım kılavuzundan veya derginiz Commodore'dan ilk programınızı yazdınız. Daha ilk adımda hata yapmamak ve ilk RUN'ınızda sevimsiz bir hata mesajı görmemek için, programınızı büyük bir dikkat ve özenle, en küçük ayrıntısını bile birkaç kez kontrol ederek yüklediniz.
Tüm bu çabalarınıza rağmen, eğer programınız on satırdan uzunsa, büyük bir olasılıkla ilk denemenizde çalışmayacaktır. Olacak şey değil, programınız yapabileceği tüm yanlışlıkları yapıyor ve siz bunun nedenini bir türlü bulamıyorsunuz. Programınıza bir daha -belki de 101. kez- göz attığınızda onu bir tabak spagettiden daha karışık buluyorsunuz. Açıkçası programı düzeltme şansınız o kadar zayıf ki, fişi çekip yeniden başlama fikri bir anda çok cazip hale geliyor. Bilgisayarın başına oturduğunuz o heyecan dolu, coşku dolu ilk günlere dönerseniz herhalde yukarıdaki tablonun size de pek yabancı olmadığını göreceksiniz. Pek çoğumuz yaşadık o umutsuzluk dolu saatleri ve belki de yeni bir kavram kattık dağarcığımıza;
errorofobi. Çözümü yok muydu, cevapsız mıydı bu sorun? Elbette var; çözüm de sorun kadar önemli üstelik; disiplinli programlama daha doğru bir ifade ile programlarınıza disipline edilmiş bir yaklaşımla eğilmenizdir. Bilgisayarınızın tuşuna bastığınız ilk andan itibaren bu tekniği kullanmaya ve geliştirmeye çalışmalısınız. Profesyonel software yazarları -yazılımcılar- yapısal programlama tekniklerini kullanırlar.
Yazılımcılar ilk olarak çözmek zorunda oldukları problemlerin -fonksiyonel blokların- çözüm yollarını bulurlar ve tüm bu çalışmalar yapıldıktan sonra, işin nispeten kolay yanı olan aşamaya gelinir. Bu aşamada, ortaya çıkan program planı bilgisayarın işleyeceği şekle sokulur. Yani program bilgisayar dillerinden birine çevrilir. Bir amatörden tüm bu çalışmaları yapmasını beklemek belki biraz fazladır. Bir de buna amatörün mütevazı sayılabilecek amaçlarını eklerseniz, isteklerimin bir amatör için insafsız sayılabilecek kararlar olduğunu düşünebilirsiniz. Çünkü amatör, programlamanın getireceği nimetlerle ilgilenmez, onun için biçimsel ve yöntemsel kazançlar anlamsız birer kavram olmaktan ileri gidemezler. Amatörün tek istediği, programının sonucunu mümkün olduğu kadar kısa sürede ekranda görmektir. Bununla birlikte eğer bu tür bir disiplini programlarınızda biraz olsa bile kullanırsanız, programlarınızın daha kolay yazılır hale geldiğini görecek ve hepsinden önemlisi yanlışlarınızı daha kolay düzelttiğinizi fark edeceksiniz. Programınız için çizilecek birkaç akış diyagramı, size programınızın bir sonraki adımda ne yapacağını görme olanağını verir. Böylece programınızın bölümler arası koordinasyonunu sağlama olanağınız olacaktır. Şimdi sıra programın gerçek anlamda yazımına geldi. Madem bir süre sonra BASIC kullanıyor olacaksınız en azından onunla başlayacaksınız, öyleyse iyi kurulmuş bir BASIC programında neler olması gerekiyor bir de buna bakalım. Öncelikle alt programları gözden geçirelim. Programınızda her biri akış diyagramınızdaki bir kutuya karşılık gelen alt programlardan bir dizi olmalıdır. Bunun sonucunda program parçalarınız küçük bloklar haline gelecek ve böylece tüm alt programı ekrana aynı anda listeleyebileceksiniz. Her alt program açıkça tanımlanmış bir fonksiyonu yerine getirmeli ve ana programdan bağımsız olarak test edilebilmelidir. Bu testi gerçekleştirmek için sonuçlarını bildiğiniz test değerlerini alt programa girin ve alt programı çalıştırın, eğer çıkan sonuçlar sizin kendi sonuçlarınızla aynı ise, alt program, bu kez farklı değerlerle, çalıştığında çıkacak sonuçların kesinlikle doğru olacağından şüpheniz olmasın. Basit bir örnek ele alalım. Farz edin programınızda bir dairenin alanının hesaplanması gerekiyor. Bunu hesaplayacak alt program aşağıdakine benzer bir rutin olacaktır.
998 REM R YARIÇAPLI 99 REM DAİRENİN HESABI 1000 A — 77 xRxR 1010 RETURN
Bu rutin oldukça basit olmasına rağmen değindiğim prensibi gerçekleştirir niteliktedir. Çünkü rutin sadece bir işlevi yerine getiriyor ve kolayca test edilme olanağı var. Aşağıdaki satırı yazıp RETURN ederseniz, sonucun 28.274 veya buna yakın bir
R—3: GOSUB 1000:PRİNT A
sayı olduğunu göreceksiniz. Bu rutin, her ne kadar, görevini yukarıda saydığım prensiplere göre eksiksiz yapıyorsa da, mükemmel bir alt program sayılmaz. Çünkü bu işlemi bir kez yaptıktan sonra kullandığınız modülü (satır) unutabilirsiniz. Ayrıca; gerçi biraz ayrıntı sayılsa da, programınızda R değerinin belirli bir sınır içinde olup olmadığını kontrol eden daha derin bir detay olabilirdi. Bu yöntemle eğer R belirlenen sınır içinde değilse uygun bir hata mesajı basılabilir, böylece programın ana kısmı bir hata yapıldığından haberdar olabilirdi. Öyleyse daha düzgün, daha kullanışlı bir alt programın nasıl düzenlenmesi gerekiyor? Öncelikli programın doğrusal akışını korumanız gerekiyor. Mademki alt programın çağrıldığı satıra geri dönmesi için RETURN komutunu kullanmak zorundasınız, o zaman kontrol de düzgün bir şekilde ilk satırdan son satıra kadar akmalıdır. Bir alt programdan programın başka bir bölümüne hiçbir atlama olmamalıdır. Ancak bu genellemeye bir başka alt program girmez; yani alt-
programlar arası yolculuk serbesttir. Ayrıca bir alt programı tamamladığınızda, alt programda “gevşek son” olmaması gerekir. Gevşek son deyimi tamamlanmamış FOR-NEXT döngüleri için kullanılır. Bu basit kurallara uyulduğu takdirde, bir hata durumunda alt program ana programdan kolayca sökülebilir. BASIC çoğunlukla bilgisayarcıların ilk göz ağrısıdır. Ancak bu özel konumuna rağmen, disiplinli bir programlama tekniğinin geliştirilmesi için kullanılabilecek en iyi dil olduğunu söylemek zordur. Çünkü pek çok şeyi geçiştirmenize izin verir; FOR-NEXT döngüleri buna iyi bir örnektir. Bu döngüler genellikle programcı için bir sorun kaynağı olurlar. Örneğin alttaki rutin insana oldukça makul gözüküyor.