DCV 2024 03/Strukturierte Programmierung Uebungen/Logische Operatoren: Unterschied zwischen den Versionen

Aus CCWiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(10 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 ===
=== Wahrheitstabelle ===
Zeile 31: 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 ===
Zeile 64: Zeile 64:
     if(value == 11) {
     if(value == 11) {
         return true;
         return true;
     }
     } else if(value > 3) {
    if(value > 3) {
         if(value % 2 == 0) {
         if(value % 2 == 0) {
             return true;
             return true;
         }
         }  
        return false;
    } else {
        return false;
     }
     }
    return false;
}
}


Zeile 77: Zeile 78:
     if(value == 11) {
     if(value == 11) {
         return true;
         return true;
     }
     } else if(value <= 3) {
    if(value <= 3) {
         return false;
         return false;
     }
     } else {
    return value % 2;  
        return value % 2;
    }
}
}
}}
}}
Zeile 95: 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: Ist größer gleich 5 und kleiner gleich 100
  Die Zahl ist: Positiv und ungerade
Kann hier auf eine der vorhergehenden Aufgaben zurückgegriffen werden? {{JSL|!}}


=== 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: Positive und ungerade
  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: Kleiner als 0 aber nicht -1
  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

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;
    } 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