From cedca289c1f876bc760fba1c14738137f3491469 Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Tue, 6 Oct 2015 17:26:46 +0200 Subject: [PATCH] [exercises ]control flow --- programming/exercises/control_flow.tex | 106 +++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 programming/exercises/control_flow.tex diff --git a/programming/exercises/control_flow.tex b/programming/exercises/control_flow.tex new file mode 100644 index 0000000..08a4dfc --- /dev/null +++ b/programming/exercises/control_flow.tex @@ -0,0 +1,106 @@ +\documentclass[12pt,a4paper,pdftex]{article} + +\usepackage{natbib} +\usepackage{graphicx} +\usepackage[margin=1.5in]{geometry} +\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% letter : 8.5 x 11 in +\setlength{\headheight}{5mm} % default ~5mm +\setlength{\headsep}{8mm} % default ~10mm +\setlength{\topmargin}{15mm} % default ~8mm +\setlength{\textheight}{23cm} + +\setlength{\oddsidemargin}{2.5cm} +\setlength{\evensidemargin}{2.5cm} +\setlength{\textwidth}{16cm} + +\setlength{\voffset}{-1in} +\setlength{\hoffset}{-1in} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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 }} + +\begin{document} +\maketitle + +Die folgenden Aufgaben dienen der \"Ubung und Selbstkontrolle und +sollten eigenst\"andig bearbeitet und gel\"ost werden. Die L\"osung +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'' +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} + +\end{document}