change Fazit section, adapt exercise script to reflect the changes to

function names
This commit is contained in:
Jan Grewe 2015-12-01 10:39:26 +01:00
parent da6a3eef44
commit 2241c81d40
3 changed files with 29 additions and 28 deletions

View File

@ -8,10 +8,10 @@ hold on
for i = 1:length(amplitudes) for i = 1:length(amplitudes)
for j = 1:length(frequencies) for j = 1:length(frequencies)
[x_data, y_data] = calculate_sinewave(frequencies(j), ... [x_data, y_data] = sinewave(frequencies(j), ...
amplitudes(i), t_max, t_step); amplitudes(i), t_max, t_step);
plot_sinewave(x_data, y_data, sprintf('freq: %5.2f, ampl: %5.2f',... plotFunction(x_data, y_data, sprintf('freq: %5.2f, ampl: %5.2f',...
frequencies(j), amplitudes(i))) frequencies(j), amplitudes(i)))
end end
end end
legend('show') legend('show')

View File

@ -19,7 +19,6 @@
\section{TODO} \section{TODO}
\begin{itemize} \begin{itemize}
\item Ausgabeformat: \varcode{format} ? \item Ausgabeformat: \varcode{format} ?
\item Boolescher Ausdruck: ist doch eigentlich boolescher Ausdruck!
\item Expliziter die \varcode{(a:b:c)} Notation einf\"uhren! \item Expliziter die \varcode{(a:b:c)} Notation einf\"uhren!
\item Mathematische Funktionen sin(), cos(), exp() \item Mathematische Funktionen sin(), cos(), exp()
\item Rundungsfunktionen round(), floor(), ceil() \item Rundungsfunktionen round(), floor(), ceil()

View File

