Webrelaunch 2020

Aktuelles und Programmbeispiele

Stand: 15. 2. 2007 / Semesterende

Stichworte zum Stoff der Vorlesung, Beispielprogramme und weitere Materialien zur Vorlesung Einstieg in die Informatik mit Java im Wintersemester 2006 des IANM2 werden hier im Laufe der Vorlesung bereitgestellt.

1. (Mo, 23. 10.) Einführung

  • Einführung
  • Ziel der Vorlesung
  • Hard- und Software
  • Organisation des Praktikums
  • Literaturangaben

2. (Di, 24. 10.) Vom Algorithmus zum Java-Programm

  • Kapitel 1: Einleitung, Algorithmen
  • Beschreibung eines Algorithmus durch Struktogramme
  • Umsetzung einfacher Anweisungen vom Struktogramm in Java
  • Aufbau eines Java-Programms Leer.java
  • Vorführung am Laptop

3. (Mo, 30. 10.) Installation, Grundelemente eines Java Programms

  • Übersetzung und Ausführung unter Windows
  • Beispiel: Sommerzeit.java
  • Übertragung nach Linux ohne Neu-Übersetzung
  • Installation von Java, Vorführung unter Windows
  • Einrichtung einer Umgebung für Windows mit Editor joe, siehe auch Installation
  • Beispiel: Prozentrechnung5.java
  • Kapitel 2: Grundelemente eines Java Programms

4. (Di, 31. 10.) Komponenten eines Java-Programms

  • Kapitel 3: Vordefinierte Datentypen:
    • byte, short, int long, char
    • float, double
    • boolean, usw.
  • Kapitel 4: Literalkonstanten
    • ganzzahlig
    • im Gleitkommaformat
  • Kapitel 5: Variablen und Konstanten
  • Kapitel 6: Ausdrücke
    • arithmetische Ausdrücke + - * / %
    • Zuweisungsoperator =
    • mathematische Standardfunktionen
    • String-Konkatenation mit +
    • Hinweis: Tabellen mit Operatoren, mathematischen Standardfunktionen usw. finden Sie auf der Homepage zur Vorlesung und unten auf dieser Seite
  • Kapitel 7: Anweisungen
    • Ausdrucksanweisung
    • Eingabe
    • Ausgabe
  • ein kleines Programm zum Nachrechnen Halloween.java

5. (Mo, 06. 11.) Ausdrücke, Bedingte Anweisungen

  • Hinweise zum Aufgabenblatt 2
  • Kapitel 6: Ausdrücke
    • Vergleiche
    • Inkrement- und Dekrementoperatoren
    • Kombinierte Zuweisungsoperatoren
  • Kapitel 7: Anweisungen
    • Leere Anweisung
    • Eingabe: Verwendung von Scanner
    • Ausgabe: Sonderfälle mit dem mehrdeutigen Operator +
    • Verbundanweisung
    • Bedingte Anweisung
    • Überblick zu Schleifen

6. (Di, 07. 11.) Schleifen

  • for-Schleife
  • while-Schleife
  • do-Schleife
  • Programmbeispiel: Reihen- und Parallelschaltung von Widerständen

7. (Mo, 13. 11.) Weitere Anweisungen

  • Wiederholung zu Schleifen
  • Äquivalenz von Schleifen
  • switch-Anweisung
  • break-Anweisung
  • continue-Anweisung
  • Beispiele am Laptop
    • ForDouble5.java for-Schleife mit double-Variable - gefährlich!
    • SinTab5.java for-Schleife: verwendet double-Werte, zählt aber mit int-Variable
    • PaschWuerfeln.java simuliert Würfel mit Zufallsgenerator; zählt in do-Schleife, wie lange es dauert bis Pasch gewürfelt wird
    • PaschZaehlen5.java führt in for-Schleife eine vorgegebene Anzahl an Experimenten durch und zählt dabei die gewürfelten Paschs

8. (Di, 14. 11.) Boolean Ausdrücke

9. (Mo, 20. 11.) Programmierstil, Beispiele zu Methoden

  • Hinweise zum Programmierstil
    • sinnvolles Einrücken
    • lesbare Variablennamen
    • Verwendung von symbolischen Konstanten statt mehrfach auftretender Literalkonstanten
    • Erläuterung wichtiger Programmteile durch Kommentare
    • lesbare Ausgabe, Eingabe mit einem "Prompt"-Text zur Erklärung
    • schrittweise Verbesserung des Programms Sternenhoelle5 aus der letzten Stunde zu Sternenhimmel5.java
  • weiteres Beispiel zum Programmierstil
    • IfProbleme.java zeigt mehrere bedingte Anweisungen, die vielleicht nicht das tun, was man auf den ersten Blick erwartet
  • Hinleitung zur Definition eigener Funktionen
    • HypFun5.java definiert eigene Funktionen am Beispiel der hyperbolischen Funktionen (diese sind erst ab Java 5 in Math enthalten, mussten also früher selbst definiert werden)
    • HypTab5.java verwendet die neu definierten hyperbolischen Funktionen aus HypFun5
  • Anleitungen zum Aufgabenblatt 4

