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
|
||||
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
|
||||
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
|
||||
Abschnitte wiederholt ausf\"uhren will.
|
||||
|
||||
\subsubsection{\textbf{for}- Schleife}
|
||||
\subsubsection{Die \textbf{for} --- Schleife}
|
||||
|
||||
Der am h\"aufigsten benutzte Vertreter der Schleifen ist die
|
||||
\textit{for-Schleife}. Sie besteht aus dem \textit{Schleifenkopf} und
|
||||
@ -867,12 +867,12 @@ end
|
||||
\end{exercise}
|
||||
|
||||
|
||||
\subsubsection{Die \textbf{while}-Schleife}
|
||||
\subsubsection{Die \textbf{while} --- Schleife}
|
||||
|
||||
Eine weiterer Schleifentyp, der weniger h\"aufig eingesetzt wird, ist
|
||||
die \textot{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 iterative
|
||||
auch hier der in der Schleife definierte Programmcode iterativ
|
||||
ausgef\"uhrt.
|
||||
|
||||
\begin{definition}
|
||||
@ -922,6 +922,95 @@ end
|
||||
|
||||
\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}
|
||||
|
||||
|
Reference in New Issue
Block a user