Objektorientierte Programmierung: 4. Übung

Besprechung des Programmiertestats

  1. Was waren die Schwierigkeiten?
  2. Hinweis: In der Vorlesung wurde der Primzahltest vorgestellt, der im Prinzip einem ähnlichen Muster entsprochen hat. (Aufgabe auf Folie 91/92 in Kapitel 2).
  3. Nächste Woche gibt es schon das nächste Programmiertestat. Gibt es Fragen dazu? Wünsche?

Wiederholungsfragen zu Kapitel 3: Syntaxdiagramme

  1. Was sind die Komponenten eines Syntaxdiagramms?
  2. Was ist der Unterschied zwischen einem Rechteck-Knoten und einem ovalen/kreisförmigen Knoten?
  3. Wie kann man ein Wort der formalen Sprache erzeugen, die durch das Diagramm definiert wird?
  4. Wie kann man mit einem Syntaxdiagramm prüfen, ob eine Zeichenfolge ein korrektes Programm ist?
  5. Zeichnen Sie ein Syntaxdiagramm "Binärzahl", mit dem eine beliebige Folge von "0" und "1" erzeugt wird, also z.B. "0110". Die Folgen sollen nicht leer sein (das leere Wort soll also nicht zur definierten Sprache geh"oren).
  6. Zeichnen Sie jetzt ein Syntaxdiagramm "Binärzahl-Liste", dessen Sprache zuerst eine Klammer auf "(" enhält, dann ein oder mehr Bin"arzahlen, getrennt durch Kommata ",", und dann eine Klammer zu ")". Ein Wort der definierten Sprache wäre also "(1001,001)".

Wiederholungsfragen zu Kapitel 4: Lexikalische Syntax

  1. Warum ist es nützlich, die Syntax einer Programmiersprache zweistufig zu definieren: Zuerst den Aufbau von Wortsymbolen (Token) aus einzelnen Zeichen, und dann den Aufbau von Programmen aus Wortsymbolen?
  2. Wie kann man beliebige Unicode Zeichen in ein Programm einfügen, wenn die Datei selbst in ASCII codiert ist?
  3. Was sind die beiden Arten, wie man Kommentare in Java schreiben kann?
  4. Was bedeutet es, ein Stück Programmcode "auszukommentieren"? In welchen Situationen ist das hilfreich?
  5. Was sind Bezeichner ("Identifier")? Wie sind sie aufgebaut und wofür werden sie verwendet?
  6. Ist Groß- und Kleinschreibung in Java wichtig?
  7. Was sind Schlüsselworte? Geben Sie einige Beispiele.
  8. Was sind die beiden Konstanten/Literale des Datentyps "boolean"?
  9. Wie sind die Konstanten/Literale des Datentyps "int" aufgebaut?
  10. Was passiert, wenn man eine Zahlkonstante mit führenden Nullen schreibt?
  11. Wie sind Konstanten/Literale des Datentyps "double" aufgebaut?
  12. Wie werden Konstanten/Literale des Datentyps "char" geschrieben? Und wie Konstanten/Literale des Datentyps "String"?
  13. Wie kann man das Begrenzungszeichen in Konstanten/Literale der Datentypen "char" und "String" bekommen?
  14. An welche anderen "Escapesequenzen" erinnern Sie sich?

Besprechung der Hausaufgaben

  1. Korrekte Lösungen zeigen, ggf. verschiedene Alternativen.
  2. Schwierigkeiten besprechen.
  3. Fragen beantworten.

Programmieraufgabe mit YAPEX

  1. Zahlenraten