|
73 | 73 |
|
74 | 74 | \inputcpp{funktion.cpp} |
75 | 75 |
|
76 | | -\begin{praxis}\footnote{In dieser Lektion gibt es ein paar mehr Aufgaben als in anderen Lektionen, lasst euch davon nicht entmutigen!} |
77 | | - \begin{enumerate} |
78 | | - \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. |
79 | | - %Wirkt wie Kinderkram nicht zum Funktionskapitel, möchte aber nochmal den Unterschied zwischen Ausgabe und Rückgabe dadurch nochmal klarer machen |
80 | | - \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. |
81 | | - 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. |
82 | | - \item Schreibt eine Funktion die ein \texttt{double} entgegen nimmt und das Quadrat davon zurück gibt. |
83 | | - (Hierbei sollt ihr keine Pakete wie \texttt{math.h} oder \texttt{cmath} benutzen.) |
84 | | - \end{enumerate} |
85 | | -\end{praxis} |
| 76 | +\textbf{Praxis:}\footnote{In dieser Lektion gibt es ein paar mehr Aufgaben als in anderen Lektionen, lasst euch davon nicht entmutigen!} |
| 77 | +\begin{enumerate} |
| 78 | + \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. |
| 79 | +%Wirkt wie Kinderkram nicht zum Funktionskapitel, möchte aber nochmal den Unterschied zwischen Ausgabe und Rückgabe dadurch nochmal klarer machen |
| 80 | + \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. |
| 81 | + 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. |
| 82 | + \item Schreibt eine Funktion die ein \texttt{double} entgegen nimmt und das Quadrat davon zurück gibt. |
| 83 | + (Hierbei sollt ihr keine Pakete wie \texttt{math.h} oder \texttt{cmath} benutzen.) |
| 84 | +\end{enumerate} |
86 | 85 |
|
87 | 86 | \begin{spiel} |
88 | | - \begin{enumerate} |
89 | | - \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. |
90 | | - (Die Funktion sollte also die Signatur \cppinline{int schritte(int x)} haben.) |
91 | | - Probiert die Funktion aus. |
92 | | - \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. |
93 | | - \item Was passiert, wenn ihr in einer Funktion den \texttt{return}-Ausdruck vor dem Ende eurer Funktion benutzt? |
94 | | - \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). |
95 | | - Versucht, die Datei zu kompilieren. |
96 | | - Was ist die Fehlermeldung des Compilers? |
97 | | - \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). |
98 | | - Versucht, die Datei zu kompilieren. Was ist die Fehlermeldung des Compilers? |
99 | | - \item Implementiert die Funktion, die $x^n$ umsetzt, ignoriert dabei zunächst negative Exponenten. \\ |
100 | | - (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.) |
101 | | - \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$. |
102 | | - \item Schaut euch eure bisherigen Lösungen an. |
103 | | - Findet ihr noch häufiger Stellen, an denen ihr einzelne Teilprogramme in Funktionen auslagern könnt? |
104 | | - \end{enumerate} |
| 87 | +\begin{enumerate} |
| 88 | + \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. |
| 89 | + (Die Funktion sollte also die Signatur \cppinline{int schritte(int x)} haben.) |
| 90 | + Probiert die Funktion aus. |
| 91 | + \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. |
| 92 | + \item Was passiert, wenn ihr in einer Funktion den \texttt{return}-Ausdruck vor dem Ende eurer Funktion benutzt? |
| 93 | + \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). |
| 94 | + Versucht, die Datei zu kompilieren. |
| 95 | + Was ist die Fehlermeldung des Compilers? |
| 96 | + \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). |
| 97 | + Versucht, die Datei zu kompilieren. Was ist die Fehlermeldung des Compilers? |
| 98 | + \item Implementiert die Funktion, die $x^n$ umsetzt, ignoriert dabei zunächst negative Exponenten. \\ |
| 99 | + (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.) |
| 100 | + \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$. |
| 101 | + \item Schaut euch eure bisherigen Lösungen an. |
| 102 | + Findet ihr noch häufiger Stellen, an denen ihr einzelne Teilprogramme in Funktionen auslagern könnt? |
| 103 | +\end{enumerate} |
105 | 104 | \end{spiel} |
| 105 | + |
| 106 | +\textbf{Quiz 13}\\ |
| 107 | +\textit{Welche Aussagen sind korrekt?} |
| 108 | +\begin{enumerate}[label=\alph] |
| 109 | + \item Unabhängig von den Parametern geben Funktionen immer den gleichen Wert zurück |
| 110 | + \item Rückgaben einer Funktion müssen erst in einer Variable gespeichert werden, bevor sie weiterverwendet werden |
| 111 | + \item Der Rückgabetyp muss mit einem der Parametertypen übereinstimmen |
| 112 | + \item Eine Funktion kann beliebig viele Parameter haben |
| 113 | +\end{enumerate} |
| 114 | + |
0 commit comments