Übungen zur Lehrveranstaltung

"Programmierkurs Java"

WS 2000/2001

FB Informatik

D. Boles

Übungsblatt 2

Ausgabe: 25.10.2000

Aufgabe 5 (Syntaxdiagramme): 25 Punkte

Gegeben sei folgende EBNF für Gleitkomma-Literale in Java:

<FloatPointLit> ::= <Digits> "." [<Digits>] [<ExpPart>] [<FloatTypeSuffix>]

| "." <Digits> [<ExpPart>] [<FloatTypeSuffix>]

| <Digits> <ExpPart> [<FloatTypeSuffix>]

| <Digits> [<ExpPart>] <FloatTypeSuffix>

<Digits> ::= Digit {Digits}

<Digit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

<ExpPart> ::= <ExpIndicator> <SignedInteger>

<ExpIndicator> ::= "e" | "E"

<SignedInteger> ::= [<Sign>] <Digits>

<Sign> ::= "+" | "-"

<FloatTypeSuffix> ::= "f" | "F" | "d" | "D"

[...] bedeutet: Symbole oder Symbolfolgen innerhalb der Klammern können auch weggelassen werden

{...} bedeutet: Symbole oder Symbolfolgen innerhalb der Klammern können beliebig oft wiederholt oder auch ganz weggelassen werden

...|... bedeutet: genau ein alternatives Symbol oder eine alternative Symbolfolge innerhalb der Klammern muss auftreten

<Zeichenfolge>: Nichtterminal

"Zeichenfolge": Terminal

Teilaufgabe (a) (5 Punkte):

Formen Sie die obige EBNF in ein äquivalentes Syntaxdiagramm um!

Teilaufgabe (b) (je 2 Punkte):

Welche der folgenden Zeichenketten sind bezüglich der obigen EBNF syntaktisch korrekt, welche nicht (Begründen Sie Ihre Entscheidung!):

  1. 4711.08155e23D
  2. 0815.f
  3. .ef
  4. +4.5
  5. 3456.7<ExpPart>F
  6. 6.4E-23f
  7. 78.2f
  8. 78g.2f
  9. 99999999999.99999999e+99999999999999
  10. 6767.7676.7e56

Aufgabe 6 (Syntaxdiagramme): 10 Punkte

Entwickeln Sie ein Syntaxdiagramm (bzw. alternativ eine EBNF) für EBNF-Regeln (d.h. beschreiben Sie, wie EBNF-Regeln syntaktisch aufgebaut sind)!

Aufgabe 7 (Algorithmen): 20 Punkte

Gegeben sei folgendes Problem: "Umrechnung einer Dualzahl in eine Dezimalzahl". Formulieren Sie einen Algorithmus zur Lösung des Problems (siehe auch Folie 36 der Vorlesung 2):

  1. umgangssprachlich
  2. mit Hilfe eines Programmablaufplans, eines Struktogramms oder einer "Pseudo-Programmiersprache"

Aufgabe 8 (Dualsystem): 25 Punkte

Rechnen Sie folgenden Dezimalzahlen ins Dualsystem um (inkl. Lösungsweg!) (je 2 Punkte)

  1. 33
  2. 127
  3. 10101
  4. 99
  5. 155

Rechnen Sie folgende Dualzahlen ins Dezimalsystem um (inkl. Lösungsweg!) (je 2 Punkte)

  1. 101110110
  2. 10101010101
  3. 11011101111
  4. 10000101

Addieren Sie die obigen vier Dualzahlen dual (7 Punkte)!

Aufgabe 9 (Aussagenlogik): 11 Punkte

Leiten Sie mit Hilfe der Negation, Konjunktion und Disjunktion eine Aussagenformel her, die folgende Wertetafel erfüllt:

P Q | ?

-------

T T | F

T F | F

F T | T

F F | F

Aufgabe 10 (Aussagenlogik): 9 Punkte

Überprüfen Sie, welche der folgenden Aussagen jeweils äquivalent sind und welche nicht (mit Begründung!):