Mantıksal Operatörler Bölüm 3
Coddy'nin C++ Journey'sinin Temeller bölümünün bir parçası. Ders 26 / 74.
Birden fazla koşulu kontrol ederken bilgisayar, nihai cevabı öğrenir öğrenmez kontrol etmeyi bırakır (Buna kısa devre değerlendirmesi denir).
Örneğin:
int x = 0;
int y = 5;
bool result = x != 0 && y / x > 2;Burada x, 0 değerine eşittir; bu nedenle y / x > 2 ifadesini değerlendirmez. Sırayı tersine çevirseydik:
bool result = y / x > 2 && x != 0;Bu, y değerinin matematikte geçersiz olan 0'a bölünmesi nedeniyle bir hatayla sonuçlanacaktır.
Bu teknik, mantıksal ifadelerin değerlendirilmesini optimize etmek için kullanılır. Örneğin:
int a = 0;
int b = 2;
int c = 3;
int d = 5;
bool result = (a > 0 && b < 2) || (c < -5 && d < 10);Bu örnekte, b < 2 ve d < 10 değerlendirilmeyecektir çünkü a > 0 ve c < -5 ifadelerinin ikisi de yanlıştır.
Görev
BaşlangıçGüneş paneli enerji üretimi için iyi bir gün olup olmadığına karar veren bir program oluşturun
Bu değişkenleri başlatın:
isSunnydeğerini true olarak ayarlayınwindSpeeddeğerini 5.4 olarak ayarlayıntemperaturedeğerini 23 olarak ayarlayınsolarPanelOutputdeğerini 9 olarak ayarlayınisCloudydeğerini false olarak ayarlayın
Bu koşulların TÜMÜNÜ kontrol eden tek bir mantıksal ifade oluşturun:
- Hava güneşli
- Rüzgâr hızı 10'dan az
- Güneş paneli çıktısı 15'ten az
- Sıcaklık 20'nin üzerinde VEYA HİÇ bulut yok
Kendin dene
#include <iostream>
int main() {
// Değişkenleri başlat
// Aşağıdaki her yer tutucu değeri, görevin istediği değerle değiştirin
bool isSunny = false;
double windSpeed = 0.0;
int temperature = 0;
int solarPanelOutput = 0;
bool isCloudy = false;
// Tam mantıksal ifade
// Aşağıdaki yer tutucuyu, dört koşulu birleştiren tek bir ifadeyle değiştirin
bool result = false;
// Sonuçları yazdır
std::cout << "1. Is it sunny? " << std::boolalpha << isSunny << std::endl;
std::cout << "2. Is wind speed safe? " << (windSpeed < 10) << std::endl;
std::cout << "3. Do panels produce less? " << (solarPanelOutput < 15) << std::endl;
std::cout << "4. Is temperature good OR no clouds? " << (temperature > 20 || !isCloudy) << std::endl;
std::cout << "5. Final result: " << result << std::endl;
return 0;
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüArtırma/AzaltmaSonradan Artırma/AzaltmaAritmetik KısayollarKarşılaştırma OperatörleriString Karşılaştırma7Giriş/Çıkış Temelleri
cout İfadesicin İfadesiString GirdisiÖzet - 120'ye KadarÖzet - Doğru veya Yanlış5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Kendi başına pratik yap: Online C++ derleyicisi