DCV 2024 03/Strukturierte Programmierung Uebungen/Logische Operatoren: Unterschied zwischen den Versionen
Drlue (Diskussion | Beiträge) |
Drlue (Diskussion | Beiträge) |
||
| Zeile 32: | Zeile 32: | ||
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 === | ||
Version vom 29. Februar 2024, 07:42 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;
}
if(value > 3) {
if(value % 2 == 0) {
return true;
}
}
return false;
}
//Solution 3: if then else, without nesting
public static boolean isBiggerThanThreeAndEvenOrEleven1(int value) {
if(value == 11) {
return true;
}
if(value <= 3) {
return false;
}
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: Positive 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? !
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: ein Schaltjahr
Beispiel: Aufgabe 7
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 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: Liegt genau in der Mitte zwischen lowerLimit und upperLimit