10. (Di, 21. 11.) Methoden

11. (Mo, 27. 11.) Geltungsbereich von Variablen

  • Wiederholung zu Methoden
    • Definition einer Methode und formale Argumentenliste
    • Aufruf einer Methode und aktuelle Argumentenliste
  • Geltungsbereich von Variablen
    • Globale Klassenvariablen
    • Lokale Methodenvariablen
    • Lokale Schleifenvariablen
  • Anmerkungen zum Aufgabenblatt 5: numerische Integration, Substitutionsregel

12. (Di, 28. 11.) Überladen von Methoden, Eingabe aus Dateien

  • Überladen eine Methode
    • Unterscheidungsmerkmale: Anzahl, Typ und Position der formalen Argumente
    • Methodenaufruf einer überladenen Methode
  • Eingabedaten aus einer Datei mit der Scanner-Klasse.
  • Umleitung der Eingabe.
  • Umleitung der Ausgabe.
  • Beispiele
    • HelloUser.java liest zwei Zeilen mit Vorname und Nachname ein und gibt eine Begrüßung aus; erstellen Sie eine Datei input.txt mit diesen Daten und rufen Sie das Programm auf mit java HelloUser <input.txt
    • Monate.java liest Daten von einer Datei mittels Scanner
    • Monat.java liest Daten von zwei Scannern
    • monate.txt die zugehörige Datei mit Monatsnamen

13. (Mo, 04. 12.) Zeichenketten (Strings) und Rekursion

  • Strings
    • Variablen, Eingabe und Ausgabe
  • String-Verarbeitung
    • Methoden: charAt(), indexOf(), length(), toUpperCase(), toLowerCase(), replace(), substring()
    • Eine Zeichenkette zeichenweise durchlaufen.
  • Rekursion
    • Rekursionen abbrechen.
    • Rekursive Berechnung der Fakultätsfunktion.
    • Die Türme von Hanoi.
  • Beispiele:

14. (Di, 05. 12.)

Entfällt.

15. (Mo, 11. 12.) Felder

  • Vereinbarung von Feldern
  • Initialisierung von Feldern
  • Verwendung von Feldern

16. (Di, 12. 12.) Referenzen

  • Referenzen
    • Vektoren
    • Kopieren von Feldern
    • Übergabe von Feldern in Methoden
    • Mehrdimensionale Felder

17. (Mo, 18. 12.) Vektoren und Matrizen

  • Hinweise zu Aufgabenblatt 8
  • Vektoren
    • Darstellung von Vektoren in Java
    • Addition von Vektoren
    • Multiplikation von Vektoren, Skalarprodukt
  • Rechteckige Matrizen
    • Darstellung von Matrizen in Java
    • Addition von Matrizen
    • Multiplikation von Matrizen

18. (Di, 19. 12.) Klassen, Programmbeispiele

  • Klassen
    • Klassen als Datenstruktur mit unterschiedlichen Komponenten
    • Objektorientierte Programmierung
    • Vereinbarung und Arbeiten mit Klassen
    • Beispiel: Punkte in Klasse speichern und bearbeiten
  • Programbeispiele am Laptop
    • VektorRechnung5.java Einlesen, Ausgeben und arithmetische Operationen für Vektoren
    • MatExtend.java Erweitern einer bestehenden Matrix
    • WertRef.java ein Demobeispiel zu den Auswirkungen der Referenzsemantik bei der Parameterübergabe
    • WertRefStringInsel5.java ein ganz ähnliches Beispiel mit Strings (konstant) und StringBuffern (veränderlich) statt Feldern
    • Uns wurde ein codierter Text zugespielt: xmas.txcn; zum Glück haben wir das Programm zur Codierung ebenfalls entdeckt: XmasCode5.java, es verwendet offenbar Lauflängencodierung und Ascii-Grafik (siehe Stichworte "RLE" und "Ascii Art" in Google oder Wikipedia); können Sie den Code mit einem Decodierprogramm knacken?

19. (Mo, 8. 1.) Objektorientierte Programmierung, Klassen

  • Objektorientierte Programmierung
  • Klassen
    • Klassen als Datenstruktur mit unterschiedlichen Komponenten
    • Vereinbarung und Arbeiten mit Klassen
    • Konstruktoren
    • Beispiel Point: Punkte in Klasse speichern und bearbeiten
    • Beispiel Person, in Anlehnung an Aufgabe 22

