Amiga Dünyası sayı 3, sayfa 64

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 64

eşit data tipini kullanmak olasıysa, o data tipini veren herhangi bir komut dizini orada kullanılabilir. Printf'in son argümanı, bir floating point sayı olduğundan ve (5.0/9.0) * (fahr-32) ifadesi de floating point bir sayı verdiğinden bu kullanım C kurallarına uygundur.

For'un kendisi aslında bir döngü çeşididir. Eğer onu while döngüsü ile karşılaştırırsanız, işleyiş mantığını kolayca anlayabilirsiniz. For üç kısım içerir. Birinci kısım:

fahr = 0 sadece bir kez çalıştırılır. İkinci kısım döngünün test bölümüdür:

fahr = 300

Bu koşul çalıştırılır. Eğer doğruysa döngü işletilir. Bundan sonra üçüncü kısım olan:

fahr = fahr + 20 bölümü çalıştırılır. Koşul yeniden test edilir. Koşul yanlış olduğu anda döngüden çıkılır. Aynen while'da olduğu gibi for'un döngüsü de tek bir komuttan oluşabileceği gibi, süslü parantezler içindeki birçok satırdan oluşabilir. For döngüsünün birinci ve üçüncü kısımlarıysa herhangi bir tek satır işlem olabilir.

While ile for arasındaki seçim genellikle hangisinin daha rahat anlaşıldığına göre yapılır. For döngüsü genellikle başlangıç ve yeniden başlama adımlarının (birinci ve üçüncü kısımların) kısa ve birbiri ile ilişkili olduğu yerlerde kullanılır.

Şimdi biraz daha alıştırma vereyim (neredeler mi? Tabii ki üçüncü kutuda).

SEMBOLİK SABİTLER

Fahrenheit-celsius programı ile ilgili olarak son yapacağımız programın içindeki 300, 20 gibi sayıların C diline ve doğal olarak size getirdiği zararları incelemek. C'de bu şekilde sayılar kullanmak hiçbir zaman iyi değildir. Çünkü eğer bu sayıları değiştirmek istersek, programda sayıları içeren tüm yerleri değiştirmeliyiz. Eğer programımız buradakinin aksine oldukça büyük kapasiteli bir programsa, bu iş oldukça can sıkıcı ve uzun süren bir iş olabilir. İşte bunu engellemek için C bize #define tanımlamasını sunmakta. #define tanımlaması ile, programın başlangıcında sembolik karakterler tanımlayabilirsiniz. Bu işlemden sonra compiler, o sembolün programdaki tırnak içine alınmamış bütün yer alışlarını sembolün karşılığı ile değiştirir.

Sembolik sabitlere örnek vermek amacıyla dördüncü kutuda olan programı yazın ve çalıştırın.

Gördüğünüz gibi ALT, ÜST, ADIM sembollerinin karşısındaki değerler sabitlerdir. Dolayısıyla programın ilerisinde bir yerde:

ALT =100;

diye bir satır yazamazsınız. Bu terimler aslında birer sabit olduğu için değişken gibi kullanılamazlar. Doğal olarak,

fahr = ALT;

programın herhangi bir yerinde yer alabilir. Son olarak sembolik sabitlerin genellikle değişkenlerden ayırmak amacıyla büyük harflerle yazıldığını ve tanımlama satırından sonra noktalı virgül konmadığını ekleyeyim. Tabii ki ilerde üst ve alt sınırlarda bir değişiklik yapmak isterseniz değiştirmeniz gereken tek satır, tanımlamanın yapıldığı satır olacaktır.

Bu aşamadan sonra birbiri ile ilişkili ve oldukça yararlı birkaç programı size vereceğim. Programlar karakterler üzerinde basit operasyonlar yapmaya yarıyorlar.

KARAKTER GİRİŞ VE ÇIKIŞI

Daha önce de belirttiğim gibi C kendi başına giriş/çıkış'la ilgili hiçbir komut içermemektedir. Peki o zaman karakterleri nasıl okuyup yazacağız? Burada da standart C kütüphanesi yardımımıza koşmakta. Evet standart C kütüphanesi karakter okuma ve yazma işlemleri için iki fonksiyon barındırmakta. Fonksiyonlar getchar() ve putchar().

getchar() (dikkat ederseniz bazı satır başlarına küçük harfle başlıyorum. Bunun sebebi C'deki standart fonksiyon ve komutların küçük harflerle yazılması zorunluluğu. Ben de eğer büyük harfle başlarsam bu sizin kafanızı karıştırır diyerek, ilk kelimeleri C'nin içerdiği kelimeler olan cümlelere küçük harfle başlamaya karar verdim) fonksiyonu her çağrılışında, bir sonraki giriş karakterini alır ve onun değerini bir sayı olarak (ki bu sayı o karakterin ASCII tablosundaki karşılığıdır) programa verir. Yani,

c = getchar ()

atamasından sonra c değişkeni girişin fonksiyonun çağrılışından sonraki ilk karakterini içerir. Karakterler genelde klavyeden alınır fakat bu bir sınırlama değildir.

putchar(c) fonksiyonu ise getchar() fonksiyonunun tamamlayıcısıdır ve putchar(c)

demek, c değişkeninin içerdiği karakteri çıkışa bas demektir. Çıkış, genellikle ekrana olur fakat bu da bir sınırlama değildir.

Aynen printf'de olduğu gibi getchar ve putchar C'de istisna oluşturmamaktadır. Bunlar yine standart C kütüphanesinde yer alan yararlı fonksiyonlardır.

TEXT DOSYALARINI KOPYALAMA

Getchar ve putchar ile şaşılacak derecede yararlı programlar yapılabilir. Yapacağımız ilk program text dosyalarını birbirine kopyalamaya yarayan çok küçük bir program. Programı önce beşinci kutuda yazıldığı gibi compile edin ve daha sonra dördüncü adımda yazıldığı gibi çalıştırın ve bir dahaki aya kadar sabredin.

Evet! Bu aylık bu kadar. Yeni programımızın incelenmesine bir dahaki ay devam edeceğiz. Bu arada siz de verdiğim alıştırmaları yapmayı unutmayın. Hoşça kalın.

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