Logische Operatoren Teil 3
Teil des Abschnitts Grundlagen der C++-Journey von Coddy. Lektion 26 von 74.
Bei der Prüfung mehrerer Bedingungen hört der Computer mit der Prüfung auf, sobald er die endgültige Antwort kennt (das nennt man Kurzschlussauswertung).
Zum Beispiel:
int x = 0;
int y = 5;
bool result = x != 0 && y / x > 2;Hier ist x gleich 0, daher wird y / x > 2 nicht ausgewertet. Wenn wir die Reihenfolge umkehren würden:
bool result = y / x > 2 && x != 0;Dies führt zu einem Fehler, weil y durch 0 geteilt wird, was in der Mathematik nicht zulässig ist.
Diese Technik wird verwendet, um die Auswertung logischer Ausdrücke zu optimieren. Zum Beispiel:
int a = 0;
int b = 2;
int c = 3;
int d = 5;
bool result = (a > 0 && b < 2) || (c < -5 && d < 10);In diesem Beispiel werden b < 2 und d < 10 nicht ausgewertet, weil a > 0 und c < -5 beide falsch sind.
Aufgabe
AnfängerErstelle ein Programm, das entscheidet, ob es ein guter Tag für die Energieerzeugung mit Solarmodulen ist
Initialisiere diese Variablen:
isSunnymit dem Wert truewindSpeedmit dem Wert 5.4temperaturemit dem Wert 23solarPanelOutputmit dem Wert 9isCloudymit dem Wert false
Erstelle einen logischen Ausdruck, der ALLE diese Bedingungen prüft:
- Es ist sonnig
- Die Windgeschwindigkeit ist kleiner als 10
- Die Leistung des Solarmoduls ist kleiner als 15
- Die Temperatur liegt über 20 ODER es gibt KEINE Wolken
Probier es selbst
#include <iostream>
int main() {
// Variablen initialisieren
// Ersetze jeden Platzhalterwert unten durch den in der Aufgabe geforderten Wert
bool isSunny = false;
double windSpeed = 0.0;
int temperature = 0;
int solarPanelOutput = 0;
bool isCloudy = false;
// Der vollständige logische Ausdruck
// Ersetze den Platzhalter unten durch einen Ausdruck, der alle vier Bedingungen verknüpft
bool result = false;
// Ergebnisse ausgeben
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;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorInkrement/DekrementPost-Inkrement/DekrementArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Eingabe/Ausgabe Grundlagen
cout-Anweisungcin-AnweisungString-EingabeWiederholung - Bis 120Wiederholung - Wahr oder Falsch5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung - Einfache LogikLogische Operatoren Teil 33Variablen Teil 2
TypdeklarationNamenskonventionenWiederholung – Variablen initialisierenType Casting Teil 1Type Casting Teil 26Entscheidungsfindung
If-AnweisungIf - ElseSwitch-AnweisungBedingter OperatorWiederholung - If ElseVerschachtelte If - ElseÜbe selbstständig: Online-C++-Compiler