if, switch done
This commit is contained in:
parent
f8e09400a2
commit
5b8ff9b59c
20
programming/code/ifelse.m
Normal file
20
programming/code/ifelse.m
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
x = rand(1); % eine einzelne Zufallszahl
|
||||||
|
if x < 0.5
|
||||||
|
disp('x is less than 0.5');
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
if x < 0.5
|
||||||
|
disp('x is less than 0.5!');
|
||||||
|
else
|
||||||
|
disp('x is greater than or equal to 0.5!')
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
if x < 0.5
|
||||||
|
disp('x is less than 0.5!');
|
||||||
|
elseif x < 0.75
|
||||||
|
disp('x is greater than 0.5 but less than 0.75!');
|
||||||
|
else
|
||||||
|
disp('x is greater than or equal to 0.75!')
|
||||||
|
end
|
@ -796,7 +796,7 @@ Bedeutung sind hier zwei Strukturen:
|
|||||||
|
|
||||||
Schleifen werden gebraucht um wiederholte Ausf\"uhrung desselben Codes
|
Schleifen werden gebraucht um wiederholte Ausf\"uhrung desselben Codes
|
||||||
zu vereinfachen. In einer \"Ubung wurde die Fakult\"at von 5 wie in
|
zu vereinfachen. In einer \"Ubung wurde die Fakult\"at von 5 wie in
|
||||||
Listing \ref{facultylisting1} berechnet:
|
Listing \ref{facultylisting} berechnet:
|
||||||
|
|
||||||
\begin{lstlisting}[caption={Berechnung der Fakult\"at von 5 in f\"unf
|
\begin{lstlisting}[caption={Berechnung der Fakult\"at von 5 in f\"unf
|
||||||
Schritten}, label=facultylisting]
|
Schritten}, label=facultylisting]
|
||||||
@ -836,7 +836,7 @@ Alle Programmiersprachen bieten zur L\"osung dieses Problems die
|
|||||||
Schleifen. Eine Schleife wird immer dann eingesetzt, wenn man
|
Schleifen. Eine Schleife wird immer dann eingesetzt, wenn man
|
||||||
Abschnitte wiederholt ausf\"uhren will.
|
Abschnitte wiederholt ausf\"uhren will.
|
||||||
|
|
||||||
\subsubsection{\textbf{for}- Schleife}
|
\subsubsection{Die \textbf{for} --- Schleife}
|
||||||
|
|
||||||
Der am h\"aufigsten benutzte Vertreter der Schleifen ist die
|
Der am h\"aufigsten benutzte Vertreter der Schleifen ist die
|
||||||
\textit{for-Schleife}. Sie besteht aus dem \textit{Schleifenkopf} und
|
\textit{for-Schleife}. Sie besteht aus dem \textit{Schleifenkopf} und
|
||||||
@ -867,12 +867,12 @@ end
|
|||||||
\end{exercise}
|
\end{exercise}
|
||||||
|
|
||||||
|
|
||||||
\subsubsection{Die \textbf{while}-Schleife}
|
\subsubsection{Die \textbf{while} --- Schleife}
|
||||||
|
|
||||||
Eine weiterer Schleifentyp, der weniger h\"aufig eingesetzt wird, ist
|
Eine weiterer Schleifentyp, der weniger h\"aufig eingesetzt wird, ist
|
||||||
die \textot{while}-Schleife. Auch sie hat ihre Entsprechungen in fast
|
die \textot{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 iterative
|
auch hier der in der Schleife definierte Programmcode iterativ
|
||||||
ausgef\"uhrt.
|
ausgef\"uhrt.
|
||||||
|
|
||||||
\begin{definition}
|
\begin{definition}
|
||||||
@ -922,6 +922,95 @@ end
|
|||||||
|
|
||||||
\subsection{Bedingte Anweisungen und Verzweigungen}
|
\subsection{Bedingte Anweisungen und Verzweigungen}
|
||||||
|
|
||||||
|
Bedingte Anweisungen und Verzweigungen sind Kontrollstrukturen, die
|
||||||
|
regeln, dass der in ihnen eingeschlossene Programmcode nur unter
|
||||||
|
bestimmten Bedingungen ausgef\"uhrt wird.
|
||||||
|
|
||||||
|
\subsubsection{Die if --- Anweisung}
|
||||||
|
|
||||||
|
Am h\"aufigsten genutzter Vertreter ist die \textbf{if} -
|
||||||
|
Anweisung. Sie Wird genutzt um Programmcode nur unter bestimmten
|
||||||
|
Bedingungen auszuf\"uhren.
|
||||||
|
\begin{definition}
|
||||||
|
Der Kopf der if - Anweisung beginnt mit dem Schl\"usselwort
|
||||||
|
\textbf{if} welches von einem \underline{Booleschen Ausdruck}
|
||||||
|
gefolgt wird. Wenn dieser zu \textbf{true} ausgewertet werden kann,
|
||||||
|
wird der Code im K\"orper der Anweisung ausgef\"uhrt. Optional
|
||||||
|
k\"onnen weitere Bedingungen mit dem Schl\"usselwort \textbf{elseif}
|
||||||
|
folgen. Ebenfalls optional ist die Verwendung eines finalen
|
||||||
|
\textbf{else} Falls. Dieser wird immer dann ausgef\"uhrt wenn alle
|
||||||
|
vorherigen Bedingungen nicht erf\"ullt werden. Die \code{if}
|
||||||
|
Anweisung wird mit \textbf{end} beendet. Listing \ref{ifelselisting}
|
||||||
|
zeigt den Aufbau einer if-Anweisung.
|
||||||
|
\end{definition}
|
||||||
|
|
||||||
|
\begin{lstlisting}[label=ifelselisting, caption={Grundger\"ust einer \textbf{if} Anweisung.}]
|
||||||
|
if x < y
|
||||||
|
% fuehre diesen code aus
|
||||||
|
elseif x > y
|
||||||
|
% etwas anderes soll getan werden
|
||||||
|
else
|
||||||
|
% wenn x == y wieder etwas anderes
|
||||||
|
end
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
\begin{exercise}{ifelse.m}{}
|
||||||
|
Ziehe eine Zufallszahl und \"uberpr\"ufe mit einer geegnet \textbf{if} Anweisung, ob sie:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item ... kleiner als 0.5 ist.
|
||||||
|
\item ... kleiner oder gr\"o{\ss}er-gleich 0.5 ist.
|
||||||
|
\item ... kleiner als 0.5, gr\"o{\ss}er oder gleich 0.5 aber kleiner
|
||||||
|
als 0.75 ist oder gr\"o{\ss}er oder gleich 0.75 ist.
|
||||||
|
\end{enumerate}
|
||||||
|
\end{execise}
|
||||||
|
|
||||||
|
\subsubsection{Die \code{switch} - Verzweigung}
|
||||||
|
|
||||||
|
Die \textbf{switch} Verzweigung Wird eingesetzt wenn mehrere F\"alle
|
||||||
|
auftreten k\"onnen, die einer unterschiedlichen Behandlung bed\"urfen.
|
||||||
|
|
||||||
|
\begin{definition}
|
||||||
|
Wird mit dem Schl\"usselwort \textbf{switch} begonnen, gefolgt von
|
||||||
|
der \textit{switch Anweisung} (Zahl oder String). Jeder Fall auf den
|
||||||
|
die Anweisung \"uberpr\"ft werden soll wird mit dem Schl\"usselwort
|
||||||
|
\textbf{case} eingeleitet. Diese wird gefolgt von der \textit{case
|
||||||
|
Anweisung} welche definiert gegen welchen Fall auf
|
||||||
|
\underline{Gleichheit} getestet wird. F\"ur jeden Fall wird der
|
||||||
|
Programmcode angegeben, der ausgef\"uhrt werden soll Optional
|
||||||
|
k\"onnen mit dem Schl\"usselwort \textbf{otherwise} alle nicht
|
||||||
|
explizit genannten F\"alle behandelt werden. Die \code{switch}
|
||||||
|
Anweisung wird mit \textbf{end} beendet (z.B. in Listing
|
||||||
|
\ref{switchlisting}).
|
||||||
|
\end{definition}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{lstlisting}[label=switchlisting, caption={Grundger\"ust einer \textbf{switch} Anweisung.}]
|
||||||
|
mynumber = input('Enter a number:');
|
||||||
|
switch mynumber
|
||||||
|
case -1
|
||||||
|
disp('negative eins');
|
||||||
|
case 1
|
||||||
|
disp('positive eins');
|
||||||
|
otherwise
|
||||||
|
disp('etwas anderes');
|
||||||
|
end
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Wichtig ist hier, dass in jedem \textbf{case} auf \underline{Gleichheit} der
|
||||||
|
switch-Anweisung und der case-Anweisung getestet wird.
|
||||||
|
|
||||||
|
|
||||||
|
\subsubsection{Vergleich if - Anweisung und switch Verzweigung}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Mit der \code{if} Anweisung k\"onnen beliebige F\"alle
|
||||||
|
unterschieden und entsprechender code ausgef\"uhrt werden.
|
||||||
|
\item Die \code{switch} Anweisung leistet \"ahnliches allerdings wird in
|
||||||
|
jedem Fall auf Gleichheit getestet.
|
||||||
|
\item Die \code{switch} Anweisung ist etwas kompakter, wenn viele F\"alle
|
||||||
|
behandelt werden m\"ussen.
|
||||||
|
\item Die \code{switch} Anweisung wird deutlich seltener benutzt und
|
||||||
|
kann immer durch eine \code{if} Anweisung erstezt werden.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
\section{Skripte und Funktionen}
|
\section{Skripte und Funktionen}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user