20. (Di, 9. 1.) Klassen, Programmbeispiele

  • Hinweise zur Klausur
  • Hinweise zu Aufgabenblatt 9
  • Wiederholung zu Klassen am Beispiel Point
  • Referenzen und Klassen, zeitlicher Ablauf
  • Programbeispiele am Laptop

21. (Mo, 15. 1.) Klassen, Vererbung

  • Garbage Collection
    • Lebenszyklus von Klassen und Instanzen
    • automatisches Garbage Collection
    • Methode finalize
  • Überblick
    • Klassen- und Instanzvariablen
    • Klassen- und Instanzmethoden
  • Vererbung
    • Grundlagen
    • Zugriffsrechte
    • Verdeckte Variablen

22. (Di, 16. 1.) Vererbung, Polymorphie

  • Vererbung
    • Verdeckte Methoden
    • Polymorphie
    • Konstruktoren und Vererbung
  • Programbeispiel am Laptop: Haustier.java (Basisklasse Haustier, abgeleitete Klassen Hund und Katze)
    • Polymorphie bei Instanzmethoden
    • keine Polymorphie bei Klassenmethoden
    • keine Polymorphie bei Variablen

23. (Mo, 22. 1.) Wiederholung zu Vererbung

  • Wiederholung zum Thema Vererbung
  • Klassen und final
  • Vererbung und Zugriffsrechte
  • Probeklausur zum Thema "Iterative Gleichungs-System-Löser"

24. (Di, 23. 1.) Übungen zu Klassen und Vererbung

  • Hinweise zur Klausur und zu Aufgabenblatt 11
  • Programbeispiele am Laptop:

25. (Mo, 29. 1.) Rechnen mit Polynomen

  • Polynome, siehe Wikipedia
    • Definition
    • Addition / Subtraktion
    • Auswertung mit Horner-Schema
  • Beispiele am Laptop
    • Polynom.java ist eine Grundversion, bei der aber nicht geprüft wird ob der Leitkoeffizient ungleich Null ist
    • PolynomV.java ist eine davon abgeleitete Version, bei der dies geprüft wird

26. (Di, 30. 1.) Weiterführende Themen

  • Abstrakte Klassen
  • Interfaces / Schnittstellen
  • Exceptions / Ausnahmen
  • Programbeispiele am Laptop zu Threads:
    • PingPong.java zeigt den parallelen Ablauf von 2 Threads
    • Uhrzeit.java demonstriert einen zeitgesteuerten Ablauf eines Programms

27. (Mo, 5. 2.) Threads, Erweiterungen in Java 5

  • Arbeiten mit Threads
  • Programbeispiele am Laptop zu Threads:
    • UhrzeitApplet.java Applet zur Anzeige der Uhrzeit, Aufruf über Webseite UhrzeitApplet.html
    • Wecker.java zwei Schläfer und ein Wecker, der die beiden zufällig aufweckt
    • Ueberweisungen.java demonstriert Probleme beim unkontrollierten Zugriff mehrerer Threads auf die gleichen Daten; 9 Überweisungen pro Thread pro Sekunde
    • Ueberweisungen2.java ebenso, aber Überweisungen werden mit maximaler Geschwindigkeit ausgeführt
    • Ueberweisungen5.java verbesserte Version, bei der die Überweisungen synchronisiert werden; dadurch treten keine Unstimmigkeiten mehr auf
  • Programbeispiele am Laptop zu Java 5:
    • Eingabe
    • Ausgabe
    • Formel
    • for-Schleifen
    • Generische Programmierung
    • siehe Ordner java5

28. (Di, 6. 2.) Wiederholungen, Bemerkungen zur Klausur

29. (Mo, 12. 2.) Besprechung der Klausur, Applets

  • Lösung der Klausur
  • Besprechung zur Vorlesungsumfrage
  • Applets
    • Einführende Beispiele: Applets zur Mathematik von Walter Fendt
    • pdf-Datei zu Applets, ca. 143 kB (ohne Beispiele, die eingebetteten Links funktionieren also nicht)

30. (Di, 13. 2.) Beispiele zu Applets


Hinweise

  1. Sie dürfen diese Beispielprogramme (auf eigenes Risiko) kopieren, ausdrucken, ausführen, verändern, erweitern, usw. Eine Veröffentlichung der Programme, z.B. als Aufgabensammlung, ist dagegen nicht erlaubt.
  2. Manche Beispiele sind leider sehr hässlich eingerückt. Dies liegt an unterschiedlichen Einstellungen der Tabulatoren bei verschiedenen Editoren.