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 j = 1:length(frequencies)
[x_data, y_data] = calculate_sinewave(frequencies(j), ...
amplitudes(i), t_max, t_step);
plot_sinewave(x_data, y_data, sprintf('freq: %5.2f, ampl: %5.2f',...
frequencies(j), amplitudes(i)))
[x_data, y_data] = sinewave(frequencies(j), ...
amplitudes(i), t_max, t_step);
plotFunction(x_data, y_data, sprintf('freq: %5.2f, ampl: %5.2f',...
frequencies(j), amplitudes(i)))
end
end
legend('show')

View File

@ -19,7 +19,6 @@
\section{TODO}
\begin{itemize}
\item Ausgabeformat: \varcode{format} ?
\item Boolescher Ausdruck: ist doch eigentlich boolescher Ausdruck!
\item Expliziter die \varcode{(a:b:c)} Notation einf\"uhren!
\item Mathematische Funktionen sin(), cos(), exp()
\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!or2@{"|}{"|} {}]{||} Operatoren. Man kann
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
einem UND verkn\"upft werden und der erste zu falsch ausgewertet wird,
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.
\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
ausgewertet werden indem diese in den Typ \code{logical} umgewandelt
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}
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
Schl\"usselkonzepte in \matlab{}. Nur mit diesem k\"onnen
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.
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
wird benutzt um die Elemente des urspr\"unglichen Vektors
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
auch hier der in der Schleife definierte Programmcode iterativ
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
Schleifenk\"orper ausgef\"uhrt. Die Schleife wird mit dem
Schl\"usselwort \code{end} beendet.
@ -1100,7 +1100,7 @@ end
\begin{exercise}{neverendingWhile.m}{}
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.
Das Programm kann mit \keycode{Ctrl+C} abgebrochen werden.
\end{exercise}
@ -1136,7 +1136,7 @@ Anweisung. Sie wird genutzt um Programmcode nur unter bestimmten
Bedingungen auszuf\"uhren.
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
K\"orper der Anweisung ausgef\"uhrt. Optional k\"onnen weitere
Bedingungen mit dem Schl\"usselwort \code{elseif} folgen. Ebenfalls
@ -1503,22 +1503,24 @@ legend('show')
\pagebreak[4]
\end{exercise}
\subsection{Fazit}
Funktionen sind kleine Codefragmente, die
\begin{enumerate}
\item ... genau eine Aufgabe erledigen.
\item ... Argumente entgegennehmen k\"onnen.
\item ... R\"uckgabewerte haben k\"onnen.
\item ... ihren eigenen G\"ultigkeitsbereich haben.
\item ... Skripten fast immer vorzuziehen sind.
\end{enumerate}
Die vorangegangene Aussagen klingen, als ob Skripte zu
verteufeln w\"aren und und vermieden werden sollten. Dem ist nicht
so. In Wahrheit sind sie daf\"ur gemacht, Hand in Hand mit den
Funktionen ein Problem zu l\"osen. W\"ahrend die Funktionen relativ
kleine ``verdauliche'' Teilprobleme l\"osen, sind Skripte daf\"ur
gemacht den Rahmen zu bilden und den Ablauf zu koordinieren (Abbildung
\subsubsection{Einsatz von Funktionen und Skripten}
Funktionen sind kleine Codefragmente, die im Idealfall genau eine
Aufgabe erledigen. Sie besitzen einen eigenen
\determ{G\"ultigkeitsbereich}, d.h. dass Variablen aus dem globalen
Workspace nicht verf\"ugbar sind und Variablen, die lokal in der
Funktion erstellt werden nicht im globalen Workspace sichtbar
werden. Die hat zur Folge, dass Funktionen all Informationen, die sie
ben\"otigen, von au{\ss}en erhalten m\"ussen. Sie nehmen Argumente
entgegen und k\"onnen R\"uckgabwerte zur\"uckliefern.
Die Verwendung von Funktionen ist der Verwendung von Skripten fast
immer vorzuziehen sind. Das hei{\ss}t aber nicht, das Skripte zu
verteufeln w\"aren und und vermieden werden sollten. In Wahrheit sind
sie daf\"ur gemacht, Hand in Hand mit den Funktionen ein Problem zu
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}).
\begin{figure}