Mantıksal İfadeler
- Derleyici
10 < sayı
'yı bir ifade olarak tanıdığı için, ondan sonra bir virgül bekliyor. Bütün ifadenin etrafına parantezler koyulduğunda da sorun çözülmüyor, çünkü bu sefer de10 < sayı
ifadesinden sonra bir kapama parantezi bekliyor. -
(10 < sayı) < 20
şeklinde gruplama kullanıldığında derleme hatası olmaz, çünkü derleyici önce10 < sayı
ifadesini işletir, ondan sonra onun sonucunu< 20
ile kullanır.10 < sayı
gibi bir mantıksal ifadenin sonucunun da yafalse
ya datrue
olduğunu biliyoruz.false
vetrue
değerleri tamsayı işlemlerinde kullanıldıklarında otomatik olarak 0 ve 1 değerlerine dönüşürler. (Otomatik tür dönüşümlerini daha sonra göreceğiz.) O yüzden de bütün ifade ya0 < 20
ya da1 < 20
haline gelir ve ikisinin sonucu da her zaman içintrue
'dur. - "Alt sınırdan büyüktür ve üst sınırdan küçüktür" mantıksal ifadesini şöyle kurarız:
writeln("Arasında: ", (sayı > 10) && (sayı < 20));
- "Yeterince bisiklet var" ifadesini
kişi_sayısı <= bisiklet_sayısı
veyabisiklet_sayısı >= kişi_sayısı
olarak yazabiliriz. Diğerleri de sorudaki ifade doğrudan D koduna çevrilerek yazılabilir:writeln("Plaja gidiyoruz: ", ((mesafe < 10) && (bisiklet_sayısı >= kişi_sayısı)) || ((kişi_sayısı <= 5) && araba_var && ehliyet_var) );
Okumayı kolaylaştırmak için
||
işlecinin ayrı bir satıra yazıldığına dikkat edin. Böylece sorudaki iki koşulu temiz bir şekilde iki ayrı satırda görebiliyoruz.