DCV 2024 03/Strukturierte Programmierung Uebungen/Logische Operatoren: Unterschied zwischen den Versionen
Drlue (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
|||
| (12 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
| Zeile 10: | Zeile 10: | ||
int randomNumber = random.nextInt(-100, 101); | int randomNumber = random.nextInt(-100, 101); | ||
}} | }} | ||
=== Wahrheitstabelle === | |||
{| class="wikitable" | {| class="wikitable" | ||
| Zeile 25: | Zeile 28: | ||
|} | |} | ||
=== Operator Präzedenz === | |||
Folgende Auflistung zeigt in welcher Reihenfolge Ausdrücke ausgewertet werden: | Folgende Auflistung zeigt in welcher Reihenfolge Ausdrücke ausgewertet werden: | ||
* Klammern () | * Klammern () | ||
* Postfix-Operatoren (z. B. i++, i--) | * Postfix-Operatoren (z.B.: i++, i--) | ||
* Präfix-Operatoren (z. B. ++i, --i, -i) | * Präfix-Operatoren (z.B.: ++i, --i, -i, !) | ||
* Multiplikation, Division, Modulo (%) | * Multiplikation, Division, Modulo (%) | ||
* Addition, Subtraktion | * Addition, Subtraktion | ||
* Relationale Operatoren (z. B. <, >, <=, >=) | * Relationale Operatoren (z.B.: <, >, <=, >=) | ||
* Gleichheitsoperatoren (==, !=) | * Gleichheitsoperatoren (==, !=) | ||
* Logisches "und" (&&) | * Logisches "und" (&&) | ||
* Logisches "oder" (||) | * Logisches "oder" (||) | ||
* Zuweisungsoperatoren (z. B. =, +=, -=) | * Zuweisungsoperatoren (z.B.:, =, +=, -=) | ||
=== Beispiel: Aufgabe 0 === | === Beispiel: Aufgabe 0 === | ||
| Zeile 60: | Zeile 64: | ||
if(value == 11) { | if(value == 11) { | ||
return true; | return true; | ||
} | } else if(value > 3) { | ||
if(value % 2 == 0) { | if(value % 2 == 0) { | ||
return true; | return true; | ||
} | } | ||
return false; | |||
} else { | |||
return false; | |||
} | } | ||
} | } | ||
| Zeile 73: | Zeile 78: | ||
if(value == 11) { | if(value == 11) { | ||
return true; | return true; | ||
} | } else if(value <= 3) { | ||
return false; | return false; | ||
} | } else { | ||
return value % 2; | |||
} | |||
} | } | ||
}} | }} | ||
| Zeile 91: | Zeile 96: | ||
=== Beispiel: Aufgabe 3 === | === Beispiel: Aufgabe 3 === | ||
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt {{JSL|true}} zurück, wenn folgende Bedingung für die Zahl gilt: | Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt {{JSL|true}} zurück, wenn folgende Bedingung für die Zahl gilt: | ||
Die Zahl ist: | Die Zahl ist: Positiv und ungerade | ||
=== Beispiel: Aufgabe 4 === | === Beispiel: Aufgabe 4 === | ||
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt {{JSL|true}} zurück, wenn folgende Bedingung für die Zahl gilt: | Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt {{JSL|true}} zurück, wenn folgende Bedingung für die Zahl gilt: | ||
Die Zahl ist: | Die Zahl ist: Kleiner als 0 aber nicht -1 | ||
=== Beispiel: Aufgabe 5 === | === Beispiel: Aufgabe 5 === | ||
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt {{JSL|true}} zurück, wenn folgende Bedingung für die Zahl gilt: | Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt {{JSL|true}} zurück, wenn folgende Bedingung für die Zahl gilt: | ||
Die Zahl ist: | Die Zahl ist: Ist größer gleich 5 und kleiner gleich 100 | ||
Kann hier auf eine der vorhergehenden Aufgaben zurückgegriffen werden? {{JSL|!}} '''Negation''' | |||
=== Beispiel: Aufgabe 6 === | === Beispiel: Aufgabe 6 === | ||
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt {{JSL|true}} zurück, wenn folgende Bedingung für die Zahl gilt: | |||
Die Zahl ist: Ohne Rest durch 3 oder 16 Teilbar, aber nicht durch 32 | |||
=== Beispiel: Aufgabe 7 === | |||
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt {{JSL|true}} zurück, wenn folgende Bedingung für die Zahl gilt: | Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt {{JSL|true}} zurück, wenn folgende Bedingung für die Zahl gilt: | ||
Die Zahl ist: ein Schaltjahr | Die Zahl ist: ein Schaltjahr | ||
=== Beispiel: Aufgabe 8 === | |||
Erstelle eine Methode, welche drei Ganzzahlen als Parameter ('''lowerLimit''', '''upperLimit''' und '''value''') nimmt. Diese Methode gibt {{JSL|true}} zurück, wenn folgende Bedingung für den Parameter '''value''' gilt: | |||
Die Zahl ist: Größer gleich '''lowerLimit''' und kleiner gleich '''upperLimit''' | |||
=== Beispiel: Aufgabe 9 === | |||
Erstelle eine Methode, welche drei Ganzzahlen als Parameter ('''lowerLimit''', '''upperLimit''' und '''value''') nimmt. Diese Methode gibt {{JSL|true}} zurück, wenn folgende Bedingung für den Parameter '''value''' gilt: | |||
Die Zahl ist: Liegt genau in der Mitte zwischen '''lowerLimit''' und '''upperLimit''' | |||
Aktuelle Version vom 29. Februar 2024, 13:59 Uhr
Im folgenden sollen Logische Operatoren, Kontrollstrukturen und der Datentyp boolean geübt werden.
Folgende Aufgaben sollen in jeweils zwei Varianten gelöst werden. * Die Auswertung erfolgt durch verknüpfung von logischen Operatoren * Die Auswertung erfolgt mittels if then else
Teste deine Lösungen ausgiebig!
Random random = new Random();
//Random number between 100 and 100
int randomNumber = random.nextInt(-100, 101);
Wahrheitstabelle
| Eingabe A | Eingabe B | A AND B | A OR B |
|---|---|---|---|
| true | true | true | true |
| true | false | false | true |
| false | true | false | true |
| false | false | false | false |
Operator Präzedenz
Folgende Auflistung zeigt in welcher Reihenfolge Ausdrücke ausgewertet werden:
- Klammern ()
- Postfix-Operatoren (z.B.: i++, i--)
- Präfix-Operatoren (z.B.: ++i, --i, -i, !)
- Multiplikation, Division, Modulo (%)
- Addition, Subtraktion
- Relationale Operatoren (z.B.: <, >, <=, >=)
- Gleichheitsoperatoren (==, !=)
- Logisches "und" (&&)
- Logisches "oder" (||)
- Zuweisungsoperatoren (z.B.:, =, +=, -=)
Beispiel: Aufgabe 0
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt true zurück, wenn folgende Bedingung für die Zahl gilt:
Die Zahl ist: Größer als 3 und eine gerade Zahl oder 11
Aufruf:
isBiggerThanThreeAndEvenOrEleven(10);
Ausgabe:
true
//Solution 1: Connecting logical operators
public static boolean isBiggerThanThreeAndEvenOrEleven1(int value) {
return value > 3 && value % 2 == 0 || 11;
}
//Solution 2: if then else
public static boolean isBiggerThanThreeAndEvenOrEleven1(int value) {
if(value == 11) {
return true;
} else if(value > 3) {
if(value % 2 == 0) {
return true;
}
return false;
} else {
return false;
}
}
//Solution 3: if then else, without nesting
public static boolean isBiggerThanThreeAndEvenOrEleven1(int value) {
if(value == 11) {
return true;
} else if(value <= 3) {
return false;
} else {
return value % 2;
}
}
Beispiel: Aufgabe 1
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt true zurück, wenn folgende Bedingung für die Zahl gilt:
Die Zahl ist: Ist gerade und größer als 10
Beispiel: Aufgabe 2
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt true zurück, wenn folgende Bedingung für die Zahl gilt:
Die Zahl ist: Ist kleiner als 5 oder größer als 100
Beispiel: Aufgabe 3
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt true zurück, wenn folgende Bedingung für die Zahl gilt:
Die Zahl ist: Positiv und ungerade
Beispiel: Aufgabe 4
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt true zurück, wenn folgende Bedingung für die Zahl gilt:
Die Zahl ist: Kleiner als 0 aber nicht -1
Beispiel: Aufgabe 5
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt true zurück, wenn folgende Bedingung für die Zahl gilt:
Die Zahl ist: Ist größer gleich 5 und kleiner gleich 100
Kann hier auf eine der vorhergehenden Aufgaben zurückgegriffen werden? ! Negation
Beispiel: Aufgabe 6
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt true zurück, wenn folgende Bedingung für die Zahl gilt:
Die Zahl ist: Ohne Rest durch 3 oder 16 Teilbar, aber nicht durch 32
Beispiel: Aufgabe 7
Erstelle eine Methode, welche eine Ganzzahl als Parameter nimmt. Diese Methode gibt true zurück, wenn folgende Bedingung für die Zahl gilt:
Die Zahl ist: ein Schaltjahr
Beispiel: Aufgabe 8
Erstelle eine Methode, welche drei Ganzzahlen als Parameter (lowerLimit, upperLimit und value) nimmt. Diese Methode gibt true zurück, wenn folgende Bedingung für den Parameter value gilt:
Die Zahl ist: Größer gleich lowerLimit und kleiner gleich upperLimit
Beispiel: Aufgabe 9
Erstelle eine Methode, welche drei Ganzzahlen als Parameter (lowerLimit, upperLimit und value) nimmt. Diese Methode gibt true zurück, wenn folgende Bedingung für den Parameter value gilt:
Die Zahl ist: Liegt genau in der Mitte zwischen lowerLimit und upperLimit