BuK-Übung01 G1

Aus ProgrammingWiki

Inhaltsverzeichnis

Indirekter Beweis

Aufgabenstellung

Zeigen Sie indirekt, dass x eine gerade Zahl ist, wenn x^2 gerade ist.

Lösung

\begin{array}{ccc} A & \rightarrow & x^2\ gerade\\ Z & \rightarrow & x\ gerade\\ \overline{Z} & x\ ungerade \end{array}

Wenn x ungerade dann gilt, x = \pm2k-1.

\begin{array}{ccc} x^2 & = & x \cdot x \\ \end{array}

Weil x ungerade:

\begin{array}{ccc} x & = & 2k-1 \\ & = & (2k-1)^2\\ & = & 4k^2-4k+1\\ & = & 2\underbrace{(2k^2-2k)}_{m}+1\\ & = & 2m+1 \end{array}

\overline{Z} gilt nicht \rightarrow\ Z gilt.

Idealisierter Rechner

Aufgabenstellung

  1. Entwickeln Sie einen Interpreter für den in der Vorlesung angegebenen idealisierten Computer. Verwenden Sie AtoCC.
  2. Testen Sie das Programm zur Bestimmung der Lösungen quadratischer Gleichungen.
  3. Entwerfen und testen Sie ein Programm, dass die folgende Funktion f : N \longmapsto N berechnet:
f(n) = \begin{cases} n, & \text{wenn }n<4\\ n.d., & \text{sonst} \end{cases}

Lösung

Aufgabe 1

Für die Sprache wurden folgende Befehle definiert:

Befehle
lies ein in R(n)
R(n) <- k
R(n) <- R(m) + R(j)
R(n) <- R(m) - R(j)
R(n) <- R(m) * R(j)
R(n) <- R(m) / R(j)
R(n) <- Quadratwurzel(m)
Falls R(n)=0, dann Zeile j
Falls R(n)<=R(m), dann Zeile j
Gehe in Zeile j
Ausgabe(R(j))
Ausgabe(„Text“)
End

Jeder Befehl wird mit einer Zeilenummer eingeleitet.

Beispiel: (1) lies ein in R(5)

Grammatik

Datei_Grammatik.PNG

Aufgabe 2 und 3

Interpreter

Compiler