From 86ba1bc0fe7a0c921f5db41b57522cd6d174299c Mon Sep 17 00:00:00 2001 From: Jan Benda Date: Tue, 22 Nov 2016 09:26:50 +0100 Subject: [PATCH] fakultaet is factorial! --- programming/exercises/faculty.m | 8 -------- programming/exercises/facultyscripta.m | 6 ------ programming/exercises/facultyscriptb.m | 1 - programming/exercises/facultyscriptc.m | 3 --- programming/exercises/myfactorial.m | 7 +++++++ programming/exercises/plotsine.m | 4 ++-- programming/exercises/plotsineb.m | 2 +- programming/exercises/plotsinec.m | 2 +- programming/exercises/plotsined.m | 2 +- programming/exercises/printfaculty.m | 8 -------- programming/exercises/randomwalkthresh.m | 7 +++---- programming/exercises/scripts_functions.tex | 10 +++++----- programming/exercises/sinewave.m | 4 ++-- 13 files changed, 22 insertions(+), 42 deletions(-) delete mode 100644 programming/exercises/faculty.m delete mode 100644 programming/exercises/facultyscripta.m delete mode 100644 programming/exercises/facultyscriptb.m delete mode 100644 programming/exercises/facultyscriptc.m create mode 100644 programming/exercises/myfactorial.m delete mode 100644 programming/exercises/printfaculty.m diff --git a/programming/exercises/faculty.m b/programming/exercises/faculty.m deleted file mode 100644 index 41992ac..0000000 --- a/programming/exercises/faculty.m +++ /dev/null @@ -1,8 +0,0 @@ -function x = faculty(n) -% return the faculty of n -x = 1; -for i = 1:n - x = x * i; -end -% x = prod(1:n) % this is a one line alternative to the for loop! -end \ No newline at end of file diff --git a/programming/exercises/facultyscripta.m b/programming/exercises/facultyscripta.m deleted file mode 100644 index be0ed55..0000000 --- a/programming/exercises/facultyscripta.m +++ /dev/null @@ -1,6 +0,0 @@ -n = 5; -x = 1; -for i = 1:n - x = x * i; -end -fprintf('Faculty of %i is: %i\n', n, x) diff --git a/programming/exercises/facultyscriptb.m b/programming/exercises/facultyscriptb.m deleted file mode 100644 index 8488431..0000000 --- a/programming/exercises/facultyscriptb.m +++ /dev/null @@ -1 +0,0 @@ -printfaculty(5); diff --git a/programming/exercises/facultyscriptc.m b/programming/exercises/facultyscriptc.m deleted file mode 100644 index 0804287..0000000 --- a/programming/exercises/facultyscriptc.m +++ /dev/null @@ -1,3 +0,0 @@ -n = 5 -a = faculty(n); -fprintf('Faculty of %i is: %i\n', n, x) diff --git a/programming/exercises/myfactorial.m b/programming/exercises/myfactorial.m new file mode 100644 index 0000000..2c5668c --- /dev/null +++ b/programming/exercises/myfactorial.m @@ -0,0 +1,7 @@ +function x = mufactorial(n) +% return the factorial of n +x = 1; +for i = 1:n + x = x * i; +end +end diff --git a/programming/exercises/plotsine.m b/programming/exercises/plotsine.m index 18f562e..8828b17 100644 --- a/programming/exercises/plotsine.m +++ b/programming/exercises/plotsine.m @@ -1,9 +1,9 @@ -function plotsine(freq, ampl, duration, step) +function plotsine(freq, ampl, duration) % plot a sine wave % freq: frequency of the sinewave in Hertz % ampl: amplitude of the sinewave % duration: duration of the sinewave in seconds -% step: stepsize for plotting in seconds +step = 0.01/freq; time = 0:step:duration; sine = ampl*sin(2*pi*freq*time); if duration <= 1.0 diff --git a/programming/exercises/plotsineb.m b/programming/exercises/plotsineb.m index b7cb2b8..48690d4 100644 --- a/programming/exercises/plotsineb.m +++ b/programming/exercises/plotsineb.m @@ -1 +1 @@ -plotsine(5.0, 2.0, 1.5, 0.001) +plotsine(5.0, 2.0, 1.5) diff --git a/programming/exercises/plotsinec.m b/programming/exercises/plotsinec.m index 6e4bd8c..2b077a7 100644 --- a/programming/exercises/plotsinec.m +++ b/programming/exercises/plotsinec.m @@ -1,6 +1,6 @@ freq = 5.0; ampl = 2.0; -[time, sine] = sinewave(freq, ampl, 1.5, 0.001); +[time, sine] = sinewave(freq, ampl, 1.5); if duration <= 1.0 plot(1000.0*time, sine); diff --git a/programming/exercises/plotsined.m b/programming/exercises/plotsined.m index d6bf5d8..42cf19d 100644 --- a/programming/exercises/plotsined.m +++ b/programming/exercises/plotsined.m @@ -1,4 +1,4 @@ freq = 5.0; ampl = 2.0; -[time, sine] = sinewave(freq, ampl, 1.5, 0.001); +[time, sine] = sinewave(freq, ampl, 1.5); plotsinewave(time, sine); diff --git a/programming/exercises/printfaculty.m b/programming/exercises/printfaculty.m deleted file mode 100644 index bb3fa1f..0000000 --- a/programming/exercises/printfaculty.m +++ /dev/null @@ -1,8 +0,0 @@ -function printfaculty(n) -% compute the faculty of n and print it -x = 1; -for i = 1:n - x = x * i; -end -fprintf('Faculty of %i is: %i\n', n, x) -end \ No newline at end of file diff --git a/programming/exercises/randomwalkthresh.m b/programming/exercises/randomwalkthresh.m index 15af9e5..731c425 100644 --- a/programming/exercises/randomwalkthresh.m +++ b/programming/exercises/randomwalkthresh.m @@ -9,17 +9,16 @@ function positions = randomwalkthresh(p, thresh) % positions: vector with positions of the random walker positions = [0.0]; +% positions = 0.0; +% positions = zeros(1, 1); i = 2; -while true +while abs(positions(i-1)) < thresh r = rand(1); if r < p positions(i) = positions(i-1) + 1; else positions(i) = positions(i-1) - 1; end - if abs(positions(i)) > thresh - break - end i = i + 1; end end diff --git a/programming/exercises/scripts_functions.tex b/programming/exercises/scripts_functions.tex index 22975d3..1167437 100644 --- a/programming/exercises/scripts_functions.tex +++ b/programming/exercises/scripts_functions.tex @@ -73,20 +73,20 @@ also als zip-Archiv auf ILIAS hochladen. Das Archiv sollte nach dem Muster: \part Version 1: berechnet die Fakult\"at von 5 und gib das Resultat auf dem Bildschirm aus. \begin{solution} - \lstinputlisting{facultyscripta.m} + \lstinputlisting{factorialscripta.m} \end{solution} \part Version 2: Wie 1 aber die Funktion \"ubernimmt als Argument die Zahl, von der die Fakult\"at berechnet werden soll. \begin{solution} - \lstinputlisting{printfaculty.m} - \lstinputlisting{facultyscriptb.m} + \lstinputlisting{printfactorial.m} + \lstinputlisting{factorialscriptb.m} \end{solution} \part Version 3: Wie 2 aber mit R\"uckgabe des berechneten Wertes. \begin{solution} - \lstinputlisting{faculty.m} - \lstinputlisting{facultyscriptc.m} + \lstinputlisting{myfactorial.m} + \lstinputlisting{factorialscriptc.m} \end{solution} \end{parts} diff --git a/programming/exercises/sinewave.m b/programming/exercises/sinewave.m index 42f9362..5e446b9 100644 --- a/programming/exercises/sinewave.m +++ b/programming/exercises/sinewave.m @@ -1,12 +1,12 @@ -function [time, sine] = sinewave(freq, ampl, duration, step) +function [time, sine] = sinewave(freq, ampl, duration) % compute sine wave with time axis % freq: frequency of the sinewave in Hertz % ampl: amplitude of the sinewave % duration: duration of the sinewave in seconds -% step: stepsize for plotting in seconds % returns: % time: vector of time points % sine: corresponding vector with the sine wave +step = 0.01/freq; time = 0:step:duration; sine = ampl*sin(2*pi*freq*time); end