Mantıksal İfadeler Çözümleri
- 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< 20ile kullanır.10 < sayıgibi bir mantıksal ifadenin sonucunun da yafalseya datrueolduğunu biliyoruz.- "Alt sınırdan büyüktür ve üst sınırdan küçüktür" mantıksal ifadesini şöyle kurarız:
- "Yeterince bisiklet var" ifadesini
kişi_sayısı <= bisiklet_sayısıveyabisiklet_sayısı >= kişi_sayısıolarak yazabiliriz. Bunun dışındakiler aynen sorudaki gibi yazılabilirler:
false ve true 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 ya 0 < 20 ya da 1 < 20 haline gelir ve ikisinin sonucu da her zaman için true'dur.
writeln("Arasında: ", (sayı > 10) && (sayı < 20));
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.