[lecture] scripts and functions finished
This commit is contained in:
parent
1746143fa4
commit
51afc62ff4
@ -52,10 +52,10 @@
|
|||||||
Universit\"at T\"ubingen}
|
Universit\"at T\"ubingen}
|
||||||
|
|
||||||
\institute[Wissenschaftliche Datenverarbeitung]{}
|
\institute[Wissenschaftliche Datenverarbeitung]{}
|
||||||
\date{03.10.2014 - 07.11.2014}
|
\date{12.10.2015 - 06.11.2015}
|
||||||
%\logo{\pgfuseimage{../../resources/UT_BM_Rot_RGB.pdf}}
|
%\logo{\pgfuseimage{../../resources/UT_BM_Rot_RGB.pdf}}
|
||||||
|
|
||||||
\subject{Einf\"uhrung in wissenschaftliche Datenverarbeitung}
|
\subject{Einf\"uhrung in die wissenschaftliche Datenverarbeitung}
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
\titlegraphic{
|
\titlegraphic{
|
||||||
\includegraphics[width=0.5\linewidth]{../../resources/UT_WBMW_Rot_RGB}
|
\includegraphics[width=0.5\linewidth]{../../resources/UT_WBMW_Rot_RGB}
|
||||||
@ -86,6 +86,8 @@
|
|||||||
\end{flushright}
|
\end{flushright}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
\newcommand{\code}[1]{\texttt{#1}}
|
||||||
|
|
||||||
\input{../../latex/environments.tex}
|
\input{../../latex/environments.tex}
|
||||||
\makeatother
|
\makeatother
|
||||||
|
|
||||||
@ -116,7 +118,7 @@
|
|||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Was ist ein Program?
|
\item Was ist ein Program?
|
||||||
\item Skripte und Funktionen
|
\item Skripte und Funktionen
|
||||||
\item G\"ultigkeitsbereiche
|
\item Programmierstil
|
||||||
\item Vom Problem zum Algorithmus
|
\item Vom Problem zum Algorithmus
|
||||||
\item \"Ubungen, \"Ubungen, \"Ubungen.
|
\item \"Ubungen, \"Ubungen, \"Ubungen.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
@ -140,7 +142,7 @@
|
|||||||
\end{itemize}\pause
|
\end{itemize}\pause
|
||||||
Wenn es zum Leben erweckt wird...
|
Wenn es zum Leben erweckt wird...
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item ... wird es Zeile fuer Zeile von oben nach unten ausgef\"uhrt.
|
\item ... wird es Zeile f\"r Zeile von oben nach unten ausgef\"uhrt.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
@ -154,7 +156,8 @@
|
|||||||
\item Funktionen
|
\item Funktionen
|
||||||
\item Objekte (werden wir ignorieren)
|
\item Objekte (werden wir ignorieren)
|
||||||
\end{enumerate}\pause
|
\end{enumerate}\pause
|
||||||
\item Alle werden in sogenannte m-files gespeichert (z.B. \textit{meinProgramm.m}).
|
\item Alle werden in sogenannte m-files gespeichert
|
||||||
|
(z.B. \textit{meinProgramm.m}).
|
||||||
\item K\"onnen dann von der Kommandozeile aufgerufen werden.
|
\item K\"onnen dann von der Kommandozeile aufgerufen werden.
|
||||||
\item Programme erh\"ohen die Wiederverwertbarkeit von Programmcode.\pause
|
\item Programme erh\"ohen die Wiederverwertbarkeit von Programmcode.\pause
|
||||||
\item Programme k\"onnen andere Programme aufrufen.
|
\item Programme k\"onnen andere Programme aufrufen.
|
||||||
@ -190,14 +193,15 @@
|
|||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item \"Offnet den Editor und schreibt ein Skript, das vier Sinus
|
\item \"Offnet den Editor und schreibt ein Skript, das vier Sinus
|
||||||
mit den Amplituden \code{amplitudes = [0.25, 0.5, 1.0, 2.0]} und
|
mit den Amplituden \code{amplitudes = [0.25, 0.5, 1.0, 2.0]} und
|
||||||
der Frequenz 2\,Hz in einen Graphen plottet. Benutzt eine \verb+for+
|
der Frequenz 2\,Hz in einen Graphen plottet (\code{sinus = sin(x *
|
||||||
Schleife um die Amplituden abzuarbeiten (\verb+hold on+ um Linien
|
frequency)* amplitude;}). Benutzt eine \verb+for+ Schleife um
|
||||||
|
die Amplituden abzuarbeiten (\verb+hold on+ um Linien
|
||||||
\"ubereinander zu plotten).
|
\"ubereinander zu plotten).
|
||||||
\item Speichert das Skript und f\"uhrt es von der Kommandozeile aus.
|
\item Speichert das Skript und f\"uhrt es von der Kommandozeile aus.
|
||||||
\item Erzeuge ein zweites Skript, das nun das erste aufruft aber bei
|
\item Erzeuge ein zweites Skript, das nun das erste aufruft aber bei
|
||||||
jedem Aufruf die Frequenz neu setzt. Benutzt eine \verb+for+
|
jedem Aufruf die Frequenz (Variable \code{frequency}) neu
|
||||||
Schleife um folgende Frequenzen abzuarbeiten
|
setzt. Benutzt eine \verb+for+ Schleife um folgende Frequenzen
|
||||||
\code{frequencies = [2.0, 4.0, 6.0] %Hz}.
|
abzuarbeiten \code{frequencies = [2.0, 4.0, 6.0]}.
|
||||||
\item Speichert und ruft dieses Skript \"uber die Kommandozeile
|
\item Speichert und ruft dieses Skript \"uber die Kommandozeile
|
||||||
auf.
|
auf.
|
||||||
\item Was ist geplottet, passt es zu den Erwartungen?
|
\item Was ist geplottet, passt es zu den Erwartungen?
|
||||||
@ -205,20 +209,76 @@
|
|||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Skripte und Funktionen} \framesubtitle{Funktionen}
|
\frametitle{Skripte und Funktionen}
|
||||||
Vorherige \"Ubung sollte gezeigt haben, dass die Verwendung von
|
\framesubtitle{Skripte}
|
||||||
globalen Variablen gef\"ahrlich sein kann.
|
Vorherige \"Ubung sollte gezeigt haben, dass ...
|
||||||
Wie l\"ost man dieses Problem?\\
|
\begin{enumerate}
|
||||||
|
\item die Verwendung von globalen Variablen gef\"ahrlich sein kann.
|
||||||
|
\item jede Variable, die in einem aufgerufenen Skript definiert wird
|
||||||
|
im globalen Workspace sichtbar wird.
|
||||||
|
\end{enumerate}
|
||||||
|
\large{Wie l\"ost man dieses Problem?}\\
|
||||||
\vspace{3em} \huge{Funktionen!}
|
\vspace{3em} \huge{Funktionen!}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[fragile]
|
\begin{frame}[fragile]
|
||||||
\frametitle{Funktionen} \framesubtitle{Funktionen}
|
\frametitle{Skripte und Funktionen}
|
||||||
Funktionen haben ihren eingenen G\"ultigkeitsbereich. Variablen im
|
\framesubtitle{Funktionen}
|
||||||
\textit{Workspace} sind ohne Konsequenzen f\"ur die Funktion.
|
Definition:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Eine Funktion in Matlab wird \"ahnlich zu einer mathematischen
|
||||||
|
Funktion definiert:\\
|
||||||
|
\begin{center}
|
||||||
|
\Large$y = f(x)$\normalsize\pause
|
||||||
|
\end{center}
|
||||||
|
\end{itemize}
|
||||||
|
\tiny
|
||||||
|
\begin{lstlisting}
|
||||||
|
function y = function_name(arg_1, arg_2)
|
||||||
|
% ^ ^ ^
|
||||||
|
% Rueckgabewert Argument_1 Argument_2
|
||||||
|
end
|
||||||
|
\end{lstlisting}
|
||||||
|
\normalsize
|
||||||
|
\begin{itemize}
|
||||||
|
\item Ein Funktion beginnt mit dem Schl\"usselwort \textbf{function}
|
||||||
|
gefolgt von den R\"uckgabewerten, dem Funktionsnamen und (in
|
||||||
|
Klammern) den Argumenten.
|
||||||
|
\item Auf den Funktionskopf folgt der auszuf\"uhrende Programmcode
|
||||||
|
im Funktionsk\"orper.
|
||||||
|
\item Die Funktionsdefinition wird mit \textbf{end} abgeschlossen.
|
||||||
|
\item Eine Funktion ist in einer eigenen Datei definiert.
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Skripte und Funktionen}
|
||||||
|
\framesubtitle{Funktionen}
|
||||||
|
Was erreicht man damit?
|
||||||
|
\begin{itemize}
|
||||||
|
\item Kapseln von Programmcode, der f\"ur sich eine Aufgabe l\"ost.
|
||||||
|
\item Definierte Schnittstelle.
|
||||||
|
\item Eigener G\"ultigkeitsbereich:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Variablen im Workspace sind in der Funktion \textbf{nicht} sichtbar.
|
||||||
|
\item Variablen, die in der Funktion definiert werden erscheinen
|
||||||
|
\textbf{nicht} im Workspace.
|
||||||
|
\end{itemize}
|
||||||
|
\item Erhöht die Wiederverwendbarkeit von Programmcode.
|
||||||
|
\item Erh\"oht die Lesbarkeit von Programmen, da sie
|
||||||
|
\"ubersichtlicher werden.
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{frame}[fragile]
|
||||||
|
\frametitle{Skripte und Funktionen}
|
||||||
|
\framesubtitle{Funktionen}
|
||||||
|
Eine Beispielfunktion, die eine Reihe Sinus plottet.
|
||||||
\footnotesize
|
\footnotesize
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
function plot_sinus_mit_amplituden() % Funktionskopf
|
function meine_erste_funktion() % Funktionskopf
|
||||||
x = (0:0.01:2*pi); % hier faengt der Funktionskoerper an
|
x = (0:0.01:2*pi); % hier faengt der Funktionskoerper an
|
||||||
frequenz = 1.0;
|
frequenz = 1.0;
|
||||||
amplituden = [0.25 0.5 0.75 1.0 1.25];
|
amplituden = [0.25 0.5 0.75 1.0 1.25];
|
||||||
@ -228,58 +288,221 @@ function plot_sinus_mit_amplituden() % Funktionskopf
|
|||||||
plot(x, y)
|
plot(x, y)
|
||||||
hold on;
|
hold on;
|
||||||
end
|
end
|
||||||
\end{lstlisting}\pause
|
\end{lstlisting}
|
||||||
Ist das eine gute Funktion?
|
\begin{center}
|
||||||
|
\large{\textbf{Ist das eine gute Funktion?}}
|
||||||
|
\end{center}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}[fragile]
|
||||||
|
\frametitle{Skripte und Funktionen}
|
||||||
|
\framesubtitle{Funktionen}
|
||||||
|
\tiny
|
||||||
|
\begin{lstlisting}
|
||||||
|
function meine_erste_funktion()
|
||||||
|
x = (0:0.01:2*pi);
|
||||||
|
frequenz = 1.0;
|
||||||
|
amplituden = [0.25 0.5 0.75 1.0 1.25];
|
||||||
|
|
||||||
|
for i = 1:length(amplituden)
|
||||||
|
y = sin(frequenz * x) * amplituden(i);
|
||||||
|
plot(x, y)
|
||||||
|
hold on;
|
||||||
|
end
|
||||||
|
\end{lstlisting}
|
||||||
|
\normalsize
|
||||||
|
Probleme mit dieser Funktion:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Der Name ist nicht aussagekr\"aftig.
|
||||||
|
\item Die Funktion ist f\"ur genau einen Zweck gut.
|
||||||
|
\item Was sie tut, ist festgelegt und kann von au{\ss}en nicht
|
||||||
|
beeinflusst werden.
|
||||||
|
\item Sie tut 2 Dinge: Sinus berechnen \textbf{und} graphisch darstellen.
|
||||||
|
\item Es ist nicht (einfach) m\"oglich an die berechneten Daten zu
|
||||||
|
kommen.
|
||||||
|
\item Keinerlei Dokumentation. Ich muss den code lesen um zu
|
||||||
|
rekonstruieren, was sie tut.
|
||||||
|
\end{itemize}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}[fragile]
|
||||||
|
\frametitle{Skripte und Funktionen} \framesubtitle{Funktionen }
|
||||||
|
\huge{Wie kann die Funktion besser gemacht werden?}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}[fragile]
|
||||||
|
\frametitle{Skripte und Funktionen}
|
||||||
|
\framesubtitle{Funktionen}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Identifizieren des Problems.
|
||||||
|
\item Aufteilen in Teilprobleme.
|
||||||
|
\item Gute Namen finden.
|
||||||
|
\item Definieren der Schnittstellen --- Was muss die Funktion
|
||||||
|
wissen? Was möchte ich von ihr haben?
|
||||||
|
\item Daten zur\"uck geben (R\"uckgabewerte definieren).
|
||||||
|
\end{enumerate}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}[fragile]
|
||||||
|
\frametitle{Skripte und Funktionen}
|
||||||
|
\framesubtitle{Funktionen}
|
||||||
|
\textbf{\large{Drei Teilprobleme:}}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Berechnen der \textbf{einzelnen} Sinus.
|
||||||
|
\item Plotten der Daten.
|
||||||
|
\item Koordinieren von Berechung und Darstellung.
|
||||||
|
\end{enumerate}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}[fragile]
|
||||||
|
\frametitle{Skripte und Funktionen}
|
||||||
|
\framesubtitle{Funktionen}
|
||||||
|
\large{\textbf{1. Berechnen eines einzelnen Sinus:}}
|
||||||
|
\tiny
|
||||||
|
\begin{lstlisting}
|
||||||
|
function meine_erste_funktion()
|
||||||
|
x = (0:0.01:2*pi);
|
||||||
|
frequenz = 1.0;
|
||||||
|
amplituden = 1.0 1.25;
|
||||||
|
y = sin(frequenz * x) * amplitude;
|
||||||
|
end
|
||||||
|
\end{lstlisting}
|
||||||
|
\normalsize
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Namen ersetzten
|
||||||
|
\item Schnittstelle definieren: Was will ich von der Funktion?
|
||||||
|
Welche Information muss ich ihr geben?\pause
|
||||||
|
\begin{itemize}
|
||||||
|
\item Funktion muss wissen: Wie weit soll gerechnet werden? Welche
|
||||||
|
Aufl\"osung auf der x-Achse? Welche Frequenz? Welche Amplitude?
|
||||||
|
\item F\"ur einen Plot brauche ich die x- und die y-Werte. Diese
|
||||||
|
muss die Funktion zur\"uckgeben.
|
||||||
|
\end{itemize}
|
||||||
|
\end{enumerate}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[fragile]
|
\begin{frame}[fragile]
|
||||||
\frametitle{Funktionen}
|
\frametitle{Skripte und Funktionen}
|
||||||
\framesubtitle{Argumente und R\"uckgabewerte}
|
\framesubtitle{Funktionen}
|
||||||
Grundlegende Idee ist $y = f(x)$.\\
|
Namens\"anderung:
|
||||||
\"Ahnlich dazu kann man den Funktionskopf mit Argumenten und R\"uckgabewerten definieren
|
|
||||||
\footnotesize
|
\footnotesize
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
function y = plot_sinus(frequenz, amplitude)
|
function calculate_sinewave()
|
||||||
% ^ ^ ^
|
x = (0:0.01:2*pi);
|
||||||
% Rueckgabewert Argument_1 Argument_2
|
frequenz = 1.0;
|
||||||
\end{lstlisting}
|
amplituden = [0.25 0.5 0.75 1.0 1.25];
|
||||||
|
y = sin(frequenz * x) * amplituden(i);
|
||||||
|
end
|
||||||
|
\end{lstlisting}
|
||||||
|
\normalsize
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}[fragile]
|
||||||
|
\frametitle{Skripte und Funktionen}
|
||||||
|
\framesubtitle{Funktionen}
|
||||||
|
Argumente:
|
||||||
|
\footnotesize
|
||||||
|
\begin{lstlisting}
|
||||||
|
function calculate_sinewave(frequency, amplitude, x_max, x_step)
|
||||||
|
x = (0:x_step:x_max);
|
||||||
|
y = sin(frequency * x) * amplitude;
|
||||||
|
end
|
||||||
|
\end{lstlisting}
|
||||||
|
\normalsize
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[fragile]
|
\begin{frame}[fragile]
|
||||||
\frametitle{Funktionen}
|
\frametitle{Skripte und Funktionen}
|
||||||
\framesubtitle{Argumente und R\"uckgabewerte}
|
\framesubtitle{Funktionen}
|
||||||
Eine Funktion kann auch mehrere R\"uckgabewerte haben.
|
R\"uckgabewerte:
|
||||||
|
\tiny
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
function [y, z] = do_something(a, b)
|
function [x, y] = calculate_sinewave(frequency, amplitude, x_max, x_step)
|
||||||
y = a + b
|
x = (0:x_step:x_max);
|
||||||
z = a * b
|
y = sin(frequency * x) * amplitude;
|
||||||
\end{lstlisting}
|
end
|
||||||
\pause
|
\end{lstlisting}
|
||||||
\begin{itemize}
|
|
||||||
\item Alle R\"uckgabewerte m\"ussen in der Funktion definiert sein!\pause
|
|
||||||
\item Man kann auch mit variablen Anzahlen der Argumente und R\"uckgabewerte programmieren.\pause
|
|
||||||
\item Ist aber deutlich komplexer und fehleranf\"alliger.
|
|
||||||
\end{itemize}
|
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}[fragile]
|
\begin{frame}[fragile]
|
||||||
\frametitle{Skripte und Funktionen}
|
\frametitle{Skripte und Funktionen}
|
||||||
\framesubtitle{Programmierstil}
|
\framesubtitle{Funktionen}
|
||||||
Programmierstil ist:
|
\large{\textbf{2. Plotten einer einzelnen Schwingung:}}
|
||||||
|
\normalsize
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Die Namensgebung fuer Variablen und Konstanten.
|
\item Namen finden
|
||||||
\item Die Namensgebung von Skripten und Funktionen.
|
\item Schnittstelle definieren: Was will ich von der Funktion?
|
||||||
\item Die Verwendung von Einr\"uckungen und Leerzeilen um Bl\"ocke im Code hervorzuheben.
|
Welche Information muss ich ihr geben?\pause
|
||||||
\item Verwendung von Kommentaren und Hilfetexten.
|
\begin{itemize}
|
||||||
|
\item Funktion muss wissen: Welche Daten soll sie plotten? X-Werte,
|
||||||
|
y-Werte, einen Namen f\"ur die Legende?
|
||||||
|
\item Muss nichts zur\"uckgeben.
|
||||||
|
\end{itemize}
|
||||||
|
\end{enumerate}
|
||||||
|
\footnotesize
|
||||||
|
\begin{lstlisting}
|
||||||
|
function plot_sinewave(x_data, y_data, name)
|
||||||
|
plot(x_data, y_data, 'displayname', name)
|
||||||
|
end
|
||||||
|
\end{lstlisting}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}[fragile]
|
||||||
|
\frametitle{Skripte und Funktionen}
|
||||||
|
\framesubtitle{Funktionen}
|
||||||
|
\large{\textbf{3. Erstellen eines \textbf{Skriptes} zur Koordinierung:}}
|
||||||
|
\normalsize
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Namen finden
|
||||||
|
\item Definieren eins Vektors, f\"ur die Amplituden.
|
||||||
|
\item Definieren einer Variable f\"ur die Frequenz.
|
||||||
|
\item Definieren der Variablen f\"ur das Maximum und die
|
||||||
|
Schrittweite der x-Achse.
|
||||||
|
\item \"Offnen einer neuen Abbildung (\code{figure()}).
|
||||||
|
\item Setzen des \code{hold on}.
|
||||||
|
\item \code{for}-Schleife, die über die Amplituden iteriert, die
|
||||||
|
Sinus berechnen l\"asst und die Resultate an die Plot-Funktion
|
||||||
|
weiterreicht.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[fragile]
|
\begin{frame}[fragile]
|
||||||
\frametitle{Funktionen}
|
\frametitle{Skripte und Funktionen}
|
||||||
\framesubtitle{Zusammenfassung}
|
\framesubtitle{Funktionen}
|
||||||
|
Skript: \verb+plot_sinewaves.m+
|
||||||
|
\footnotesize
|
||||||
|
\begin{lstlisting}
|
||||||
|
amplitudes = 0.25:0.25:1.25;
|
||||||
|
frequency = 2;
|
||||||
|
x_max = 10 * pi;
|
||||||
|
x_step = 0.01;
|
||||||
|
|
||||||
|
figure()
|
||||||
|
hold on
|
||||||
|
|
||||||
|
for a = amplitudes
|
||||||
|
name = num2str(a);
|
||||||
|
[x_data, y_data] = calculate_sinewave(frequency, a, x_max, x_step);
|
||||||
|
plot_sinewave(x_data, y_data, name)
|
||||||
|
end
|
||||||
|
legend('show')
|
||||||
|
\end{lstlisting}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}[fragile]
|
||||||
|
\frametitle{Skripte und Funktionen}
|
||||||
|
\framesubtitle{Funktionen}
|
||||||
|
Aufaben:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Erweitert das Programm so, dass auch ein Satz von Frequenzen
|
||||||
|
benutzt wird.
|
||||||
|
\end{enumerate}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Skripte undFunktionen}
|
||||||
|
\framesubtitle{Funktionen --- Zusammenfassung}
|
||||||
Funktionen sind kleine Code Fragmente, die
|
Funktionen sind kleine Code Fragmente, die
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item ... genau eine Aufgabe erledigen.
|
\item ... genau eine Aufgabe erledigen.
|
||||||
@ -294,6 +517,18 @@ function [y, z] = do_something(a, b)
|
|||||||
\huge{3. Programmierstil}
|
\huge{3. Programmierstil}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Skripte und Funktionen}
|
||||||
|
\framesubtitle{Programmierstil}
|
||||||
|
Programmierstil ist:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Die Namensgebung fuer Variablen und Konstanten.
|
||||||
|
\item Die Namensgebung von Skripten und Funktionen.
|
||||||
|
\item Die Verwendung von Einr\"uckungen und Leerzeilen um Bl\"ocke im Code hervorzuheben.
|
||||||
|
\item Verwendung von Kommentaren und Hilfetexten.
|
||||||
|
\end{enumerate}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[fragile]
|
\begin{frame}[fragile]
|
||||||
\frametitle{Programmierstil}
|
\frametitle{Programmierstil}
|
||||||
\framesubtitle{Was soll das?}
|
\framesubtitle{Was soll das?}
|
||||||
@ -331,7 +566,7 @@ function [y, z] = do_something(a, b)
|
|||||||
\item Hilfetexte: Ein Problem; sie m\"ussen aktuell sein sonst sind
|
\item Hilfetexte: Ein Problem; sie m\"ussen aktuell sein sonst sind
|
||||||
sie sch\"adlicher als wenn sie gar nicht da w\"aren.
|
sie sch\"adlicher als wenn sie gar nicht da w\"aren.
|
||||||
\item Einr\"uckung ist Pflicht.
|
\item Einr\"uckung ist Pflicht.
|
||||||
\item Bl\"ocke im Code werden durch 1 Leerzeichen getrennt.
|
\item Bl\"ocke im Code werden durch 1 Leerzeile getrennt.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user