Quadros Islas Philippinen
1 Ab in den Süden
Schaltkreis mit Pull-Up-Widerstand

Möchtest Du auf die Philippinen fliegen, Ja oder Nein? Willst Du Fluginformationen per SMS, Ja oder Nein? Manche Entscheidungen im Leben sind einfach, manche bedeutungsvoll. Schreibe verschie­dene Entscheidungen auf und markiere diejenigen, welche mit einer Ja-Nein-Entscheidung zu treffen sind. Kann man die anderen Entscheidungen auch auf eine Ja-Nein-Entscheidung zurückführen?

In einem Bewerbungsgespräch wirst Du gefragt, ob Du eher Anführer oder Ausführer bist. Viele glauben nun mit "Anführer" antworten zu müssen, aber besser wäre vielleicht eine dritte Variante in welcher man erklärt, wann man ein Anführer ist und wann eben nicht.

In der Programmierung ist es einfacher. Es gibt nur Entscheidungen die mit Ja oder Nein zu beantworten sind. Das ermöglicht überhaupt erst die notwendige Struktur.

2 Entscheidungen in Java
Struktogramm Entscheidung

Eine Entscheidung beginnt mit der Prüfung einer Bedingung. Falls die Bedingung erfüllt ist, wird der Ja-Zweig abgearbeitet, falls nicht der Nein-Zweig.

In der Programmiersprache Java wird dies folgendermaßen programmiert:
if(auswahl == 'j')
{   kostensms = 2.90;
}
else
{   kostensms = 0;
}

Hinweis: Option 2 muss es nicht geben.

3 Vergleichs­operatoren

  < kleiner als
  > größer als

 <= kleiner gleich
 >= größer gleich

 != ungleich
 == genau gleich

Zur Formulierung von Vergleichen benötigt man Vergleichsoperatoren. Das Ergebnis eines Vergleichs (z.B. x > y) lautet entweder ja oder nein, bzw. wahr (true) oder falsch (false). Intern stellt Java den Wahrheitswert mit dem Datentyp boolean durch den Wert true und false dar. In der Programmiersprache C werden bspw. alle Zahlenwert die ungleich 0 sind als wahr interpretiert. Alle möglichen Vergleichs­operatoren werden in der Grafik gezeigt.

Wichtig: Verwechsele den Vergleichsoperator == nicht mit der Zuweisung =.

Bedingung: x == 0

Zuweisung: x = 1

4 Logische Operatoren

  ! nicht

 && und

 || oder

Logische Operatoren können mehrere Vergleiche miteinander verknüpfen.
Beispiel: „Wenn Entschädigung und Flugdatenänderung per SMS gewünscht wird, betragen die Kosten 11,90 EUR.“

if(sms == true && entsch == true) kosten = 11.9;

Dabei hat der nicht-Operator den höchsten Vorrang, gefolgt von dem und-Operator. Der oder-Operator hat den niedrigsten Vorrang. Falls eine andere Gewichtung gewünscht ist kann man dies durch Klammersetzung erreichen.

5 Verschachtelte Entscheidungen

if(versicherung == true)
{   if(ruecktritt == true){
      kosten = 15;
    }
    if(gepaeck == true){
      kosten = 3;
    }
}

Auch eine verschachtelte Entscheidung ist möglich. Hierbei wird mindestens ein Anweisungsblock durch eine weiter Entscheidung ergänzt.

Dies ist bei mehrstufigen Entscheidungen sinnvoll. Möchte der Kunde bspw. eine Versicherung buchen, kann anschließend nach Reise­rücktritts­versicherung und nach einer Gepäck­versicherung gefragt werden.

Ideen:
A. M. Maier, G. Kompa, Elektronikschule Tettnang
E. Fuchst, "Java 9 Grundlagen Program­mierung, Herdt Verlag, 2017



Aufgabe 1 Pineingabe

Autoren: G. Kompa, D. Supper

Smartphone Pineingabe
  1. Erstelle die Klasse Pineingabe welche den Anwender auffordert eine 4stellige Pin einzugeben. Anschließend überprüfen sie den eingegebenen PIN und geben dem Benutzer eine Rückmeldung, ob der PIN richtig oder falsch ist.
  2. Prüfe zuerst, ob die eingegebene Zahl zu groß oder zu klein ist und ermögliche dem Benutzer eine erneute Eingabe.

Aufgabe 2 Der Südsee-Urlaub

