340 lines
7.9 KiB
TeX
340 lines
7.9 KiB
TeX
\documentclass{beamer}
|
|
\usepackage{xcolor}
|
|
\usepackage{listings}
|
|
\usepackage{pgf}
|
|
%\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps,pgfshade}
|
|
%\usepackage{multimedia}
|
|
|
|
\usepackage[english]{babel}
|
|
\usepackage{movie15}
|
|
\usepackage[latin1]{inputenc}
|
|
\usepackage{times}
|
|
\usepackage{amsmath}
|
|
\usepackage{bm}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage[scaled=.90]{helvet}
|
|
\usepackage{scalefnt}
|
|
\usepackage{tikz}
|
|
\usepackage{ textcomp }
|
|
\usepackage{soul}
|
|
\usepackage{hyperref}
|
|
\definecolor{lightblue}{rgb}{.7,.7,1.}
|
|
\definecolor{mygreen}{rgb}{0,1.,0}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\mode<presentation>
|
|
{
|
|
\usetheme{Singapore}
|
|
\setbeamercovered{opaque}
|
|
\usecolortheme{tuebingen}
|
|
\setbeamertemplate{navigation symbols}{}
|
|
\usefonttheme{default}
|
|
\useoutertheme{infolines}
|
|
% \useoutertheme{miniframes}
|
|
}
|
|
|
|
\AtBeginSection[]
|
|
{
|
|
\begin{frame}<beamer>
|
|
\begin{center}
|
|
\Huge \insertsectionhead
|
|
\end{center}
|
|
% \frametitle{\insertsectionhead}
|
|
% \tableofcontents[currentsection,hideothersubsections]
|
|
\end{frame}
|
|
}
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
|
|
|
|
\setbeamertemplate{blocks}[rounded][shadow=true]
|
|
|
|
\title[]{Scientific Computing -- Grundlagen der Programmierung }
|
|
\author[]{Jan Grewe\\Abteilung f\"ur Neuroethologie\\
|
|
Universit\"at T\"ubingen}
|
|
|
|
\institute[Wissenschaftliche Datenverarbeitung]{}
|
|
\date{03.10.2014 - 07.11.2014}
|
|
%\logo{\pgfuseimage{../../resources/UT_BM_Rot_RGB.pdf}}
|
|
|
|
\subject{Einf\"uhrung in wissenschaftliche Datenverarbeitung}
|
|
|
|
%%%%%%%%%% configuration for code
|
|
\lstset{
|
|
basicstyle=\ttfamily,
|
|
numbers=left,
|
|
showstringspaces=false,
|
|
language=Matlab,
|
|
commentstyle=\itshape\color{darkgray},
|
|
keywordstyle=\color{blue},
|
|
stringstyle=\color{green},
|
|
backgroundcolor=\color{blue!10},
|
|
breaklines=true,
|
|
breakautoindent=true,
|
|
columns=flexible,
|
|
frame=single,
|
|
captionpos=b,
|
|
xleftmargin=1em,
|
|
xrightmargin=1em,
|
|
aboveskip=10pt
|
|
}
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\newcommand{\mycite}[1]{
|
|
\begin{flushright}
|
|
\tiny \color{black!80} #1
|
|
\end{flushright}
|
|
}
|
|
|
|
\input{../../latex/environments.tex}
|
|
\makeatother
|
|
|
|
\begin{document}
|
|
|
|
\begin{frame}[plain]
|
|
\frametitle{}
|
|
\vspace{-1cm}
|
|
\titlepage % erzeugt Titelseite
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Grundlagen der Programmierung}
|
|
\framesubtitle{Themen Woche 1}
|
|
\begin{enumerate}
|
|
\item MATLAB Entwicklungsumgebung
|
|
\item Variablen und Datentypen
|
|
\item Vektoren und Matrizen
|
|
\item Boolsche Operationen
|
|
\item Was ist ein Programm
|
|
\item Kontrollstrukturen
|
|
\item Vom Problem zum Algorithmus
|
|
\item Skripte und Funktionen
|
|
\item Stil und Kommentare
|
|
\item Graphische Darstellung von Daten
|
|
\item Fortgeschrittene Datenstrukturen
|
|
\item String Parsing
|
|
\item Lesen und schreiben von Dateien, navigieren im Dateisystem
|
|
\end{enumerate}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Themen Woche 1}
|
|
\begin{figure}
|
|
\centering
|
|
\includegraphics[width=0.8\columnwidth]{./images/wueste}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Themen Woche 1}
|
|
\begin{figure}
|
|
\centering
|
|
\includegraphics[width=0.8\columnwidth]{./images/ski_wueste}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Grundlagen der Programmierung}
|
|
\frametitle{Tagesmen\"u}
|
|
\begin{enumerate}
|
|
\item [] Die MATLAB Entwicklungsumgebung \& Das Hilfesystem
|
|
\item Variablen und Datentypen
|
|
\item Skalare, Vektore und Matrizen
|
|
\item Boolsche Operatoren
|
|
\item Kontrollstrukturen
|
|
\end{enumerate}
|
|
\end{frame}
|
|
|
|
\begin{frame}[plain]
|
|
\huge{MATLAB IDE \& das Hilfesystem}
|
|
\end{frame}
|
|
|
|
\begin{frame}[plain]
|
|
\huge{1. Variablen}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Grundlagen der Programmierung}
|
|
\framesubtitle{Variablen}
|
|
\begin{figure}
|
|
\centering
|
|
\includegraphics[width=0.2\columnwidth]{./images/bucket.png}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Grundlagen der Programmierung}
|
|
\framesubtitle{Variablen}
|
|
\huge"Eine Variable ist ein Platz im Speicher."
|
|
\begin{figure}
|
|
\centering
|
|
\includegraphics[width=0.8\columnwidth]{./images/variable.pdf}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Variablen}
|
|
\framesubtitle{Datentypen}
|
|
\begin{itemize}
|
|
\item \textit{integer} - Ganze zahlen. Hier gibt es mehrere
|
|
Unterarten, die wir in Matlab weitestgehend ignorieren koennen.
|
|
\item \textit{double} - Flie{\ss}kommazahlen.
|
|
\item \textit{complex} - Komplexe Zahlen.
|
|
\item \textit{logical} - Bool'sche Werte, die als wahr
|
|
(\textit{true}) oder falsch (\textit{false}) interpretiert werden.
|
|
\item \textit{char} - ASCII Zeichen
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
\begin{frame}
|
|
\frametitle{Variablen}
|
|
\framesubtitle{Datentypen}
|
|
\only<1>{
|
|
\begin{figure}
|
|
\centering
|
|
\includegraphics[width=0.8\columnwidth]{./images/variable.pdf}
|
|
\end{figure}
|
|
}
|
|
\only<2>{
|
|
\begin{figure}
|
|
\centering
|
|
\includegraphics[width=0.8\columnwidth]{./images/variableB.pdf}
|
|
\end{figure}
|
|
}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Variablen}
|
|
\framesubtitle{Erzeugen von Variablen und Wertezuweisung}
|
|
\scriptsize
|
|
\begin{lstlisting}[label=varListing1]
|
|
>> y = []
|
|
y =
|
|
[]
|
|
>>
|
|
>> x = 38
|
|
x =
|
|
38
|
|
>>
|
|
\end{lstlisting}
|
|
\normalsize
|
|
\end{frame}
|
|
|
|
%\subsection{Calculations with variables}
|
|
\begin{frame}[fragile]
|
|
\frametitle{Variablen}
|
|
\framesubtitle{Rechnen mit Variablen}
|
|
\tiny
|
|
\begin{lstlisting}[label=varListing2]
|
|
>> x = 1;
|
|
>> x + 10
|
|
ans =
|
|
11
|
|
>>
|
|
>> x % x wurde nicht veraendert
|
|
ans =
|
|
1
|
|
>>
|
|
>> y = 2;
|
|
>>
|
|
>> x + y
|
|
ans =
|
|
3
|
|
>>
|
|
>> z = x + y
|
|
z =
|
|
3
|
|
>>
|
|
>> z = z * 5;
|
|
>> z
|
|
z =
|
|
15
|
|
\end{lstlisting}
|
|
\end{frame}
|
|
|
|
%\subsection{\"Ubungen}
|
|
\begin{frame}[fragile]
|
|
\frametitle{Variablen}
|
|
\framesubtitle{\"Ubungen}
|
|
\vspace{-0.25cm}
|
|
\begin{enumerate}
|
|
\item Erzeuge zwei Variablen \verb+a, b+ und weise ihnen
|
|
unterschiedliche Werte zu. Schlie{\ss}e die Zeilen mit einem
|
|
Semikolon ab.
|
|
\item Lasse die Werte der Variablen ausgeben.
|
|
\item F\"uhre einfache mathematische Operationen aus (Addition,
|
|
Subtraktion, etc.) Potenzierung erfolgt \"uber das Dach Symbol
|
|
\verb+^+). Stelle fest, ob sich der der urspruengliche Wert der
|
|
Variable ge\"andert hat.
|
|
\item Benuzte die Kommandozeile um herauszufinden, welche Variablen
|
|
es im Workspace gibt.
|
|
\item Finde in der Hilfe mehr Information \"uber das \verb+clear+ Kommando.
|
|
\item L\"osche eine Variable.
|
|
\item L\"osche alle \"ubrigen Variablen.
|
|
\item Berechne die Fakult\"at von 5 indem eine Variable \verb+x+
|
|
erzeugt wird und ihr der Wert 1 zugewiesen wird. In einzelenen
|
|
Schritten wird x jeweils das Ergebnis des vorherigen Schrittes
|
|
zugewiesen.
|
|
\end{enumerate}
|
|
\end{frame}
|
|
|
|
\begin{frame}[plain]
|
|
\huge{2. Vektoren und Matrizen}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\frametitle{Vektoren und Matrizen}
|
|
\framesubtitle{Skalare vs. Vektoren}
|
|
\begin{figure}
|
|
\centering
|
|
\includegraphics[width=0.8\columnwidth]{./images/scalarArray.pdf}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Vektoren und Matrizen}
|
|
\framesubtitle{Erzeugen von Vektoren}
|
|
\tiny
|
|
\begin{lstlisting}[label=arrayListing1]
|
|
>> a = [0 1 2 3 4 5 6 7 8 9] % a brute-force way to define a vector
|
|
a =
|
|
0 1 2 3 4 5 6 7 8 9
|
|
>>
|
|
>> b = (0:9) % a more convenient way
|
|
b =
|
|
0 1 2 3 4 5 6 7 8 9
|
|
>>
|
|
>> c = (0:2:10) % define a vector and fill it with number between 0
|
|
% and 10 in steps of 2
|
|
c =
|
|
0 2 4 6 8 10
|
|
\end{lstlisting}
|
|
\end{frame}
|
|
|
|
\begin{frame}[fragile]
|
|
\frametitle{Vektoren und Matrizen}
|
|
\framesubtitle{Spalten \& Zeilenvektoren}
|
|
\tiny
|
|
\begin{lstlisting}[label=arrayListing2]
|
|
>> a = [1 2 3 4 5 6 7 8 9 10] % create a row vector
|
|
a =
|
|
1 2 3 4 5 6 7 8 9 10
|
|
>>
|
|
>> b = [1; 2; 3; 4; 5] % a column vector
|
|
b =
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
>>
|
|
>> b = b' % transpose it to a row vector
|
|
b =
|
|
1 2 3 4 5
|
|
>>
|
|
\end{lstlisting}
|
|
\end{frame}
|
|
|
|
|
|
|
|
\end{document}
|