Skip to main content

Woche 4 - Bedingungen und Rekursion

Bisher haben wir in unseren Programmen gesehen, wie wir eine gegebene Sequenzen von Anweisungen nacheinander ausführen können. Damit wir nützliche Programme schreiben können, brauchen wir aber etwas mehr Flexibilität. Wir wollen nicht nur einzelne Schritte hintereinander ausführen, sondern auch, je nach Situation oder Benutzereingabe, unterschiedliche Dinge tun. Zudem möchten wir eine Anweisung beliebig oft wiederholen können, ohne dass wir den Befehl für jede Wiederholung explizit hinschreiben müssen. In dieser Woche lernen wir die Lösung für diese Probleme kennen:

  • Verzweigungen, erlauben uns Programmsequenzen in Abhängigkeit einer Bedingung auszuführen.
  • Rekursion ist ein Konzept, bei dem eine Methode sich selbst aufrufen kann. Wir werden sehen, dass wir damit das zweite Problem gut lösen können. In der darauffolgenden Woche werden wir dann noch eine etwas komfortablere Lösung dafür kennenlernen.

Theorie

Selbststudium

Bitte arbeiten Sie folgende Lerneinheiten vor den Präsenzveranstaltungen durch.

Literaturhinweise

Die oben beschriebenen Themen werden auch im Buch, Think-Java in Kapitel 5 (Conditionals and Logic) und Kapitel 8 (Recursive Methods) behandelt.

Präsenzveranstaltung Donnerstag

In der Präsenzveranstaltung werden wir die im Selbststudium erarbeiteten Konzepte anhand eines Jupyter-Notebooks vertiefen und praktisch anwenden. Insbesondere schauen wir uns an, wie wir mit Bedingungen und Rekursion allgemeinere Probleme lösen können.

Praxis

Präsenzveranstaltung Freitag

In dieser Veranstaltung gehen wir auf Feinheiten von Methoden ein. Wir besprechen die Sichtbarkeit von Variablen, wie wir Programme einfacher nachvollziehen können und lernen die Entwicklungsstrategie Test Driven Development kennen.

Übungen

Üben Sie die behandelten Themen ein, indem Sie das folgende Jupyter-Notebook bearbeiten:

Kernaussagen

  • Mittels Vergleichsoperatoren können wir Werte Vergleichen. Das Resultat ist ein Wahrheitswert.
  • Der Datentyp boolean kann die Wahrheitswerte True und False repräsentieren.
  • Wahrheitswerte können mittels logischer Operatoren zu komplexeren Ausdrücken verknüpft werden.
  • Mit einer if-else Anweisung können je nach Wahrheitswert einer Boolschen Variable, eine unterschiedliche Sequenz von Anweisungen durchgeführt werden.

Lernziele

Die Studierenden

  • können den Wahrheitswert eines (komplexen) logischen Ausdrucks bestimmen.
  • können den Programmfluss eines Programms mit if-else Anweisung angeben.
  • können einfache und verschachtelte if-else Anweisungen einsetzen.
  • können Rekursion einsetzen, um eine Methode beliebig oft zu wiederholen.