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ı.
Sayfa 65
Vietnam. Yaşı müsait olanlar hatırlayacaklardır bu kelimenin anlamını ve içeriğini. Amerika'nın, yani o süper gücün Vietnam gibi bir ülkeyi yenememesinin sebeplerini bilirler. Tabii biz burada bu sebepleri tartışacak değiliz. Ama o zamanlar tüm dünya bu sebepleri tartışıyordu. Amerika'nın çöküşünü düşünüyordu ve çok uzun bir süre de düşündü. Düşündükleri konular ise çok içerikliydi. Amerikalı askerler geri dönemediler, dönenlerin durumu ise daha kötüydü. Toplumdan soyutlanmış bir kitle idi, bir yıkımın çocuklarıydı Vietnam kahramanları. Onlar kahramandı, ancak Amerika'da halk düşmanıydılar hatta kınandılar. Oysa onlar askerlik çağı gelmeden gönüllü olarak yazılmışlardı orduya. Kimisi de tatilini geçirmek için gittiğini düşünüyordu Vietnam'a. Oysa gerçek çok farklı olmuş ve gençler neye uğradıklarını anlamadan gençliklerini vermişlerdi Vietnam'da. Hemen hepsi uyuşturucu kurbanı, alkol bağımlısı olmuştu. Ancak Amerika'nın yapabileceği hiçbir şey yoktu. Çünkü zaten ezilen oydu. Hiç tanımadığı topraklarda tanımadığı bir halkla savaşıyordu. Ama bunun cefasını askerler çekiyordu. Yukarıdakiler hiçbir şeyden habersiz sadece seyrediyordu. Olanların ve ilerideki olacakların farkında değildi hiçkimse. Onlar yalnızca Amerika'nın zaferini düşlüyorlardı.
Bu konu uzun süre herkesin dikkatini çekti. Birçok dalda konu oldu ve konu olmaya devam ediyor. Hatta uzun süre konu olmaya devam edecek. Taa ki savaşın izleri silinene, olup bitenleri hatırlayan insan kalmayana kadar. Bu uzun zaman süreci içerisinde oyun firmaları da boş durmayıp Vietnam'ı kendilerine konu edindiler. Bazen bir filmden, bazen de doğrudan. Hepimiz Rambo'yu veya Platoon'u hatırlarız. Vietnam'a en çok kafayı takan software firması da "OCEAN" herhalde. Rambo, Platoon ve benzerlerinden sonra Ocean şimdi de "LOST PATROL"u piyasaya sürdü. Artık siz karar verin kimin bu savaşa taktığına.
1965 yılının haziran ayında Amerikan birlikleri sevk edilirken helikopteriniz arızalanıyor ve gitmekte olduğunuz yerin yani "DUHOC"un 58 mil batısına düşüyorsunuz. Bu sırada helikopterdeki askerlerden yalnızca 7 tanesi kurtuluyor. Bunlar Heaver, Case, Gomez, Cain, Blom, Moore ve Bachman. Yalnız pek kurtulmuş sayılmazlar. Çünkü ne telsizleri ne de yeterli yiyecek ve cephaneleri var. İşte iyi haber ve kötü haber ikilemi burada karşınıza çıkıyor. Tam kurtulduğunuza sevinirken bu aksilikler size moral(!) veriyor. Sık ormandaki nehirler ve Vietnam askerlerinin tuzakları da işin tuzu biberi. Kısaca mümkün olduğu kadar az kayıpla Duhoc'a ulaşmayı başarırsanız birliğinize kavuşabilirsiniz. Aksi halde Vietnam'da kalan Amerikan askerlerine yenilerini eklemiş olursunuz.
Oyunumuzun senaryosunu bu şekilde anlattıktan sonra sıra Lost Patrol'u anlatmaya geldi. Oyuna ilk olarak bir harita grafiği ile başlıyorsunuz. Bu harita sizin hareket ettiğiniz alanı gösteriyor. Alttaki menüler sizin askerlerinizi yönetmenize yardımcı oluyor. Sağ mouse tuşuna basarak bu menüleri görebilirsiniz. Sol tuş ile de seçersiniz. Menüler şunlar: ACTION:
1— Search Area: Etrafınızdaki alanı kontrol edersiniz. Bu sayede çevrenizde ne olup bittiğini öğrenebilmektesiniz.
2— Rest: Dinlenme. Rest seçeneği ile yürümekten yorulan askerlerinizi dinlendiriyorsunuz. Dinlenme süresini sol mouse tuşuna basarak ayarlayabilirsiniz.
3— Dig In: Uyuma. Askerleriniz gece hareket edememektedir. Bu zaman aralığında hem askerlerinizi dinlendirmek hem de hızlı vakit geçirmek için bu seçeneği kullanıyorsunuz. Uyuma süresini saat olarak ayarlayabilirsiniz.
FOOD: 1— Normal Rations: Yemek dağıtımını normal ölçüde yapıyorsunuz. Yani tam tabldot veriyorsunuz.
2— Half Rations: Yarım tabldot olarak dağıtım yapıyorsunuz.
3— Starvations Remainings: Askerlerinize ancak ölmeyecekleri kadar yiyecek veriyorsunuz. Eğer yiyeceğiniz oldukça azalmış durumdaysa bunu seçmeniz yararınıza olur.
Bu ayarlamalarla yiyecek düzeyinizi kontrol altında tutabilirsiniz. Kalan yiyecek miktarınız en altta yazmaktadır. Örneğin en altta "130 units remainings" yazıyorsa 130 ünite yiyeceğiniz kalmış demektir.
1— Claymore: Mayın döşeyerek tuzak kurmak için kullanıyorsunuz.
2— Grenade: İki ağaç arasına el bombasının piminin çekilmesi ile harekete geçen bir çeşit tuzak kurmaya yarıyor.
3- Display Info: Kurduğunuz tuzaklar hakkında şekilli ve yazılı bilgi alıyorsunuz.