Daha önceki makalemizde belirttiğimiz gibi, programcılık, hayatın kendisidir. Bu nedenle, Şişman Adam üzerinden kavramları incelemeye devam edeceğiz.
Şişman adam; hareketlerine, yapacağı işlere nasıl karar verir ? Mutlaka ve mutlaka, herkes de olduğu gibi onun da bir karar mekanizması var ve bu mekanizma temel olarak neden – sonuç ilişkisine dayanır. Bu ilişkideki “nedensellik” ise en temelde var – yok ya da evet – hayır değerleri taşır. Efendim ? Elektronikteki gibi mi dediniz ? Daha ötesine bakın lütfen... İnsanlardaki gibi desek çok mu abartmış oluruz ? Şu sözü, bir elektronik aygıt mı söyledi yoksa; “Olmak ya da olmamak...” ? Evet insan düşüncesi de bu temel ilke ile karar veriyor: Herhangi bir eylemin gerçekleşip gerçekleşmediğine bakmak... Programcılıktaki adıyla; “True” ya da “False” olup olmadığına...
Şişman Adam’ın, bu konudaki örneklerine bir bakalım isterseniz...
Adamımız; günlerden birgün, yalnızlığa canının tak ettiğini düşünür ve biraz rahatlamak için (!) Bara gider. Barda meyve suyunu yudumlarken karşısındaki bayandan etkilendiğini hisseder. O anda – farketmese de – beyni şu şekilde düşünür:
EĞER karşıdaki bayan sana bakıyorsa
Git onunla konuş.
DEĞİLSE
Kısmet değilmiş.
KARAR VERİLDİ
Bu yapıyı C#.NET’e çevirirsek:
if (bayanbakıyormu == true)
{
MessageBox.Show("Git Konuş");
}
else
{
MessageBox.Show("Kısmet Değilmiş");
}
İşte sevgili yazılım dostları, tüm yazılım dilleri için bel kemiği olan “Karar yapıları” na temel bir giriş yaptık. Ancak tabii ki olay bu kadar değil. Olayı çok da uzatmadan Şişman Adam’a geri dönelim.
Şişman Adam’ın ayda bir kere psikolog bir arkadaşına gidip danışma gibi bir özelliği var. Şimdi size bu son görüşmeden kısa bir konuşmayı aktaralım.
“Her şey dokuz yaşımdayken başladı dostum... Kahvedeki o yaşlı amca beni o kadar yıpratmıştı ki, hala hatırladıkça tüylerim diken diken oluyor:
O gün, mahallede arkadaşlarımla oyun oynuyorduk. Birden kahvenin önünde oturan yaşlı bir adam yanıma geldi ve elinde tuttuğu boş Uzun Samsun paketini bana göstererek şu aşağıdaki cümleyi kurdu:
EĞER bu sigara varsa
Bu sigaradan al
YOKSA EĞER Kısa Samsun varsa
Onu Al
YOKSA EĞER Uzun Maltepe varsa
Onu Al
YOKSA EĞER Kısa Maltepe varsa
Onu Al
O KADAR
Bu cümleyi unutamadım dostum....”
Evet Şişman Adam’ın bu garip anısının tabii ki, C#.NET ile bir bağlantısı var. Yukarıdaki cümlenin aynısını bakın C#.NET dilinde nasıl yazıyoruz:
IF (uzunsamsunvarmi == true)
{
Messagebox.Show(“Uzun Samsun Al”);
}
ELSE IF (kisasamsunvarmi == true)
{
Messagebox.Show(“Kısa Samsun Al”);
}
ELSE IF (uzunmaltepevarmi == true)
{
Messagebox.Show(“Uzun Maltepe Al”);
}
ELSE
{
Messagebox.Show(“Kısa Maltepe Al”);
}
Sanırım farketmişsinizdir, şimdiye kadar karar yapılarını sadece bir eylemin sonucuna göre kullandık. Oysa ki, normal bir insan çoğu zaman, karar verirken birbirinden farklı birkaç eylemin sonucuna bakmaktadır...
Örneğin Şişman Adam, ÖSS’de barajı geçip de, sıra tercih aşamasına geldiğinde şöyle düşünmüştü:
“EGER puanım bu bölüme yetiyorsa VE bu bölümde okumak beni mutlu edecekse
Yazarım....
KARAR VERİLDİ.
Ya da daha spesifik bir örneği Şişman Adam’ın anılarından aktaralım:
Şişman Adam, katıldığı bir nikah töreninde şöyle bir gözlem yapmış:
Damat ve Gelin, nikah memurunun huzuruna çıktıkları anda, hayatları boyunca unutamayacakları en güzel “evet” i diyeceklerini biliyorlardı. Ve yine bildikleri birşey vardı ki; içlerinden birinin “hayır” demesi durumunda, bu evlilik gerçekleşmeyecekti.
Yani bir cümleyle şöyle özetlenebilir bu durum:
EĞER Damat “evet” der VE Gelin de “evet” derse
Evlenirler.
DEĞİLSE (İçlerinden biri hayır derse)
Evlenemezler
BUDUR.
İşte bu cümlede C#.NET’ de kullanılan && operatörünü anlamamıza olanak sağlayacaktır.
if (Damat == “Evet” && Gelin == “Evet”)
{
MessageBox.Show(“Evlenirler”);
}
ELSE
{
MessageBox.Show(“Evlenemezler”);
}
Normal hayattaki kararlara geri dönelim...
Zaman zaman, öyle durumlar oluşur ki; karar vermeniz için iki eylemden birinin gerçekleşmesi yeterli olur. İşte bu durumda da C#.NET tarafında “VEYA” anlamına gelen || kullanırız...
IF (Gun == “Cumartesi” || Gun == “Pazar”)
{
MessageBox.Show(“Hafta Sonu”);
}
else
{
MessageBox.Show(“Hafta İçi”);
}
Peki... her eylemin bir sonucu mu vardır şu hayatta ? Hayır tabii ki... Bazen, eylemin gerçekleşme şekline göre birden fazla sonuca kendinizi hazırlayıp ona göre karar vermeniz gerekir.
Bunun örneğini bakalım Şişman Adam nasıl veriyor...
Şişman Adam, paranoyak bir adam olduğu için, araba kullanırken ışıklara gelmeden neredeyse bir kilometre önceden aşağıdaki gibi düşünür...
Işıklara Ulaştığında
Işık Kırmızı ise
Duracak
Işık Sarı ise
Bekleyecek
Işık Yeşil ise
Geçecek
Bitti
İşte sevgili Şişman Adam fanatikleri...
Bu tarz bir karar mekanizmasını C#.NET ‘de select case yapısını kullanarak yapıyoruz
Switch (isiklar)
{
case “Kırmızı”:
MessageBox.Show(“Dur”);
break;
case “Sarı”:
MessageBox.Show(“Bekle”);
break;
case “Yeşil”:
MessageBox.Show(“Geç”);
break;
}
Gördüğünüz gibi dostlar... Programcılığı hayatın temellerinden ayıramayacağınızı bir kez daha gösterdik.
Şunu asla unutma ey sevgili okur... Burada olduğunuz sürece şişman adam maceralarına devam edecek.
Hepinize sağlam algoritmalı kodlar diliyorum...