Amiga Dunyasi - Sayi 02 (Temmuz 1990).pdf - Retro Dergi
Amiga Dunyasi - Sayi 02 (Temmuz 1990).pdf - Retro Dergi
Amiga Dunyasi - Sayi 02 (Temmuz 1990).pdf - Retro Dergi
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
DİLLER<br />
AMIGA<br />
ERDEM TAYLAN<br />
Bu ayki C yazıma üzülerek geçen sayıdaki<br />
önemli iki hatayı düzelterek başlamak<br />
istiyorum:<br />
Geçen ayki sayıda Aztec C'nin daha<br />
hızlı çalışmasını sağlamak amacıyla compiler'ın<br />
yaptığı ara işlemlerin Ram Disk'-<br />
te gerçekleşmesi gerektiğini belirtmiştim.<br />
Bunu yapabilmek için gerekli adımları da<br />
Kutu l'de belirtmiştim. Fakat Kutu l'de<br />
dizgi sırasında olan bir hata sonucu dördüncü<br />
adım atlanmış ve beşinci adım<br />
dördüncü adımın yerine yazılmış. Sizin<br />
de hatayı farkettiğinizi sanıyorum. Çünkü<br />
kutuda dört numaralı adımdan altı<br />
numaralı olana atlanıyor. Yapılan işlem<br />
Aztec C'de rahat çalışabilmek için oldukça<br />
önemli olduğundan bu ayki yazımda,<br />
birinci kutuda geçen ayın birinci kutusunu<br />
tekrarlıyorum. İkinci hata ise iki, üç<br />
ve dört numaralı kutularda. Hata şu: "\"<br />
(backslash) işaretleri yerine "/" (slash)<br />
işareti konmuş. Öyleyse bu ay yapacağınız<br />
ilk iş hataları düzeltmek. Öncelikle<br />
birinci kutudaki adımları yapın. Daha<br />
sonra geçen ayın dergisini açarak ikinci,<br />
üçüncü ve dördüncü kutulardaki "/"<br />
işaretlerini "\" işaretine çevirin. Böylece<br />
denediğinizde çalışmacuğını gördüğünüz<br />
adımların gerçekleştiğini göreceksiniz.<br />
Ayrıca derginizin bu gibi dizgi hatalarına<br />
karşı çok duyarlı olduğunu ve<br />
hatanın ilk sayı kargaşasından dolayı ortaya<br />
çıktığını belirtmek isterim.<br />
Hatamızı düzelttikten sonra artık biraz<br />
C konuşmaya başlayabiliriz sanırım.<br />
AMIGA DÜNYASI 32<br />
C DÜNYASI<br />
Bence (ve sanırım sizce de) bir dili öğrenmenin<br />
tek yolu, o dilde programlar<br />
yapmaktır. Bundan dolayı isterseniz C<br />
dünyasına çabuk bir giriş yapalım. Buradaki<br />
amacım, dilin önemli özelliklerini<br />
size gerçek programlarla göstermek.<br />
Dolayısıyla bu aşamada size C'nin tüm<br />
olanaklarını değil, genel kavramlarını<br />
göstermeye çalışacağım.<br />
Bütün dillerde öğrenilen ilk program,<br />
adınızı yazdırmaktır. C'de bunu yapmanın<br />
yolu aşağıdaki gibidir:<br />
Main ()<br />
{<br />
printf ("Erdem Taylan\n");<br />
}<br />
Bu programı nasıl derleyip çalıştıracağınızı<br />
merak ediyorsanız, hemen ikinci<br />
kutuya bakın ve merakınızı giderin.<br />
Şimdi programla ilgili açıklamalar:<br />
Herhangi bir C programı ne konuda<br />
olursa olsun bir veya daha fazla fonksiyondan<br />
oluşur. Bu fonksiyonlar Basic<br />
veya Fortran'daki subrutinlere benzer.<br />
Örneğimizdeki Main 'de bu fonksiyonlardan<br />
biridir. Normalde C fonksiyonlarına<br />
istediğiniz ismi verebilirsiniz. Fakat<br />
Main özel bir fonksiyonun adıdır. Programınız<br />
Main adlı fonksiyonun başladığı<br />
yerden çalışmaya başlar. Bu demektir<br />
ki, programınızın çalışması için bir yerlerde<br />
Main adlı bir fonksiyonun mutlaka<br />
olması gerekli. Main fonksiyonunun<br />
yaptığı iş genellikle programın diğer<br />
fonksiyonlarını harekete geçirmektir.<br />
Dolayısıyla Basic'te olduğu gibi programınızdaki<br />
her değişiklikte ana programı<br />
tekrar düzenleme zorunluluğu ortadan<br />
kalkmış olur. C'de böyle bir durumda<br />
yapacağınız iş programdaki yardımcı<br />
fonksiyonları değiştirmektir.<br />
C'deki fonksiyonlar birbirleriyle argü-<br />
manlar yoluyla haberleşirler. Argümanlar,<br />
fonksiyon adından sonra gelen<br />
"( )" parantezler içinde belirtilir. Bizim<br />
programımızdaki Main hiçbir argümanı<br />
olmayan bir fonksiyon olduğu için parantezlerin<br />
içi boş durumda. Main satırından<br />
sonraki süslü parantezler ("{" veya<br />
"}") ise, programı oluşturan satırları<br />
sınırlamak için kullanılmakta. Bir fonksiyon,<br />
ana isim ve hemen isimden sonra<br />
parantez içinde argüman listesi yazılarak<br />
tanımlanır. Fonksiyonları çağırmak için<br />
sadece adının yazılması yeterlidir. Dolayısıyla<br />
Basic'te olduğu gibi "CALL<br />
fonksiyon-ismi (argümanlar)" yerine sadece<br />
"fonksiyon-ismi (argümanlar)"<br />
yazmanız yeterli. Fonksiyon isminden<br />
sonraki parantezler, hiçbir argüman yoksa<br />
da mutlaka gerekli (Main'de olduğu<br />
gibi). Programdaki;<br />
printf ("Erdem Taylan\");<br />
satırı bir fonksiyonun -bu durumda<br />
printf- çağrılmasını göstermektedir. Burada<br />
printf'in argümanı "Erdem Tayland'dır.<br />
Buradaki printf, C kütüphanelerindeki<br />
bir fonksiyondur.<br />
Printf'in argümanı içindeki "\n",<br />
"Erdem Taylan" yazısından sonra bir<br />
satır atlanmasını sağlamaktadır. Yani<br />
printf, bir argümanı ekrana yazdıktan<br />
sonra otomatik olarak bir satır atlamamaktadır.<br />
Bunu göstermek için ilk programının<br />
değişik bir versiyonunu üçüncü<br />
kutuda bulabilirsiniz.<br />
Dikkat ederseniz "\n" sadece tek bir<br />
karakter gibi düşünülmektedir (bu durumda<br />
new line = yeni satır) karakteri).<br />
C "\n"den başka; tab karakteri için<br />
"\t", backspace (geri silme) için "\b",<br />
çift tırnak için "\"" ve backslash'in kendisi<br />
için "\\" karakterlerini bize sunmaktadır.<br />
DEĞİŞKENLER<br />
VE ARİTMETİK<br />
Yazacağımız ikinci program, size C'de<br />
değişken kullanımının ve aritmetik işlemlerin<br />
nasıl yapıldığını göstermek için hazırlandı.<br />
Programı yazmak için, dördüncü<br />
kutudaki adımları uygulayın ve programın<br />
çalışmasından sonra tekrar buraya<br />
gelin (bekliyorum?).<br />
Programdaki ilk iki satır:<br />
/*bu program Fahrenheit-Celsius sıcaklık<br />
tablosunu O'dan 300'e kadar sıcaklıklar<br />
için çıkarır*/<br />
bir açıklamadır (comment). "/*" ve<br />
"*/" işaretleri arasında kalan her türlü<br />
bilgi, compiler (derleyici) tarafından<br />
açıklama olarak değerlendirilir ve işleme<br />
konmaz. Açıklamalar programda herhangi<br />
bir yerde olabilirler ve Basic'teki<br />
REMark'larla aynı görevi yaparlar.<br />
C'de bütün değişkenler kullanılmadan