Zum Hauptinhalt springen

Woche 3: Weitere Kontrollstrukturen & Arrays

Nach dieser Woche können Sie …

  • switch-Verzweigungen benutzen, um Code abhängig von Variablenwerten auszuführen
  • abgekürzte arithmetische Ausdrücke benutzen, um Variablenwerte zu ändern
  • for-Schleifen benutzen, um Code abhängig von einer Bedingung zu wiederholen
  • die Anzahl übergebener Kommandozeilenargumente abfragen
  • return benutzen, um die main-Methode vorzeitig zu beenden
  • eindimensionale Arrays anlegen
  • eindimensionale Arrays in Berechnungen verwenden
  • for-(each-)Schleifen schreiben, um auf die Elemente eines Arrays zuzugreifen

Arrays bieten eine Möglichkeit, recht kompakt zusammenhängende Daten (beispielsweise Zahlen in einem Vektor oder in einer Matrix, Spielfelder eines Schachspiels, alle Studenten:innen der Informatik) im Arbeitsspeicher abzulegen und in Programmen zu verwenden. for-Schleifen werden oft im Zusammenhang mit Arrays gebraucht, um über die gespeicherten Daten zu iterieren (also jeden Datensatz durchzugehen). Dabei können dann z. B. Durchschnittsnoten bestimmt werden, das Maximum einer Messwertreihe oder (mit mehreren, verschachtelten Schleifen) das Produkt zweier Matrizen. Auch das args, mit dem wir seit der zweiten Vorlesung gearbeitet haben, ist ein Array.

Sie merken vielleicht schon: Arrays haben viele Einsatzzwecke. Wir werden uns später in der Vorlesung noch Listen anschauen: Diese haben ein paar Ähnlichkeiten zu Arrays, aber in der Verwendung noch eigene Vor- und Nachteile.

Literatur

Falls Sie die Themen dieser Woche nochmal in der Literatur nachlesen wollen, können Sie sich die Kapitel 2.5.4 (switch), 2.6.3 (for) und 4.1 bis 4.1.7, 4.2 und 4.4 (Arrays) in Java ist auch eine Insel ansehen.

Vorlesung

switch-Verzweigungen & for-Schleifen

Die Aufzeichnung von diesem Jahr hat ein paar kurze Aussetzer. Die Aufzeichnung von 21/22 ist vollständig. (Achtung: Die organisatorischen Infos am Anfang und am Ende unterscheiden sich!)

Arrays

Freiwillige Zusatzaufgabe

Schreiben Sie ein Programm, das das Integer-Array {6, 7, 4, 3} mithilfe einer for-each-Schleife ausgibt. Schreiben Sie dann das Programm um, sodass statt einer for-each-Schleife

  1. eine for-Schleife
  2. eine while-Schleife
  3. eine do-while Schleife

verwendet wird. Wie müsste das Array aussehen, sodass es mit der do-while-Schleife potentiell Probleme gibt?

Übungsaufgaben

Die Aufgaben ab dieser Woche geben Punkte für die Klausurzulassung. Falls Sie Fragen oder Probleme beim Bearbeiten oder Abgeben des Blatts haben, melden Sie sich bitte rechtzeitig im Forum, in Ihrer Übung oder im Tutorium oder buchen Sie eine Sprechstunde.

Das neue Übungsblatt für diese Woche finden Sie wieder in der Datensammlung „Übungsblätter“ im Ilias.

Übungsgruppen

In dieser Woche finden zum ersten Mal die Übungsgruppen statt. Dort werden kleinere Programmieraufgaben bearbeitet und besprochen. Dabei können Sie der Übungsgruppenleitung direkt Fragen stellen. Weitere Informationen zu den Übungsgruppen finden Sie in den organisatorischen Infos.

Hinweis zu Uni-Rechnern

Beachten Sie bei den Präsenz-Übungsgruppen, dass die auf den Uni-Rechnern gespeicherten Daten nach dem Abmelden gelöscht werden. Sichern Sie Ihre Daten am Ende der Übung z. B. in der Cloud (z. B. Sciebo), auf GitHub Classroom, oder schicken Sie sich Ihre Daten per Mail.

Die Folien der Übungsstunden gibt es auch im Ilias (unter dem Punkt Materialien aus den Übungsstunden). Dort finden Sie ab freitags auch einen Lösungsvorschlag zu den Präsenz-Programmieraufgaben. Wenn Sie nicht an den Übungsstunden teilnehmen, kann es trotzdem fürs Üben nützlich sein, wenn Sie sich die Folien und Aufgaben einmal angeschaut haben. Außerdem können Sie so vorab entscheiden, ob für Sie ein Besuch der Übung diese Woche nützlich wäre.

Tutorium

In dieser Woche findet zum ersten Mal das Tutorium statt. Dort können Sie Fragen zu den Übungsaufgaben der vergangenen Woche stellen und wir gehen gemeinsam die Lösung der Aufgaben so genau durch, wie Sie wollen – wir haben genug Zeit für all Ihre Fragen. Wenn Sie keine Fragen haben oder nur kurze Fragen, die sich auch via Forum klären ließen, ist ein Besuch des Tutoriums für Sie wahrscheinlich nicht lohnenswert. Einen Lösungsvorschlag zu den Übungsaufgaben finden Sie außerdem immer schon ab Montagmittag im Ilias.

Vergleich aller Schleifen-Arten

Bei den Selbsttests zu dieser Woche finden Sie eine Gegenüberstellung aller Schleifenarten, die es in Java gibt. Wenn Sie sich im Umgang mit den verschiedenen Schleifen noch nicht sicher fühlen, ist es wahrscheinlich hilfreich, wenn Sie sich den Text anschauen.

Berühmte Persönlichkeiten der Informatik

Die amerikanische Informatikerin Grace Hopper hat im 20. Jahrhundert gelebt und 1952 den ersten „Compiler“ (noch nicht ganz in der heutigen Bedeutung, aber es war eine Vorarbeit) A-0 entwickelt. Sie war der Überzeugung, dass es viel einfacher ist, wenn Menschen Code auf Englisch schreiben und ein Computer diesen Code in Maschinencode übersetzt, als wenn Menschen direkt Maschinencode schreiben – heute ist diese Erkenntnis in der Programmierung eine Selbstverständlichkeit. Sie hat die Programmiersprache FLOW-MATIC (B-O) mitentwickelt, die später die Basis der heute noch zum Teil eingesetzten Sprache COBOL ist.

Im Zusammenhang mit Grace Hopper wird oft die Geschichte des ersten Bugs (= Fehler in einem Computerprogramm) erzählt: Eine Motte wurde in einem Relais gefunden, die dadurch Fehler im Computer verursacht hat. Der Begriff Bug wurde aber auch schon vorher im Ingenieurswesen verwendet, um Fehlfunktionen zu bezeichnen. Mit Debugging bezeichnet man das systematische Beheben von (Software-)Fehlern.

todo todo