[exercises ]control flow
This commit is contained in:
parent
6df314efe8
commit
cedca289c1
106
programming/exercises/control_flow.tex
Normal file
106
programming/exercises/control_flow.tex
Normal file
@ -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}
|
Reference in New Issue
Block a user