@ -817,7 +817,7 @@ Tabelle \ref{logicalrelationaloperators} zeigt die logischen Operatoren, die in
\code[Operator!logischer!and2@\&\&]{\&\&} und \code[Operator!logischer!and2@\&\&]{\&\&} und
\code[Operator!logischer!or2@{"|}{"|} {}]{||} Operatoren. Man kann \code[Operator!logischer!or2@{"|}{"|} {}]{||} Operatoren. Man kann
beliebige Ausdr\"ucke verkn\"upfen und h\"aufig kann schon anhand des beliebige Ausdr\"ucke verkn\"upfen und h\"aufig kann schon anhand des
ersten Ausdrucks entschieden werden, ob der gesamte Boolesche Ausdruck ersten Ausdrucks entschieden werden, ob der gesamte boolesche Ausdruck
zu wahr oder falsch ausgewertet werden wird. Wenn zwei Aussagen mit zu wahr oder falsch ausgewertet werden wird. Wenn zwei Aussagen mit
einem UND verkn\"upft werden und der erste zu falsch ausgewertet wird, einem UND verkn\"upft werden und der erste zu falsch ausgewertet wird,
muss der zweite gar nicht mehr gepr\"uft werden. Die Verwendung der muss der zweite gar nicht mehr gepr\"uft werden. Die Verwendung der
@ -864,7 +864,7 @@ Gleichheit (\varcode{==}) gr\"o{\ss}er oder kleiner als (\varcode{>},
k\"onnen sie leider leicht verwechselt werden. k\"onnen sie leider leicht verwechselt werden.
\end{important} \end{important}
Das Ergebnis eines Booleschen Ausdrucks ist immer vom Datentyp Das Ergebnis eines booleschen Ausdrucks ist immer vom Datentyp
\codeterm{logical}. Jede beliebige Variable zu wahr oder falsch \codeterm{logical}. Jede beliebige Variable zu wahr oder falsch
ausgewertet werden indem diese in den Typ \code{logical} umgewandelt ausgewertet werden indem diese in den Typ \code{logical} umgewandelt
wird. Dabei werden von \matlab{} alle Werte, die nicht 0 sind als wahr wird. Dabei werden von \matlab{} alle Werte, die nicht 0 sind als wahr
@ -901,7 +901,7 @@ ans = 1 0 1 1 0
\section{Logisches Indizieren}\label{logicalindexingsec} \section{Logisches Indizieren}\label{logicalindexingsec}
Einer der wichtigsten Einsatzorte f\"ur Boolesche Ausdr\"ucke ist das Einer der wichtigsten Einsatzorte f\"ur boolesche Ausdr\"ucke ist das
logische Indizieren. Logisches Indizieren ist eines der logische Indizieren. Logisches Indizieren ist eines der
Schl\"usselkonzepte in \matlab{}. Nur mit diesem k\"onnen Schl\"usselkonzepte in \matlab{}. Nur mit diesem k\"onnen
Filteroperationen auf Vektoren und Matrizen effizient durchgef\"uhrt Filteroperationen auf Vektoren und Matrizen effizient durchgef\"uhrt
@ -909,7 +909,7 @@ werden. Es ist sehr m\"achtig und, wenn es einmal verstanden wurde,
sehr intuitiv zu benuzten. sehr intuitiv zu benuzten.
Das Grundkonzept hinter der logischen Indizierung ist, dass durch die Das Grundkonzept hinter der logischen Indizierung ist, dass durch die
Verwendung eines Booleschen Ausdrucks auf z.B. einen Vektor ein Verwendung eines booleschen Ausdrucks auf z.B. einen Vektor ein
logischer Vektor gleicher Gr\"o{\ss}e zur\"uckgegeben wird. Dieser logischer Vektor gleicher Gr\"o{\ss}e zur\"uckgegeben wird. Dieser
wird benutzt um die Elemente des urspr\"unglichen Vektors wird benutzt um die Elemente des urspr\"unglichen Vektors
auszuw\"ahlen, bei denen der logische Vektor \codeterm{wahr} ist auszuw\"ahlen, bei denen der logische Vektor \codeterm{wahr} ist
@ -1081,7 +1081,7 @@ die \code{while}-Schleife. Auch sie hat ihre Entsprechungen in fast
allen Programmiersprachen. \"Ahnlich zur \code{for} Schleife wird allen Programmiersprachen. \"Ahnlich zur \code{for} Schleife wird
auch hier der in der Schleife definierte Programmcode iterativ auch hier der in der Schleife definierte Programmcode iterativ
ausgef\"uhrt. Der Schleifenkopf beginnt mit dem Schl\"usselwort ausgef\"uhrt. Der Schleifenkopf beginnt mit dem Schl\"usselwort
\code{while} gefolgt von einem Booleschen Ausdruck. Solange dieser zu \code{while} gefolgt von einem booleschen Ausdruck. Solange dieser zu
\code{true} ausgewertet werden kann, wird der Code im \code{true} ausgewertet werden kann, wird der Code im
Schleifenk\"orper ausgef\"uhrt. Die Schleife wird mit dem Schleifenk\"orper ausgef\"uhrt. Die Schleife wird mit dem
Schl\"usselwort \code{end} beendet. Schl\"usselwort \code{end} beendet.
@ -1100,7 +1100,7 @@ end
\begin{exercise}{neverendingWhile.m}{} \begin{exercise}{neverendingWhile.m}{}
Implementiere eine \code{while}-Schleife, die unendlich Implementiere eine \code{while}-Schleife, die unendlich
l\"auft. Tipp: wenn der Boolesche Ausdruck hinter dem \code{while} l\"auft. Tipp: wenn der boolesche Ausdruck hinter dem \code{while}
zu wahr ausgewertet wird, wird die Schleife weiter ausgef\"uhrt. zu wahr ausgewertet wird, wird die Schleife weiter ausgef\"uhrt.
Das Programm kann mit \keycode{Ctrl+C} abgebrochen werden. Das Programm kann mit \keycode{Ctrl+C} abgebrochen werden.
\end{exercise} \end{exercise}
@ -1136,7 +1136,7 @@ Anweisung. Sie wird genutzt um Programmcode nur unter bestimmten
Bedingungen auszuf\"uhren. Bedingungen auszuf\"uhren.
Der Kopf der \code{if} - Anweisung beginnt mit dem Schl\"usselwort \code{if} Der Kopf der \code{if} - Anweisung beginnt mit dem Schl\"usselwort \code{if}
welches von einem Booleschen Ausdruck gefolgt wird. Wenn welches von einem booleschen Ausdruck gefolgt wird. Wenn
dieser zu \code{true} ausgewertet werden kann, wird der Code im dieser zu \code{true} ausgewertet werden kann, wird der Code im
K\"orper der Anweisung ausgef\"uhrt. Optional k\"onnen weitere K\"orper der Anweisung ausgef\"uhrt. Optional k\"onnen weitere
Bedingungen mit dem Schl\"usselwort \code{elseif} folgen. Ebenfalls Bedingungen mit dem Schl\"usselwort \code{elseif} folgen. Ebenfalls
@ -1503,22 +1503,24 @@ legend('show')
\pagebreak[4] \pagebreak[4]
\end{exercise} \end{exercise}
\subsection{Fazit} \subsubsection{Einsatz von Funktionen und Skripten}
Funktionen sind kleine Codefragmente, die Funktionen sind kleine Codefragmente, die im Idealfall genau eine
\begin{enumerate} Aufgabe erledigen. Sie besitzen einen eigenen
\item ... genau eine Aufgabe erledigen. \determ{G\"ultigkeitsbereich}, d.h. dass Variablen aus dem globalen
\item ... Argumente entgegennehmen k\"onnen. Workspace nicht verf\"ugbar sind und Variablen, die lokal in der
\item ... R\"uckgabewerte haben k\"onnen. Funktion erstellt werden nicht im globalen Workspace sichtbar
\item ... ihren eigenen G\"ultigkeitsbereich haben. werden. Die hat zur Folge, dass Funktionen all Informationen, die sie
\item ... Skripten fast immer vorzuziehen sind. ben\"otigen, von au{\ss}en erhalten m\"ussen. Sie nehmen Argumente
\end{enumerate} entgegen und k\"onnen R\"uckgabwerte zur\"uckliefern.
Die vorangegangene Aussagen klingen, als ob Skripte zu
verteufeln w\"aren und und vermieden werden sollten. Dem ist nicht Die Verwendung von Funktionen ist der Verwendung von Skripten fast
so. In Wahrheit sind sie daf\"ur gemacht, Hand in Hand mit den immer vorzuziehen sind. Das hei{\ss}t aber nicht, das Skripte zu
Funktionen ein Problem zu l\"osen. W\"ahrend die Funktionen relativ verteufeln w\"aren und und vermieden werden sollten. In Wahrheit sind
kleine ``verdauliche'' Teilprobleme l\"osen, sind Skripte daf\"ur sie daf\"ur gemacht, Hand in Hand mit den Funktionen ein Problem zu
gemacht den Rahmen zu bilden und den Ablauf zu koordinieren (Abbildung l\"osen. W\"ahrend die Funktionen relativ kleine ``verdauliche''
Teilprobleme l\"osen, werden Skripte eingesetzt um den Rahmen zu
bilden und den Ablauf zu koordinieren (Abbildung
\ref{programlayoutfig}). \ref{programlayoutfig}).
\begin{figure} \begin{figure}