Fixed severla error messages. New \varcode macro for code without index.

This commit is contained in:
2015-11-22 12:47:05 +01:00
parent a945268bee
commit 3d4d778bdd
17 changed files with 75 additions and 65 deletions

View File

@@ -40,7 +40,7 @@ befassen.
In \matlab{} kann eine Variable auf der Kommandozeile, in einem Skript
oder einer Funktion an beliebiger Stelle erzeugt werden. Listing
\ref{varListing1} zeigt zwei M\"oglichkeiten dies zu tun:
\begin{lstlisting}[label=varListing1, caption=Erzeugen von Variablen.]
\begin{lstlisting}[label=varListing1, caption={Erzeugen von Variablen.}]
>> y = []
y =
[]
@@ -77,7 +77,7 @@ Variablen diesen Datentyp.
Nat\"urlich kann mit den Variablen auch gearbeitet, bzw. gerechnet
werden. \matlab{} kennt alle normalen arithmetischen Operatoren wie
\code{+}, \code{-}, \code{*} und \code{/}. Die Potenz wird \"uber das
Dachsymbol \code{\^} dargestellt. Listing \ref{varListing3} zeigt, wie sie
Dachsymbol \code{\^{}} dargestellt. Listing \ref{varListing3} zeigt, wie sie
benutzt werden.
\begin{lstlisting}[label=varListing3, caption={Rechnen mit Variablen.}]
@@ -324,7 +324,7 @@ Element gleichzeitig zuzugreifen.
\begin{exercise}{vectorsize.m}{vectorsize.out}
Der R\"uckgabewert von \code{size(a)} ist wieder ein Vektor der
L\"ange 2. Wie k\"onnte man also die Gr\"o{\ss}e von \code{a} in der
L\"ange 2. Wie k\"onnte man also die Gr\"o{\ss}e von \varcode{a} in der
zweiten Dimension herausfinden?
\end{exercise}
@@ -365,8 +365,8 @@ problemlos m\"oglich. Bei der Multiplikation (Zeile 10), der Division
(Zeile 14) und auch der Potenzierung mu{\ss} mit vorangestellem '.'
klar gemacht werden, dass es sich um eine \emph{elementweise}
Verarbeitung handeln soll. F\"ur diese elementweisen Operationen kennt
\matlab{} die Operatoren \code{.*}, \code{./} und \code{.\^}. Die
einfachen Operatoren \code{*}, \code{/} und \code{\^} sind mit den
\matlab{} die Operatoren \code{.*}, \code{./} und \code{.\^{}}. Die
einfachen Operatoren \code{*}, \code{/} und \code{\^{}} sind mit den
entsprechenden Matrixoperationen aus der linearen Algebrar belegt
(Box \ref{matrixmultiplication}).
@@ -806,16 +806,16 @@ nur die Werte an den Stellen zur\"uck, an denen der logische Vektor
\end{lstlisting}
\begin{exercise}{logicalVector.m}{logicalVector.out}
Erstelle einen Vektor x mit den Werten 0-10.
Erstelle einen Vektor \varcode{x} mit den Werten 0--10.
\begin{enumerate}
\item F\"uhre aus: \code{y = x < 5}
\item Gib den Inhalt von \code{y} auf dem Bildschirm aus.
\item Was ist der Datentyp von \code{y}?
\item Gibt alle Elemente aus x zur\"uck, die kleiner als 5 sind.
\item F\"uhre aus: \varcode{y = x < 5}
\item Gib den Inhalt von \varcode{y} auf dem Bildschirm aus.
\item Was ist der Datentyp von \varcode{y}?
\item Gibt alle Elemente aus \varcode{x} zur\"uck, die kleiner als 5 sind.
\end{enumerate}
Zeile 12 in der L\"osung kann wie folgt gelesen werden: Gib mir die Elemente
von (\code{x}) an den Stellen, an denen \code{x < 5} wahr ist.
von (\varcode{x}) an den Stellen, an denen \varcode{x < 5} wahr ist.
\end{exercise}
Logisches Indizieren wurde oben so benutzt, dass die Auswahl
@@ -842,13 +842,13 @@ bestimmten Zeitraums ausw\"ahlen m\"ochte (Abbildung
jeweiligen Messwerten.
\begin{itemize}
\item Erstelle einen Vektor \code{t = 0:0.001:10;}, der z.B. die Zeit
\item Erstelle einen Vektor \varcode{t = 0:0.001:10;}, der z.B. die Zeit
repr\"asentiert.
\item Erstelle einen zweiten Vektor \code{x} mit Zufallszahlen der
die gleiche L\"ange hat wie \code{t}. Die Werte darin stellen
Messungen zu den Zeitpunkten in \code{t} dar.
\item Erstelle einen zweiten Vektor \varcode{x} mit Zufallszahlen der
die gleiche L\"ange hat wie \varcode{t}. Die Werte darin stellen
Messungen zu den Zeitpunkten in \varcode{t} dar.
\item Benutze das logische Indizieren um die Messwerte
auszuw\"ahlen, die dem zeitlichen Abschnitt 5-6\,s entsprechen.
auszuw\"ahlen, die dem zeitlichen Abschnitt 5--6\,s entsprechen.
\end{itemize}
\end{exercise}
@@ -925,7 +925,7 @@ ausgef\"uhrt werden. Die Schleife wird durch das Schl\"usselwort
\code{end} beendet. Listing \ref{looplisting} zeigt das
Grundger\"ust einer for-Schleife.
\begin{lstlisting}[caption={Beispiel einer \code{for} Schleife. Die Laufvariable \code{x} nimmt mit jeder Iteration der Schleife einen Wert des Vektors \code{1:5} an.}, label=looplisting]
\begin{lstlisting}[caption={Beispiel einer \varcode{for} Schleife. Die Laufvariable \varcode{x} nimmt mit jeder Iteration der Schleife einen Wert des Vektors \varcode{1:5} an.}, label=looplisting]
for x = 1:5
% ... etwas sinnvolles mit x ...
end
@@ -939,7 +939,7 @@ end
\end{exercise}
\subsubsection{Die \code{while} -- Schleife}
\subsubsection{Die \varcode{while} -- Schleife}
Eine weiterer Schleifentyp, der weniger h\"aufig eingesetzt wird, ist
die \code{while}-Schleife. Auch sie hat ihre Entsprechungen in fast
@@ -952,7 +952,7 @@ Schleifenk\"orper ausgef\"uhrt. Die Schleife wird mit dem
Schl\"usselwort \code{end} beendet.
\begin{lstlisting}[caption={Grundstruktur einer \code{while} Schleife.}, label=whileloop]
\begin{lstlisting}[caption={Grundstruktur einer \varcode{while} Schleife.}, label=whileloop]
while x == true
% fuehre diesen sinnvollen code aus ...
end
@@ -971,7 +971,7 @@ end
\end{exercise}
\subsubsection{Vergleich \code{for} -- und \code{while}--Schleife}
\subsubsection{Vergleich \varcode{for} -- und \varcode{while}--Schleife}
\begin{itemize}
\item Beide f\"uhren den Code im Schleifenk\"orper iterativ aus.
\item Der K\"orper einer \code{for} Schleife wird mindestens 1 mal
@@ -994,7 +994,7 @@ Bedingte Anweisungen und Verzweigungen sind Kontrollstrukturen, die
regeln, dass der in ihnen eingeschlossene Programmcode nur unter
bestimmten Bedingungen ausgef\"uhrt wird.
\subsubsection{Die \code{if} -- Anweisung}
\subsubsection{Die \varcode{if} -- Anweisung}
Am h\"aufigsten genutzter Vertreter ist die \code{if} -
Anweisung. Sie wird genutzt um Programmcode nur unter bestimmten
@@ -1012,7 +1012,7 @@ beendet. Listing \ref{ifelselisting} zeigt den Aufbau einer
\code{if} - Anweisung.
\begin{lstlisting}[label=ifelselisting, caption={Grundger\"ust einer \code{if} Anweisung.}]
\begin{lstlisting}[label=ifelselisting, caption={Grundger\"ust einer \varcode{if} Anweisung.}]
if x < y
% fuehre diesen code aus
elseif x > y
@@ -1032,7 +1032,7 @@ end
\end{enumerate}
\end{exercise}
\subsubsection{Die \code{switch} -- Verzweigung}
\subsubsection{Die \varcode{switch} -- Verzweigung}
Die \code{switch} Verzweigung wird eingesetzt wenn mehrere F\"alle
auftreten k\"onnen, die einer unterschiedlichen Behandlung bed\"urfen.
@@ -1049,7 +1049,7 @@ F\"alle behandelt werden. Die \code{switch} Anweisung wird mit
\code{end} beendet (z.B. in Listing \ref{switchlisting}).
\begin{lstlisting}[label=switchlisting, caption={Grundger\"ust einer \code{switch} Anweisung.}]
\begin{lstlisting}[label=switchlisting, caption={Grundger\"ust einer \varcode{switch} Anweisung.}]
mynumber = input('Enter a number:');
switch mynumber
case -1
@@ -1065,7 +1065,7 @@ Wichtig ist hier, dass in jedem \code{case} auf Gleichheit der
switch-Anweisung und der case-Anweisung getestet wird.
\subsubsection{Vergleich \code{if} -- Anweisung und \code{switch} -- Verzweigung}
\subsubsection{Vergleich \varcode{if} -- Anweisung und \varcode{switch} -- Verzweigung}
\begin{itemize}
\item Mit der \code{if} Anweisung k\"onnen beliebige F\"alle
unterschieden und entsprechender Code ausgef\"uhrt werden.
@@ -1085,7 +1085,7 @@ werden, werden die Schl\"usselworte \code{break} und
\code{continue} eingesetzt (Listing \ref{breakcontinuelisting}
zeigt, wie sie eingesetzt werden k\"onnen).
\begin{lstlisting}[caption={Einsatz der \code{continue} und \code{break} Schl\"usselworte um die Ausf\"uhrung von Code-Abschnitten in Schleifen zu \"uberspringen oder abzubrechen.}, label=breakcontinuelisting]
\begin{lstlisting}[caption={Einsatz der \varcode{continue} und \varcode{break} Schl\"usselworte um die Ausf\"uhrung von Code-Abschnitten in Schleifen zu \"uberspringen oder abzubrechen.}, label=breakcontinuelisting]
for x = 1:10
if(x > 2 & x < 5)
continue;