change Fazit section, adapt exercise script to reflect the changes to
function names
This commit is contained in:
parent
da6a3eef44
commit
2241c81d40
@ -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')
|
||||
|
@ -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()
|
||||
|
@ -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}
|
||||
|
Reference in New Issue
Block a user