From d3925e85adb54f506d3dcceb0760a423cb85ba6f Mon Sep 17 00:00:00 2001 From: Lukas Kalbertodt Date: Wed, 2 Nov 2016 02:01:05 +0100 Subject: [PATCH] Add tasks for sheet2 --- aufgaben/sheet2/README.md | 7 +++++++ aufgaben/sheet2/task1/README.md | 20 ++++++++++++++++++ aufgaben/sheet2/task1/prime.rs | 36 +++++++++++++++++++++++++++++++++ aufgaben/sheet2/task2/README.md | 9 +++++++++ aufgaben/sheet2/task2/sort.rs | 26 ++++++++++++++++++++++++ aufgaben/sheet2/task3/README.md | 8 ++++++++ 6 files changed, 106 insertions(+) create mode 100755 aufgaben/sheet2/README.md create mode 100755 aufgaben/sheet2/task1/README.md create mode 100755 aufgaben/sheet2/task1/prime.rs create mode 100755 aufgaben/sheet2/task2/README.md create mode 100755 aufgaben/sheet2/task2/sort.rs create mode 100755 aufgaben/sheet2/task3/README.md diff --git a/aufgaben/sheet2/README.md b/aufgaben/sheet2/README.md new file mode 100755 index 0000000..a5a4184 --- /dev/null +++ b/aufgaben/sheet2/README.md @@ -0,0 +1,7 @@ +Blatt 2 +======= + +Die Bearbeitung dieser Aufgaben soll auf einem anderen Git-Branch geschehen. +Legt dazu einen Branch `sheet2` an, von welchem ihr später den PR öffnet. +Wichtig: Stellt sicher, dass ihr wirklich auf eurem neuen Branch seid und nicht +noch auf `master`! diff --git a/aufgaben/sheet2/task1/README.md b/aufgaben/sheet2/task1/README.md new file mode 100755 index 0000000..cf18976 --- /dev/null +++ b/aufgaben/sheet2/task1/README.md @@ -0,0 +1,20 @@ +Aufgabe 2.1: Primzahltest +========================= + +Schreibt eine Funktion `is_prime()`, welche berechnet, ob eine gegebenen ganzen +Zahl `n` eine Primzahl ist. In der `main()` Funktion sollen alle Zahlen von 1 +bis 20 ausgegeben werden, wobei nach allen Primzahlen ein Sternchen-Symbol +(`*`) folgen soll: + +``` +1 +2* +3* +4 +5* +... +``` + +*Hinweis*: Der Primzahltest muss nicht auf Laufzeit optimiert werden! + +Nutzt die schon vorgegebene Datei `prime.rs`! diff --git a/aufgaben/sheet2/task1/prime.rs b/aufgaben/sheet2/task1/prime.rs new file mode 100755 index 0000000..b2d0aa0 --- /dev/null +++ b/aufgaben/sheet2/task1/prime.rs @@ -0,0 +1,36 @@ +//! Aufgabe 2.1: Primzahltest + +fn main() { + +} + +#[test] +fn small_primes() { + assert!(is_prime(2)); + assert!(is_prime(3)); + assert!(is_prime(5)); + assert!(is_prime(7)); +} + +#[test] +fn small_composites() { + assert!(!is_prime(1)); + assert!(!is_prime(4)); + assert!(!is_prime(6)); + assert!(!is_prime(8)); + assert!(!is_prime(9)); +} + +#[test] +fn large_primes() { + assert!(is_prime(1_300_769)); + assert!(is_prime(1_300_297)); + assert!(is_prime(7_367_287)); +} + +#[test] +fn large_composites() { + assert!(!is_prime(908_209)); + assert!(!is_prime(3_073_009)); + assert!(!is_prime(4_897_369)); +} diff --git a/aufgaben/sheet2/task2/README.md b/aufgaben/sheet2/task2/README.md new file mode 100755 index 0000000..fa35915 --- /dev/null +++ b/aufgaben/sheet2/task2/README.md @@ -0,0 +1,9 @@ +Aufgabe 2.2: Sortieren +====================== + +Schreibt eine Funktion `sort()`, welche eine gegebenes Array in-place sortiert. +Das Array beinhaltet nur positive, ganze Zahlen. Das Array soll möglichst +sinnvoll an die Funktion übergeben werden. Sortiert werden soll mit dem +Algorithmus Selectionsort. + +Nutzt die schon vorgegebene Datei `sort.rs`! diff --git a/aufgaben/sheet2/task2/sort.rs b/aufgaben/sheet2/task2/sort.rs new file mode 100755 index 0000000..e582fc7 --- /dev/null +++ b/aufgaben/sheet2/task2/sort.rs @@ -0,0 +1,26 @@ +fn main() { + let mut arr = [61, 21, 27, 79, 57, 60, 46, 42, 27, 92, 66, 26]; + + sort(&mut arr); + // TODO: print `arr` +} + +// TODO: write `sort()` function + + +#[test] +fn sort_array() { + let mut arr = [ + 61, 21, 27, 79, 57, 60, 46, 92, 66, 26, 37, 15, 29, 70, 30, 55, 62, 81, + 84, 35, 34, 52, 98, 50, 39, 42, 41, 24, 28, 64, 95, 47, 43, 23, 14, 71, + 78, 86, 51, 20, 9, 1, 18, 17, 94, 33, 3, 91, 65, 2, 38, 59, 96, 8, 83, + 19, 90, 63, 16, 58, 68, 48 + ]; + sort(&mut arr); + assert_eq!(&arr as &[u64], &[ + 1u64, 2, 3, 8, 9, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 26, 27, 28, 29, + 30, 33, 34, 35, 37, 38, 39, 41, 42, 43, 46, 47, 48, 50, 51, 52, 55, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 70, 71, 78, 79, 81, 83, 84, 86, + 90, 91, 92, 94, 95, 96, 98, + ] as &[u64]); +} diff --git a/aufgaben/sheet2/task3/README.md b/aufgaben/sheet2/task3/README.md new file mode 100755 index 0000000..5a141a0 --- /dev/null +++ b/aufgaben/sheet2/task3/README.md @@ -0,0 +1,8 @@ +Aufgabe 2.3: Buchstaben zählen +============================== + +Schreibt eine Funktion, welche zählt, wie oft ein gegebenes Zeichen in einem +gegebenen String vorkommt. Diese Anzahl soll dann zurückgegeben werden. Die +Typen der Parameter sollen möglichst sinnvoll gewählt werden. + +Z.B. soll der Aufruf `count("peter", 'e')` "2" zurückgeben.