Amiga Dünyası sayı 2, sayfa 30

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 30

Bu ayki C yazıma üzülerek geçen sayıdaki önemli iki hatayı düzelterek başlamak istiyorum:

Geçen ayki sayıda Aztec C'nin daha hızlı çalışmasını sağlamak amacıyla compiler'ın yaptığı ara işlemlerin Ram Disk'te gerçekleşmesi gerektiğini belirtmiştim. Bunu yapabilmek için gerekli adımları da Kutu 1'de belirtmiştim. Fakat Kutu 1'de dizgi sırasında olan bir hata sonucu dördüncü adım atlanmış ve beşinci adım dördüncü adımın yerine yazılmış. Sizin de hatayı fark ettiğinizi sanıyorum. Çünkü kutuda dört numaralı adımdan altı numaralı olana atlanıyor. Yapılan işlem Aztec C'de rahat çalışabilmek için oldukça önemli olduğundan bu ayki yazımda, birinci kutuda geçen ayın birinci kutusunu tekrarlıyorum. İkinci hata ise iki, üç ve dört numaralı kutularda. Hata şu: "\" (backslash) işaretleri yerine "/" (slash) işareti konmuş. Öyleyse bu ay yapacağınız ilk iş hataları düzeltmek. Öncelikle birinci kutudaki adımları yapın. Daha sonra geçen ayın dergisini açarak ikinci, üçüncü ve dördüncü kutulardaki "/" işaretlerini "\" işaretine çevirin. Böylece denediğinizde çalışmadığını gördüğünüz adımların gerçekleştiğini göreceksiniz. Ayrıca derginizin bu gibi dizgi hatalarına karşı çok duyarlı olduğunu ve hatanın ilk sayı kargaşasından dolayı ortaya çıktığını belirtmek isterim.

Hatamızı düzelttikten sonra artık biraz C konuşmaya başlayabiliriz sanırım.

Bence (ve sanırım sizce de) bir dili öğrenmenin tek yolu, o dilde programlar yapmaktır. Bundan dolayı isterseniz C dünyasına çabuk bir giriş yapalım. Buradaki amacım, dilin önemli özelliklerini size gerçek programlarla göstermek. Dolayısıyla bu aşamada size C'nin tüm olanaklarını değil, genel kavramlarını göstermeye çalışacağım.

Bütün dillerde öğrenilen ilk program, adınızı yazdırmaktır. C'de bunu yapmanın yolu aşağıdaki gibidir:

Main () {

printf ("Erdem Taylan\n"); }

Bu programı nasıl derleyip çalıştıracağınızı merak ediyorsanız, hemen ikinci kutuya bakın ve merakınızı giderin.

Şimdi programla ilgili açıklamalar: Herhangi bir C programı ne konuda olursa olsun bir veya daha fazla fonksiyondan oluşur. Bu fonksiyonlar Basic veya Fortran'daki subrutinlere benzer. Örneğimizdeki Main'de bu fonksiyonlardan biridir. Normalde C fonksiyonlarına istediğiniz ismi verebilirsiniz. Fakat Main özel bir fonksiyonun adıdır. Programınız Main adlı fonksiyonun başladığı yerden çalışmaya başlar. Bu demektir ki, programınızın çalışması için bir yerlerde Main adlı bir fonksiyonun mutlaka olması gerekli. Main fonksiyonunun yaptığı iş genellikle programın diğer fonksiyonlarını harekete geçirmektir. Dolayısıyla Basic'te olduğu gibi programınızdaki her değişiklikte ana programı tekrar düzenleme zorunluluğu ortadan kalkmış olur. C'de böyle bir durumda yapacağınız iş programdaki yardımcı fonksiyonları değiştirmektir.

C'deki fonksiyonlar birbirleriyle argümanlar yoluyla haberleşirler. Argümanlar, fonksiyon adından sonra gelen "( )" parantezler içinde belirtilir. Bizim programımızdaki Main hiçbir argümanı olmayan bir fonksiyon olduğu için parantezlerin içi boş durumda. Main satırından sonraki süslü parantezler ("{" veya "}") ise, programı oluşturan satırları sınırlamak için kullanılmakta. Bir fonksiyon, ana isim ve hemen isimden sonra parantez içinde argüman listesi yazılarak tanımlanır. Fonksiyonları çağırmak için sadece adının yazılması yeterlidir. Dolayısıyla Basic'te olduğu gibi "CALL fonksiyon-ismi (argümanlar)" yerine sadece "fonksiyon-ismi (argümanlar)" yazmanız yeterli. Fonksiyon isminden sonraki parantezler, hiçbir argüman yoksa da mutlaka gerekli (Main'de olduğu gibi). Programdaki;

printf ("Erdem Taylan\n"); satırı bir fonksiyonun -bu durumda printf- çağrılmasını göstermektedir. Burada printf'in argümanı "Erdem Taylan"dır. Buradaki printf, C kütüphanelerindeki bir fonksiyondur.

Printf'in argümanı içindeki "\n", "Erdem Taylan" yazısından sonra bir satır atlanmasını sağlamaktadır. Yani printf, bir argümanı ekrana yazdıktan sonra otomatik olarak bir satır atlamamaktadır. Bunu göstermek için ilk programının değişik bir versiyonunu üçüncü kutuda bulabilirsiniz.

Dikkat ederseniz "\n" sadece tek bir karakter gibi düşünülmektedir (bu durumda new line = yeni satır karakteri). C "\n"den başka; tab karakteri için "\t", backspace (geri silme) için "\b", çift tırnak için "\"" ve backslash'in kendisi için "\\" karakterlerini bize sunmaktadır.

DEĞİŞKENLER VE ARİTMETİK

Yazacağımız ikinci program, size C'de değişken kullanımının ve aritmetik işlemlerin nasıl yapıldığını göstermek için hazırlandı. Programı yazmak için, dördüncü kutudaki adımları uygulayın ve programın çalışmasından sonra tekrar buraya gelin (bekliyorum?).

Programdaki ilk iki satır: /*bu program Fahrenheit-Celsius sıcaklık tablosunu 0'dan 300'e kadar sıcaklıklar için çıkarır*/ bir açıklamadır (comment). "/*" ve "*/" işaretleri arasında kalan her türlü bilgi, compiler (derleyici) tarafından açıklama olarak değerlendirilir ve işleme konmaz. Açıklamalar programda herhangi bir yerde olabilirler ve Basic'teki REMark'larla aynı görevi yaparlar.

C'de bütün değişkenler kullanılmadan önce tanımlanmak zorundadırlar. Genellikle bu işlem çalıştırılabilir bir program satırı yazılmadan yapılır, yani herhangi bir komut veya fonksiyon kullanmadan bütün değişkenler tanımlanmalıdır. Eğer bir komut satırından sonra bir değişken tanımlarsanız, compiler sizi uyarır ve bir hata kodu vererek işlemi durdurur.

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