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