DCV 2024 03/Strukturierte Programmierung Uebungen/Logische Operatoren

Aus CCWiki
Zur Navigation springen Zur Suche springen

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

Wahrheitstabelle für logische Operatoren
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: Ist größer gleich 5 und kleiner gleich 100

Kann hier auf eine der vorhergehenden Aufgaben zurückgegriffen werden? !

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: Positive und ungerade

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: Kleiner als 0 aber nicht -1

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