Autoren: D. Supper | binnendifferenziert

  1. Erstelle ein Struktogramm für die Klasse Suedseeurlaub welche den Anwender für einen 600 EUR teuren Flug verschiedene Optionen abfragt: eine SMS-Benachrichtigung kostet 2,95 EUR, eine Reise­rücktritts­versicherung 32 EUR und eine Gepäck­versicherung 13 EUR. Ausgegeben wird der Gesamtpreis. Notiere die Zeitdauer.
  2. Programmiere die Klasse Suedseeurlaub. Erstelle hierzu ein neues Projekt 02-Entscheidungen.

    Zum Auswerten einer j/n-Abfrage benötigt man folgende Syntax:


    import java.util.Scanner;
    public class Suedseeurlaub{
       public static void main(String[] args){
          String auswahl;
          Scanner keyboard = new Scanner(System.in);
          System.out.print("Versicherung (j/n): ");
          auswahl = keyboard.next();
          if(auswahl.charAt(0) == 'j'){
            ...
          }

       }
    }

    Statt if(auswahl.charat(0) == 'j') kann man auch die Syntaxif(eingabe.matches("j")) verwenden. Dies liegt daran, dass die Methode den Vergleich durchführt und direkt true oder false zwischen die Klammern schreibt.


  3. Alternativ wird das Rundum-Sorglos-Paket für 44 EUR angeboten, welches SMS-Benachrichtigung, eine Reise­rücktritts­versicherung und eine Gepäck­versicherung beinhaltet.

    Programmiere eine verschachtelte Entscheidung.


  4. Sollte der Gesamtpreis über 700 EUR liegen beträgt der Rabatt 10 % und ist der Kunde Stammkunde erhält er weitere 5 % Rabatt.
Coron auf den Philippinen

Aufgabe 3 Logische Verknüpfungen

Autoren: D. Supper | binnendifferenziert

In dieser Aufgabe wird das Arbeiten mit logischen Verknüpfungen trainiert.

logische Operatoren
  1. Schreibe die Klasse LogischeVerknuepfung. Dabei sollen zwei ganze Zahlen x, y, deren Summe maximal 100 ist, eingelesen und deren Werte ausgegeben werden.
  2. Ist die Summe der Zahlen größer 100 gibt es 0 Punkte, kleiner 100 20 Punkte.
  3. Sind beide Zahlen jeweils gerade gibt es 40 Punkte.
  4. Ist die Summe der Zahlen kleiner als 50 und eine Zahl ungerade gibt es 70 Punkte.
  5. Für Profis : Ist die Summe der beiden Zahlen eine Primzahl (nur Primzahlen bis 100) gibt es 100 Punkte.

Entspann dich erst mal ...

Ein Informatiker und seine Frau sitzen beim Frühstück: Sie: "Du Mausi, wir haben kein Brot mehr. Könntest du bitte zum Bäcker gehen und eins holen? Und falls sie Eier haben, bring 10 Stück mit."

Als er wieder zurück kommt hat er 10 Brote dabei. Sagt sie: "Warum nur hast du 10 Brote gekauft?" Er: "Sie hatten Eier."

Aufgabe 4 Bedingungen mit Variablen

Variablen werden sehr häufig in Bedingungen verwendet: Finde alle Aussagen herraus die wahr sind.

Die Bedingungen können in einer Testklasse Bedingungen verifiziert werden, indem bei einem wahren Ausdruck "Okay" am Monitor ausgegeben wird.

  1. int v = 10, w = 100;
    if(v!=0 || v>w || w-v==90)

  2. int a = 10, b = 100;
    if(a!=0 && !(a<9) || b-a==89)

  3. int n = 1, m = 17;
    if(n>0 && m>0 || n>m && m!=17)

  1. double x = 2.5, y = 1.0;
    if(x>2.4 && y<=1.1)

  2. int s1 = 10, s2 = -2;
    if(s1!=0 && !(s2<9) || s2==89)

  3. boolean k=true; int x2=-2;
    if(k && !(x2>2) || !k)

  1. true
  2. true
  3. true
  4. true
  5. false
  6. true

Aufgabe 5 Schaltjahre

Autoren: G. Kompa, D. Supper

Uhr im Einkaufszentrum

In unserem Kalender sind zum Ausgleich der Jahreslänge in regelmäßigen Abständen Schaltjahre eingebaut. Ein astronomisches Jahr hat dabei 365,24219 Kalendertage. Zur exakten Festlegung der Schaltjahre dienen folgende Regeln:

  • Ist die Jahreszahl durch 4 teilbar, so ist das Jahr ein Schaltjahr. Diese Regel hat allerdings eine Ausnahme:
  • Ist die Jahreszahl durch 100 teilbar, so ist das Jahr kein Schaltjahr. Diese Regel hat allerdings wiederum eine Ausnahme:
  • Ist die Jahreszahl durch 400 teilbar, so ist das Jahr doch ein Schaltjahr.

Erstellen Sie die Klasse Schaltjahre, das berechnet, ob eine vom Benutzer eingegebene Jahreszahl ein Schaltjahr ist oder nicht.


Wortliste und Satzbausteine



die Ent­schei­dung, -en zu jeder Entschei­dung gehört eine Bedingungs­prüfung if(..). Ist die Bedingung wahr wird der erste Anweisungsblock nach if(..){ } abgearbeitet, falls nicht der zweite Anweisungsblock nach else{ }.
die Beding­ung, -en die Bedingung wird mit Hilfe von Vergleichsoperatoren geprüft und ergibt den Wert true oder false
der Ver­gleichs­operator, -en Vergleichsoperatoren sind:   < kleiner als,   > größer als,  <= kleiner gleich,  >= größer gleich,  != ungleich,  == genau gleich
der lo­gi­sche Operator, -en logische Operatoren dienen zum verknüpfen mehrer Bedingungen:   ! nicht,  && und,  || oder
ver­schachteln Entscheidungen können verschachtelt werden. Das ist dann sinvoll wenn die zweite Entscheidung von der ersten abhängig ist.
© mylime.info