From c38e0c60a0f6cf02fc444c7be7373941ae84b7b2 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Wed, 7 Oct 2015 08:59:51 +0200 Subject: [PATCH] switch to exam package --- programming/exercises/control_flow.tex | 159 +++++++++++++------------ 1 file changed, 80 insertions(+), 79 deletions(-) diff --git a/programming/exercises/control_flow.tex b/programming/exercises/control_flow.tex index 08a4dfc..27e9b8b 100644 --- a/programming/exercises/control_flow.tex +++ b/programming/exercises/control_flow.tex @@ -1,8 +1,8 @@ -\documentclass[12pt,a4paper,pdftex]{article} +\documentclass[12pt,a4paper,pdftex]{exam} +\usepackage[german]{babel} \usepackage{natbib} \usepackage{graphicx} -\usepackage[margin=1.5in]{geometry} \usepackage[small]{caption} \usepackage{sidecap} \usepackage{pslatex} @@ -12,35 +12,29 @@ \usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref} %%%%% text size %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% letter : 8.5 x 11 in -\setlength{\headheight}{5mm} % default ~5mm -\setlength{\headsep}{8mm} % default ~10mm -\setlength{\topmargin}{15mm} % default ~8mm -\setlength{\textheight}{23cm} +\usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry} +\pagestyle{headandfoot} +\header{{\bfseries\large \"Ubung 4}}{{\bfseries\large Kontrollstrukturen}}{{\bfseries\large 13. Oktober, 2015}} +\firstpagefooter{Dr. Jan Grewe}{Phone: 29 74588}{Email: + jan.grewe@uni-tuebingen.de} +\runningfooter{}{\thepage}{} -\setlength{\oddsidemargin}{2.5cm} -\setlength{\evensidemargin}{2.5cm} -\setlength{\textwidth}{16cm} - -\setlength{\voffset}{-1in} -\setlength{\hoffset}{-1in} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setlength{\baselineskip}{15pt} +\setlength{\parindent}{0.0cm} +\setlength{\parskip}{0.3cm} \renewcommand{\baselinestretch}{1.15} -\makeatletter -\setlength{\@fptop}{0pt} -\setlength{\@fpsep}{5ex} -\makeatother - -%%%%% title %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\title{\bf Einf\"uhrung in die wissenschaftliche Datenverarbeitung\\ ---- \"Ubungen IV: ---\\ Kontrollstrukturen} -\author{Jan Grewe, Jan Benda} -\date{\noindent\parbox{\textwidth}{\normalsize\itshape Eberhardt Karls Universit\"at -T\"ubingen, Abt. Neuroethologie }} +\newcommand{\code}[1]{\texttt{#1}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} -\maketitle + +\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 \"Ubung und Selbstkontrolle und sollten eigenst\"andig bearbeitet und gel\"ost werden. Die L\"osung @@ -48,59 +42,66 @@ soll in Form eines einzelnen Skriptes (m-files) i.d.R. am gleichen Tag mir zugeschickt werden (jan.grewe@uni-tuebingen.de). 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: ``variablen\_datentypen\_{nachname}.m'' +Skript sollte nach dem Muster: ``variablen\_datentypen\_\{nachname\}.m'' benannt werden (z.B. variablen\_datentypen\_mueller.m). -\section{Aufgaben} - -\begin{enumerate} - \item Erzeuge einen Vektor \verb+x+ mit z.B. 50 Zufallszahlen im Bereich 0 - 10. - \begin{enumerate} - \item 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 $. - \item Benutze eine Schleife um die Standardabweichung zu bestimmen: - $\sigma=\sqrt{\frac{1}{n}\sum\limits_{i=0}^{n}(x_i-\overline{x})^2}$). - \item Suche in der MATLAB Hilfe nach Funktionen, die das f\"ur - dich tuen :-). - \end{enumerate} - \item Benutze eine \verb+while+ Schleife um so lange Zufallszahlen - (\verb+randn+) zu ziehen, bis eine Zahl gr\"o{\ss}er 0.98 gezogen - wurde. Z\"ahle die Anzahl n\"otiger Versuche. - \item Erzeuge eine 5 x 5 x 5 Matrix mit Zufallszahlen. - \begin{enumerate} - \item Benutze eine for Schleife um nacheinander jeweils alle - Elemente der ``Bl\"atter'' auszugeben. - \item Das gleiche mit einer while-Schleife. - \end{enumerate} - \item Erstelle \verb+x+ einen Vektor mit 10 Zufallszahlen im Bereich 0:10. - \begin{enumerate} - \item Benutze eine for-Schleife um all die Elemente zu loeschen, - die (\verb+x(index) = [];+) kleiner als 5 sind. - \item Loesche alle Elemente die kleiner als 5 und groesser als 2 sind. - \item Kann man das gleiche auch ohne eine Schleife erledigen? - \end{enumerate} - \item 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? - \item String parsing: Mitunter werden Dateinamen von Datens\"atzen - benutzt um anzuzeigen unter welchenBedingungen die Daten gewonnen - wurden. Man muss also den Dateinamen parsen und die f\"ur einen - relevante Information herausfiltern. - \begin{enumerate} - \item Erstelle eine Variable - \verb+filename = '2010-10-12_100Hz_1.25V.dat'+. Der Unterstrich - ist offensichtlich das verwendete Trennzeichen. - \item Benutze eine \verb+for+ Schleife um durch alle Zeichen zu - laufen. Vergleiche jedes Zeichen mit dem Unterstrich und merke - dir die Positionen. - \item Benutze eine zweite Schleife um durch diesen Positionsvektor - zu laufen und benutze die darin enthaltene Information um den - \verb+filename+ in Teile zu schneiden. - \item Gib die einzelnen Teile auf dem Bildschirm aus. - \end{enumerate} -\end{enumerate} +\begin{questions} + + \question Erzeuge einen Vektor \verb+x+ mit z.B. 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 tuen :-). + \end{parts} + + \question Benutze eine \verb+while+ Schleife um so lange Zufallszahlen + (\verb+randn+) zu ziehen, bis eine Zahl gr\"o{\ss}er 0.98 gezogen + wurde. Z\"ahle die Anzahl n\"otiger Versuche. + + \question Erzeuge eine 5 x 5 x 5 Matrix mit Zufallszahlen. + \begin{parts} + \part Benutze eine for Schleife um nacheinander jeweils alle + Elemente der ``Bl\"atter'' auszugeben. + \part Das gleiche mit einer while-Schleife. + \end{parts} + + \question Erstelle \verb+x+ einen Vektor mit 10 Zufallszahlen im + Bereich 0:10. + \begin{parts} + \part Benutze eine for-Schleife um all die Elemente zu loeschen, + die (\verb+x(index) = [];+) 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 welchenBedingungen 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 = '2010-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. + \part Benutze eine zweite Schleife um durch diesen + Positionsvektor zu laufen und benutze die darin enthaltene + Information um den \verb+filename+ in Teile zu schneiden. + \part Gib die einzelnen Teile auf dem Bildschirm aus. + \end{parts} + +\end{questions} \end{document}