Skip to content

Commit 8a71c91

Browse files
authored
Praxis Umgebung und Spiel Umgebung eingeführt, um Umbrüche zu vermeiden (#106)
1 parent 356912d commit 8a71c91

22 files changed

Lines changed: 784 additions & 745 deletions

basics/arith.tex

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -28,51 +28,51 @@
2828

2929
\inputcpp{arith2.cpp}
3030

31-
\textbf{Praxis:}
32-
\begin{enumerate}
33-
\item Was gibt dieses Programm aus? Überlegt es euch zuerst und kompiliert
34-
es dann, um es auszuprobieren.
35-
\end{enumerate}
31+
\begin{praxis}
32+
\begin{enumerate}
33+
\item Was gibt dieses Programm aus? Überlegt es euch zuerst und kompiliert
34+
es dann, um es auszuprobieren.
35+
\end{enumerate}
3636

37-
Obwohl \texttt{a = a + 19} mathematisch überhaupt keinen Sinn ergibt, ist doch
38-
klar, was passiert, wenn man sich den Quellcode eben nicht als Reihe von
39-
Aussagen, sondern als Folge von \emph{Anweisungen} vorstellt. Das
40-
Gleichheitszeichen bedeutet dann nicht, dass beide Seiten gleich sein sollen,
41-
sondern dass der Wert auf der linken Seite den Wert auf der rechten Seite
42-
annehmen soll.
37+
Obwohl \texttt{a = a + 19} mathematisch überhaupt keinen Sinn ergibt, ist doch
38+
klar, was passiert, wenn man sich den Quellcode eben nicht als Reihe von
39+
Aussagen, sondern als Folge von \emph{Anweisungen} vorstellt. Das
40+
Gleichheitszeichen bedeutet dann nicht, dass beide Seiten gleich sein sollen,
41+
sondern dass der Wert auf der linken Seite den Wert auf der rechten Seite
42+
annehmen soll.
4343

44-
Wie wir in diesem Beispiel ausserdem sehen, können wir nicht nur Strings
45-
ausgeben, sondern auch Zahlen. \texttt{std::cout} gibt sie in einer Form aus,
46-
in der wir etwas damit anfangen können. Genauso können wir auch über
47-
\texttt{std::cin} Zahlen vom Benutzer entgegen nehmen:
44+
Wie wir in diesem Beispiel ausserdem sehen, können wir nicht nur Strings
45+
ausgeben, sondern auch Zahlen. \texttt{std::cout} gibt sie in einer Form aus,
46+
in der wir etwas damit anfangen können. Genauso können wir auch über
47+
\texttt{std::cin} Zahlen vom Benutzer entgegen nehmen:
4848

49-
\inputcpp{arith3.cpp}
49+
\inputcpp{arith3.cpp}
5050

51-
Langsam aber sicher tasten wir uns an nützliche Programme heran!
51+
Langsam aber sicher tasten wir uns an nützliche Programme heran!
5252

53-
\textbf{Praxis:}
54-
\begin{enumerate}[resume]
55-
\item Schreibt ein Programm, welches von der Nutzerin zwei ganze Zahlen
56-
entgegen nimmt und anschließend Summe, Differenz, Produkt und Quotient
57-
ausspuckt.
58-
\item Was fällt auf, wenn ihr z.B. 19 und 7 eingebt?
59-
\item Findet heraus (Google ist euer Freund), wie man in \Cpp Division mit
60-
Rest durchführt und gebt diese zusätzlich zu den bisherigen Operationen
61-
mit aus\footnote{Falls ihr nicht weiterkommt, hilft euch vielleicht das
62-
Stichwort „modulo“ oder „modulo-operator“ weiter.}.
63-
\item Was passiert, wenn ihr als zweite Zahl eine 0 eingebt?
64-
\end{enumerate}
53+
\begin{enumerate}[resume]
54+
\item Schreibt ein Programm, welches von der Nutzerin zwei ganze Zahlen
55+
entgegen nimmt und anschließend Summe, Differenz, Produkt und Quotient
56+
ausspuckt.
57+
\item Was fällt auf, wenn ihr z.B. 19 und 7 eingebt?
58+
\item Findet heraus (Google ist euer Freund), wie man in \Cpp Division mit
59+
Rest durchführt und gebt diese zusätzlich zu den bisherigen Operationen
60+
mit aus\footnote{Falls ihr nicht weiterkommt, hilft euch vielleicht das
61+
Stichwort „modulo“ oder „modulo-operator“ weiter.}.
62+
\item Was passiert, wenn ihr als zweite Zahl eine 0 eingebt?
63+
\end{enumerate}
64+
\end{praxis}
6565

66-
\textbf{Spiel:}
67-
\begin{enumerate}
68-
\item Findet heraus, was die größte positive (und was die kleinste
69-
negative) Zahl ist, die ihr in einem \texttt{int} speichern könnt.
70-
Faulpelze nutzen Google, Lernbegierige versuchen sie experimentell zu
71-
ermitteln. Was passiert, wenn ihr eine größere Zahl eingebt?
72-
\item Wir arbeiten bisher nur mit \texttt{int}s für ganze Zahlen. Wenn wir
73-
mit gebrochenen Zahlen rechnen wollen brauchen wir den Datentyp
74-
\texttt{double}. Schreibt euer Mini Rechenprogramm so um, dass es statt
75-
\texttt{int}s nur noch \texttt{double} benutzt und probiert es aus.
76-
Achtet darauf, dass es Dezimalpunkte und Dezimalkommata gibt, wenn ihr
77-
überraschende Ergebnisse erhaltet.
78-
\end{enumerate}
66+
\begin{spiel}
67+
\begin{enumerate}
68+
\item Findet heraus, was die größte positive (und was die kleinste
69+
negative) Zahl ist, die ihr in einem \texttt{int} speichern könnt.
70+
Faulpelze nutzen Google, Lernbegierige versuchen sie experimentell zu
71+
ermitteln. Was passiert, wenn ihr eine größere Zahl eingebt?
72+
\item Wir arbeiten bisher nur mit \texttt{int}s für ganze Zahlen. Wenn wir mit gebrochenen Zahlen rechnen wollen brauchen wir den Datentyp
73+
\texttt{double}. Schreibt euer Mini Rechenprogramm so um, dass es statt
74+
\texttt{int}s nur noch \texttt{double} benutzt und probiert es aus.
75+
Achtet darauf, dass es Dezimalpunkte und Dezimalkommata gibt, wenn ihr
76+
überraschende Ergebnisse erhaltet.
77+
\end{enumerate}
78+
\end{spiel}

basics/fehler.tex

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
Wenn wir versuchen, dieses zu kompilieren, gibt uns \texttt{g++} folgendes aus:
2424

2525
\begin{textcode*}{label=g++ -o fehler1 fehler1.cpp}
26-
fehler1.cpp: In function 'int main()':
27-
fehler1.cpp:2:5: error: 'cout' is not a member of 'std'
28-
fehler1.cpp:2:35: error: 'endl' is not a member of 'std'
26+
fehler1.cpp: In function 'int main()':
27+
fehler1.cpp:2:5: error: 'cout' is not a member of 'std'
28+
fehler1.cpp:2:35: error: 'endl' is not a member of 'std'
2929
\end{textcode*}
3030

3131
Wenn wir diese Fehlermeldung verstehen wollen, fangen wir immer ganz oben an,
@@ -56,8 +56,8 @@
5656
entgegengespuckt:
5757

5858
\begin{textcode*}{label=g++ -o fehler2 fehler2.cpp}
59-
fehler2.cpp: In function 'int main()':
60-
fehler2.cpp:5:1: error: expected ';' before '}' token
59+
fehler2.cpp: In function 'int main()':
60+
fehler2.cpp:5:1: error: expected ';' before '}' token
6161
\end{textcode*}
6262

6363
Wiederum sagt uns die erste Zeile, in welcher Datei und Funktion der Fehler
@@ -78,28 +78,31 @@
7878
sein sollte, schaut vielleicht mal ein oder zwei Zeilen darüber, vielleicht
7979
wusste der Compiler es einfach nicht besser.
8080

81-
\textbf{Praxis:}
82-
\begin{enumerate}
83-
\item Versucht, folgende Dateien zu kompilieren und schaut euch die
84-
Fehlermeldung an. In welcher Zeile, in welcher Spalte liegt der Fehler?
85-
Was gibt euch der Compiler als Fehlermeldung aus?
86-
\item Versucht, die aufgetretenen Fehler zu korrigieren. Bekommt ihr es
87-
hin, dass der Compiler sich nicht mehr beschwert und das Programm
88-
korrekt arbeitet (schaut euch ggf. die bisher gezeigten Quellcodes an)?
89-
\end{enumerate}
90-
91-
\inputcpp{fehler3.cpp}
92-
\inputcpp{fehler4.cpp}
93-
94-
\textbf{Spiel:}
95-
\begin{enumerate}
96-
\item Das folgende Programm enthält mehrere Fehler. Bekommt ihr trotzdem
97-
raus, welche das sind und könnt ihr sie beheben (Tipp: „c++ math“ zu
98-
\href{http://lmgtfy.com/?q=c\%2B\%2B+math}{googlen} kann euch hier vielleicht weiter bringen)?
99-
\item Wenn ihr in den Vergangen Lektionen ein bisschen gespielt habt und
100-
vereinzelnd versucht habt, Dinge zu löschen, Werden euch viele
101-
Fehlermeldungen begegnet sein, versucht, diese zu lesen und
102-
interpretieren, was euch der compiler hier sagen will.
103-
\end{enumerate}
104-
105-
\inputcpp{fehler5.cpp}
81+
\begin{praxis}
82+
\begin{enumerate}
83+
\item Versucht, folgende Dateien zu kompilieren und schaut euch die
84+
Fehlermeldung an. In welcher Zeile, in welcher Spalte liegt der Fehler?
85+
Was gibt euch der Compiler als Fehlermeldung aus?
86+
\item Versucht, die aufgetretenen Fehler zu korrigieren. Bekommt ihr es
87+
hin, dass der Compiler sich nicht mehr beschwert und das Programm
88+
korrekt arbeitet (schaut euch ggf. die bisher gezeigten Quellcodes an)?
89+
\end{enumerate}
90+
91+
\inputcpp{fehler3.cpp}
92+
93+
\inputcpp{fehler4.cpp}
94+
\end{praxis}
95+
96+
\begin{spiel}
97+
\begin{enumerate}
98+
\item Das folgende Programm enthält mehrere Fehler. Bekommt ihr trotzdem
99+
raus, welche das sind und könnt ihr sie beheben (Tipp: „c++ math“ zu
100+
\href{http://lmgtfy.com/?q=c\%2B\%2B+math}{googlen} kann euch hier vielleicht weiter bringen)?
101+
\item Wenn ihr in den Vergangen Lektionen ein bisschen gespielt habt und
102+
vereinzelnd versucht habt, Dinge zu löschen, Werden euch viele
103+
Fehlermeldungen begegnet sein, versucht, diese zu lesen und
104+
interpretieren, was euch der compiler hier sagen will.
105+
\end{enumerate}
106+
107+
\inputcpp{fehler5.cpp}
108+
\end{spiel}

basics/funktionen.tex

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
\[
1212
\smashoperator{\mathop{\underbrace{\text{\cppinline{double}}}}_{\text{Rückgabetyp}}}\quad
1313
\smashoperator{\mathop{\overbrace{\text{\cppinline{my_func}}}}^{\text{Name}}}
14-
(\smashoperator{\mathop{\underbrace{\text{\cppinline{double x}}}}_{\text{Paramter 1}}},\
14+
(\smashoperator{\mathop{\underbrace{\text{\cppinline{double x}}}}_{\text{Paramter 1}}},\
1515
\smashoperator{\mathop{\overbrace{\text{\cppinline{int n}}}^{\text{Paramter 2}}}})
1616
\]
1717
%sorry etwas hässlich
@@ -43,46 +43,48 @@
4343
\[
4444
x_n =
4545
\begin{cases}
46-
\frac{x_{n-1}}{2} & x_{n-1} \text{ ist gerade} \\
46+
\frac{x_{n-1}}{2} & x_{n-1} \text{ ist gerade} \\
4747
3 \cdot x_{n-1} + 1 & x_{n-1} \text{ ist ungerade}
4848
\end{cases}
4949
\]
5050
dass jeder Startwert $x_1$ aus den natürlichen Zahlen nach endlich vielen Schritten bei der $1$ angelangt.
5151
Zum Beispiel für den Startwert $x_1 = 42$:
5252

5353
\[
54-
42 \mapsto 21 \mapsto 64 \mapsto 32 \mapsto 16 \mapsto 8 \mapsto 4 \mapsto 2 \mapsto 1 \mapsto 4 \mapsto 2 \mapsto 1 \mapsto \ldots
54+
42 \mapsto 21 \mapsto 64 \mapsto 32 \mapsto 16 \mapsto 8 \mapsto 4 \mapsto 2 \mapsto 1 \mapsto 4 \mapsto 2 \mapsto 1 \mapsto \ldots
5555
\]
5656

5757
Wenn nun die Frage aufkommt was die nächsten Folgenglieder von verschiedenen Zahlen sind, wäre ein möglicher Lösungsweg eine Funktion zu schreiben, die der Nutzerin die nächste Zahl in dieser Folge zurückgibt.
5858

5959
\inputcpp{funktion.cpp}
6060

61-
\textbf{Praxis:}\footnote{In dieser Lektion gibt es ein paar mehr Aufgaben als in anderen Lektionen, lasst euch davon nicht entmutigen!}
62-
\begin{enumerate}
63-
\item Verändert das Programm in \texttt{funktion.cpp} so, dass es nicht die einzelnen Zahlen \texttt{x1}, \texttt{x2} und \texttt{x3}, sondern die Summe dieser ausgibt.
64-
%Wirkt wie Kinderkram nicht zum Funktionskapitel, möchte aber nochmal den Unterschied zwischen Ausgabe und Rückgabe dadurch nochmal klarer machen
65-
\item Kompiliert das angepasste Programm und lasst es im debugger Schritt für Schritt durchlaufen, setzt dafür wieder einen breakpoint für die \texttt{main}-Funktion.
66-
Sobald der debugger euch anzeigt, als nächstes die Funktion ausführen zu wollen, \texttt{step} statt \texttt{next} aufrufen, sodass der debugger in die Funktion hineinspringt.
67-
\item Schreibt eine Funktion die ein \texttt{double} entgegen nimmt und das Quadrat davon zurück gibt.
68-
(Hierbei sollt ihr keine Pakete wie \texttt{math.h} oder \texttt{cmath} benutzen.)
69-
\end{enumerate}
61+
\begin{praxis}\footnote{In dieser Lektion gibt es ein paar mehr Aufgaben als in anderen Lektionen, lasst euch davon nicht entmutigen!}
62+
\begin{enumerate}
63+
\item Verändert das Programm in \texttt{funktion.cpp} so, dass es nicht die einzelnen Zahlen \texttt{x1}, \texttt{x2} und \texttt{x3}, sondern die Summe dieser ausgibt.
64+
%Wirkt wie Kinderkram nicht zum Funktionskapitel, möchte aber nochmal den Unterschied zwischen Ausgabe und Rückgabe dadurch nochmal klarer machen
65+
\item Kompiliert das angepasste Programm und lasst es im debugger Schritt für Schritt durchlaufen, setzt dafür wieder einen breakpoint für die \texttt{main}-Funktion.
66+
Sobald der debugger euch anzeigt, als nächstes die Funktion ausführen zu wollen, \texttt{step} statt \texttt{next} aufrufen, sodass der debugger in die Funktion hineinspringt.
67+
\item Schreibt eine Funktion die ein \texttt{double} entgegen nimmt und das Quadrat davon zurück gibt.
68+
(Hierbei sollt ihr keine Pakete wie \texttt{math.h} oder \texttt{cmath} benutzen.)
69+
\end{enumerate}
70+
\end{praxis}
7071

71-
\textbf{Spiel:}
72-
\begin{enumerate}
73-
\item Schreibt eine Funktion (nach der Funktion \texttt{collatz} und vor \texttt{main}), die einen \texttt{int} entgegen nimmt und die Anzahl der Schritte bestimmt bis die Folge bei der 1 angekommen ist und diese als \texttt{int} zurückgibt.
74-
(Die Funktion sollte also die Signatur \cppinline{int schritte(int x)} haben.)
75-
Probiert die Funktion aus.
76-
\item Versucht jetzt zwei Zahlen von der Nutzerin entgegen zu nehmen und vergleicht mithilfe von der gerade geschriebenen Funktion, welche Zahl mehr Schritte bis zur 1 braucht.
77-
\item Was passiert, wenn ihr in einer Funktion den \texttt{return}-Ausdruck vor dem Ende eurer Funktion benutzt?
78-
\item Vertauscht in \texttt{funktion.cpp} die Funktion \texttt{collatz} mit der Funktion \texttt{main} (verschiebt also die gesamte Funktion \texttt{collatz} an das Ende der Datei).
79-
Versucht, die Datei zu kompilieren.
80-
Was ist die Fehlermeldung des Compilers?
81-
\item Verschiebt die Funktion \texttt{collatz} \emph{in} die \texttt{main}-Funktion (also irgendwo nach der öffnenden geschweiften Klammern, aber vor die dazu gehörige schließende).
82-
Versucht, die Datei zu kompilieren. Was ist die Fehlermeldung des Compilers?
83-
\item Implementiert die Funktion, die $x^n$ umsetzt, ignoriert dabei zunächst negative Exponenten. \\
84-
(Wie in Praxis 3, sollt ihr auch hier keine vorgefertigten Pakete benutzen. \emph{Tipp:} Die Signatur ist bereits oben gegeben, für den Funktionsrumpf könnten sich Schleifen eignen.)
85-
\item Eure Funktion kann sich auch selbst aufrufen. Versucht damit eure Funktion auf negative Exponenten zu erweitern, indem ihr benutzt, dass gilt $x^{-n} = \Bigl(\frac{1.0}{x}\Bigr)^n$.
86-
\item Schaut euch eure bisherigen Lösungen an.
87-
Findet ihr noch häufiger Stellen, an denen ihr einzelne Teilprogramme in Funktionen auslagern könnt?
88-
\end{enumerate}
72+
\begin{spiel}
73+
\begin{enumerate}
74+
\item Schreibt eine Funktion (nach der Funktion \texttt{collatz} und vor \texttt{main}), die einen \texttt{int} entgegen nimmt und die Anzahl der Schritte bestimmt bis die Folge bei der 1 angekommen ist und diese als \texttt{int} zurückgibt.
75+
(Die Funktion sollte also die Signatur \cppinline{int schritte(int x)} haben.)
76+
Probiert die Funktion aus.
77+
\item Versucht jetzt zwei Zahlen von der Nutzerin entgegen zu nehmen und vergleicht mithilfe von der gerade geschriebenen Funktion, welche Zahl mehr Schritte bis zur 1 braucht.
78+
\item Was passiert, wenn ihr in einer Funktion den \texttt{return}-Ausdruck vor dem Ende eurer Funktion benutzt?
79+
\item Vertauscht in \texttt{funktion.cpp} die Funktion \texttt{collatz} mit der Funktion \texttt{main} (verschiebt also die gesamte Funktion \texttt{collatz} an das Ende der Datei).
80+
Versucht, die Datei zu kompilieren.
81+
Was ist die Fehlermeldung des Compilers?
82+
\item Verschiebt die Funktion \texttt{collatz} \emph{in} die \texttt{main}-Funktion (also irgendwo nach der öffnenden geschweiften Klammern, aber vor die dazu gehörige schließende).
83+
Versucht, die Datei zu kompilieren. Was ist die Fehlermeldung des Compilers?
84+
\item Implementiert die Funktion, die $x^n$ umsetzt, ignoriert dabei zunächst negative Exponenten. \\
85+
(Wie in Praxis 3, sollt ihr auch hier keine vorgefertigten Pakete benutzen. \emph{Tipp:} Die Signatur ist bereits oben gegeben, für den Funktionsrumpf könnten sich Schleifen eignen.)
86+
\item Eure Funktion kann sich auch selbst aufrufen. Versucht damit eure Funktion auf negative Exponenten zu erweitern, indem ihr benutzt, dass gilt $x^{-n} = \Bigl(\frac{1.0}{x}\Bigr)^n$.
87+
\item Schaut euch eure bisherigen Lösungen an.
88+
Findet ihr noch häufiger Stellen, an denen ihr einzelne Teilprogramme in Funktionen auslagern könnt?
89+
\end{enumerate}
90+
\end{spiel}

basics/gdb.tex

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -42,34 +42,37 @@
4242
\end{minted}
4343
(Beachtet, dass im ersten Parameter erst ein großer Buchstabe o, dann eine 0 stehen)
4444
\inputcpp{debugger.cpp}
45-
\textbf{Praxis:}
46-
\begin{enumerate}
47-
\item Kompiliert das Programm mit den neuen Optionen für den debugger. Ihr
48-
könnt es dann mittels \verb|gdb ./debugger| im gdb starten. Ihr solltet
49-
nun ein wenig Text ausgegeben bekommen und einen anderen prompt
50-
(\texttt{(gdb)}). Ihr könnt den debugger jederzeit wieder verlassen,
51-
indem ihr \texttt{quit} eingebt (falls ihr gefragt werdet, ob ihr euch
52-
sicher seid, gebt \texttt{y} ein und drückt enter)
53-
\item Zu allererst müssen wir einen so genannten \emph{breakpoint} setzen,
54-
das ist ein Punkt im Programmablauf, an dem es stoppen soll, damit wir
55-
entscheiden können, was wir tun wollen. \texttt{main} ist für die
56-
meisten unserer Programme eine sichere Wahl:
57-
\mint{text}|break main|
58-
Dann können wir das Programm mit \texttt{run} starten. Wir sollten die
59-
erste Anweisung unseres Programmes angezeigt bekommen.
60-
\item Der Debugger wird euch jetzt immer sagen, welches die nächste
61-
Anweisung ist, die er ausführen möchte. Mit \texttt{next} könnt ihr sie
62-
ausführen lassen, mit \texttt{print a} könnt ihr euch den Inhalt von
63-
\texttt{a} zu diesem Zeitpunkt anschauen, mit \texttt{print b} den von
64-
\texttt{b} und so weiter. Geht das Programm Schritt für Schritt durch
65-
und lasst euch die Werte von \texttt{a}, \texttt{b} und \texttt{c} in
66-
jedem Schritt ausgeben. Wenn der debugger euch sagt, dass euer Programm
67-
beendet wurde, gebt \texttt{quit} ein und beendet ihn.
68-
\end{enumerate}
6945

70-
\textbf{Spiel:}
71-
\begin{enumerate}
72-
\item Ihr habt nun schon einige Programme kennen gelernt. Kompiliert sie
73-
für den Debugger neu und untersucht sie genauso wie obiges Programm,
74-
solange ihr Lust habt.
75-
\end{enumerate}
46+
\begin{praxis}
47+
\begin{enumerate}
48+
\item Kompiliert das Programm mit den neuen Optionen für den debugger. Ihr
49+
könnt es dann mittels \verb|gdb ./debugger| im gdb starten. Ihr solltet
50+
nun ein wenig Text ausgegeben bekommen und einen anderen prompt
51+
(\texttt{(gdb)}). Ihr könnt den debugger jederzeit wieder verlassen,
52+
indem ihr \texttt{quit} eingebt (falls ihr gefragt werdet, ob ihr euch
53+
sicher seid, gebt \texttt{y} ein und drückt enter)
54+
\item Zu allererst müssen wir einen so genannten \emph{breakpoint} setzen,
55+
das ist ein Punkt im Programmablauf, an dem es stoppen soll, damit wir
56+
entscheiden können, was wir tun wollen. \texttt{main} ist für die
57+
meisten unserer Programme eine sichere Wahl:
58+
\mint{text}|break main|
59+
Dann können wir das Programm mit \texttt{run} starten. Wir sollten die
60+
erste Anweisung unseres Programmes angezeigt bekommen.
61+
\item Der Debugger wird euch jetzt immer sagen, welches die nächste
62+
Anweisung ist, die er ausführen möchte. Mit \texttt{next} könnt ihr sie
63+
ausführen lassen, mit \texttt{print a} könnt ihr euch den Inhalt von
64+
\texttt{a} zu diesem Zeitpunkt anschauen, mit \texttt{print b} den von
65+
\texttt{b} und so weiter. Geht das Programm Schritt für Schritt durch
66+
und lasst euch die Werte von \texttt{a}, \texttt{b} und \texttt{c} in
67+
jedem Schritt ausgeben. Wenn der debugger euch sagt, dass euer Programm
68+
beendet wurde, gebt \texttt{quit} ein und beendet ihn.
69+
\end{enumerate}
70+
\end{praxis}
71+
72+
\begin{spiel}
73+
\begin{enumerate}
74+
\item Ihr habt nun schon einige Programme kennen gelernt. Kompiliert sie
75+
für den Debugger neu und untersucht sie genauso wie obiges Programm,
76+
solange ihr Lust habt.
77+
\end{enumerate}
78+
\end{spiel}

0 commit comments

Comments
 (0)