\documentclass[12pt,a4paper,pdftex]{exam}

\usepackage[german]{babel}
\usepackage{natbib}
\usepackage{graphicx}
\usepackage[small]{caption}
\usepackage{sidecap}
\usepackage{pslatex}
\usepackage{amsmath}
\usepackage{amssymb}
\setlength{\marginparwidth}{2cm}
\usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref}

%%%%% text size %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry}
\pagestyle{headandfoot}
\header{{\bfseries\large \"Ubung 4}}{{\bfseries\large Kontrollstrukturen}}{{\bfseries\large 08. November, 2016}}
\firstpagefooter{Dr. Jan Grewe}{Phone: 29 74588}{Email:
  jan.grewe@uni-tuebingen.de}
\runningfooter{}{\thepage}{}

\setlength{\baselineskip}{15pt}
\setlength{\parindent}{0.0cm}
\setlength{\parskip}{0.3cm}
\renewcommand{\baselinestretch}{1.15}

\newcommand{\code}[1]{\texttt{#1}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
\begin{document}

\vspace*{-6.5ex}
\begin{center}
  \textbf{\Large Einf\"uhrung in die wissenschaftliche Datenverarbeitung}\\[1ex]
  {\large Jan Grewe, Jan Benda}\\[-3ex]
  Abteilung Neuroethologie \hfill --- \hfill Institut f\"ur Neurobiologie \hfill --- \hfill \includegraphics[width=0.28\textwidth]{UT_WBMW_Black_RGB} \\
\end{center}

Die folgenden Aufgaben dienen der Wiederholung, \"Ubung und
Selbstkontrolle und sollten eigenst\"andig bearbeitet und gel\"ost
werden. Die L\"osung soll in Form eines einzelnen Skriptes (m-files)
im ILIAS hochgeladen werden. Jede Aufgabe sollte in einer eigenen
``Zelle'' gel\"ost sein. Die Zellen \textbf{m\"ussen} unabh\"angig
voneinander ausf\"uhrbar sein. Das Skript sollte nach dem Muster:
``control\_flow\_\{nachname\}.m'' benannt werden
(z.B. control\_flow\_mueller.m).

\begin{questions}
  \question Implementiere \code{for} Schleifen bei denen die Laufvariable:
  \begin{parts}
    \part ... von 0 bis 10 l\"auft. Gib den Wert der Laufvariable im
    Schleifenk\"orper aus.
    \part ... von 10 bis 0 l\"auft. Gib den Wert der Laufvariable aus.
    \part ... von 0 bis 1 in einer Schrittweite von 0.1 l\"auft. Gib
    die Laufvariable aus.
  \end{parts}

  \question Zugriff auf Elemente in Vektoren:
  \begin{parts}
    \part Definiere einen Vektor \code{x} mit Werten von 1:100.
    \part Benutze eine \code{for} Schleife um jedes Element von
    \code{x} auszugeben indem die Laufvariable zum indizieren benutzt wird.
    \part ... gleiches nur ohne eine Laufvariable zu nutzen.
  \end{parts}

  \question Erzeuge einen Vektor \verb+x+ mit 50 Zufallszahlen im
  Bereich 0 - 10.
  \begin{parts}
    \part Benutze eine Schleife um das arithmetische Mittel zu
    berechnen. Der Mittelwert ist definiert als:
    $\overline{x}=\frac{1}{n}\sum\limits_{i=0}^{n}x_i $.
    \part Benutze eine Schleife um die Standardabweichung zu
    bestimmen:
    $\sigma=\sqrt{\frac{1}{n}\sum\limits_{i=0}^{n}(x_i-\overline{x})^2}$).
    \part Suche in der MATLAB Hilfe nach Funktionen, die das f\"ur
    dich tun :-).
  \end{parts}

  \question Implementiere eine \code{while} Schleife
  \begin{parts}
    \part ... die 100 mal durchlaufen wird. Gib den aktuellen
    Durchlauf im Schleifenk\"orper aus.
    \part ... die endlos l\"auft. Sie kann mir \code{Strg + C}
    abgebrochen werden.
  \end{parts}
  
  \question Nutze eine endlose \code{while} Schleife um einzeln die
  Elemente eines Vektor der L\"ange 10 auszugeben.

  \question Benutze eine endlose \verb+while+ Schleife um so lange
  Zufallszahlen (\verb+randn+) zu ziehen, bis eine Zahl gr\"o{\ss}er
  1.33 gezogen wurde.
  \begin{parts}
    \part  Z\"ahle die Anzahl n\"otiger Versuche.
    \part Nuzte eine \code{for} Schleife um den vorherigen Test
    1000 mal laufen zu lassen. Merke Dir alle Anzahlen und berechne den
    Mittelwert davon.
    \part Plotte die Anzahl notwendiger Versuche. 
    \part Spiele mit der Schwelle, was passiert?
  \end{parts}

  \question Erstelle \verb+x+ einen Vektor mit 10 Zufallszahlen im
  Bereich 0:10.
  \begin{parts}
    \part Benutze eine \code{for} Schleife um all die Elemente zu
    loeschen (\code{x(index) = [];}), die kleiner als 5 sind.
    \part Loesche alle Elemente die kleiner als 5 und groesser als 2
    sind.
    \part Kann man das gleiche auch ohne eine Schleife erledigen?
  \end{parts}

  \question Teste den Zufallsgenerator! Dazu z\"ahle die Anzahl der
  Elemente, die durch folgende Grenzen getrennt werden [0.0, 0.2,
  0.4, 0.6, 0.8, 1.0]. Speichere die Ergebnisse in einem passenden
  Vektor. Nutze eine Schleife um 1000 Zufallszahlen mit
  \verb+rand()+ (siehe Hilfe) zu ziehen. Was waere die Erwartung,
  was kommt heraus?

  \question String parsing: Mitunter werden Dateinamen von
  Datens\"atzen benutzt um anzuzeigen, unter welchen Bedingungen die
  Daten gewonnen wurden. Man muss also den Dateinamen parsen und die
  f\"ur einen relevante Information herausfiltern.
  \begin{parts}
    \part Erstelle eine Variable
    \verb+filename = '2015-10-12_100Hz_1.25V.dat'+. Der Unterstrich
    ist offensichtlich das verwendete Trennzeichen.
    \part Benutze eine \verb+for+ Schleife um durch alle Zeichen zu
    laufen. Vergleiche jedes Zeichen mit dem Unterstrich und merke
    Dir die Positionen in einem Vektor.
    \part Benutze eine zweite Schleife um durch diesen
    Positionsvektor zu laufen und benutze die darin enthaltene
    Information um den \code{filename} in Teile zu schneiden.
    \part Gib die einzelnen Teile auf dem Bildschirm aus.
  \end{parts}

\end{questions}

\end{document}
