if, switch done

This commit is contained in:
Jan Grewe 2015-11-06 12:52:14 +01:00
parent f8e09400a2
commit 5b8ff9b59c
2 changed files with 113 additions and 4 deletions

20
programming/code/ifelse.m Normal file
View 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

View File

@ -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}