From 2e04e03464c924b0d77d6e586c3608136e9d139a Mon Sep 17 00:00:00 2001 From: Jan Grewe Date: Thu, 8 Oct 2015 13:37:02 +0200 Subject: [PATCH] [exercises] control flow --- programming/exercises/control_flow.tex | 65 +++++++++++++++++++------- 1 file changed, 48 insertions(+), 17 deletions(-) diff --git a/programming/exercises/control_flow.tex b/programming/exercises/control_flow.tex index 27e9b8b..6d9440c 100644 --- a/programming/exercises/control_flow.tex +++ b/programming/exercises/control_flow.tex @@ -46,33 +46,64 @@ Skript sollte nach dem Muster: ``variablen\_datentypen\_\{nachname\}.m'' benannt werden (z.B. variablen\_datentypen\_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 Erzeuge einen Vektor \verb+x+ mit z.B. 50 Zufallszahlen im Bereich 0 - 10. + \question Zugriff auf Elemente in Vektoren: \begin{parts} - \part Benutze eine Schleife um das arithmetische Mittel zu berechnen. Der Mittelwert ist definiert als: + \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: + \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 :-). + dich tun :-). \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 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 Erzeuge eine 5 x 5 x 5 Matrix mit Zufallszahlen. + \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 Benutze eine for Schleife um nacheinander jeweils alle - Elemente der ``Bl\"atter'' auszugeben. - \part Das gleiche mit einer while-Schleife. + \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 for-Schleife um all die Elemente zu loeschen, - die (\verb+x(index) = [];+) kleiner als 5 sind. + \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? @@ -86,19 +117,19 @@ benannt werden (z.B. variablen\_datentypen\_mueller.m). was kommt heraus? \question String parsing: Mitunter werden Dateinamen von - Datens\"atzen benutzt um anzuzeigen unter welchenBedingungen die + 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 = '2010-10-12_100Hz_1.25V.dat'+. Der Unterstrich + \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. + 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 \verb+filename+ in Teile zu schneiden. + Information um den \code{filename} in Teile zu schneiden. \part Gib die einzelnen Teile auf dem Bildschirm aus. \end{parts}