Update of exercises
parent
ff95f820c4
commit
1df916399e
|
@ -1,3 +1,3 @@
|
||||||
## Prefix-Notation
|
# Prefix-Notation
|
||||||
Bitte wandeln Sie den folgenden mathematischen Ausdruck in einen gültigen Clojure-Ausdruck in _Prefix-Notation_ um: `42 / (3 + 3 * 3) * 4 - 11`.
|
Bitte wandeln Sie den folgenden mathematischen Ausdruck in einen gültigen Clojure-Ausdruck in _Prefix-Notation_ um: `42 / (3 + 3 * 3) * 4 - 11`.
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Lösung: 01_basics/01_prefix.md
|
# Lösung: Prefix-Notation
|
||||||
|
|
||||||
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
|
<div style="border: 1px solid grey;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div>
|
||||||
```clojure
|
```clojure
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
## Erste Schritte
|
# Erste Schritte
|
||||||
|
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 01_basics/02_first_steps.md
|
# Lösung: Erste Schritte
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/scalper.clj" clojure
|
!INCLUDESRC "../src/clojure/scalper.clj" clojure
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
## Maps: Lagerverwaltung
|
# Maps: Lagerverwaltung
|
||||||
|
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 01_basics/03_maps.md
|
# Lösung: Maps: Lagerverwaltung
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/abzock-lager.clj" clojure
|
!INCLUDESRC "../src/clojure/abzock-lager.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## Kontrolltrukturen: Lagerverwaltung, Teil 2
|
# Kontrolltrukturen: Lagerverwaltung, Teil 2
|
||||||
|
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 01_basics/04_control_structures.md
|
# Lösung: Kontrolltrukturen: Lagerverwaltung, Teil 2
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/abzock-lager-2.clj" clojure
|
!INCLUDESRC "../src/clojure/abzock-lager-2.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## Map und Reduce: Gewinnermittlung für die Abzock GmbH
|
# Map und Reduce: Gewinnermittlung für die Abzock GmbH
|
||||||
|
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 01_basics/05_map_reduce.md
|
# Lösung: Map und Reduce: Gewinnermittlung für die Abzock GmbH
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/abzock-gewinn.clj" clojure
|
!INCLUDESRC "../src/clojure/abzock-gewinn.clj" clojure
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
## Multi-Arity-Funktion
|
# Multi-Arity-Funktion
|
||||||
Schreiben Sie eine Funktion `my-average`, welche das arithmetische Mittel von 2, 4 oder 6 Zahlen bestimmen kann. Verwenden Sie __keine__ Varag-Funktion, sondern programmieren Sie eine _Multi-Arity-Funktion_.
|
Schreiben Sie eine Funktion `my-average`, welche das arithmetische Mittel von 2, 4 oder 6 Zahlen bestimmen kann. Verwenden Sie __keine__ Varag-Funktion, sondern programmieren Sie eine _Multi-Arity-Funktion_.
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 02_funktionen/01_my-average.md
|
# Lösung: Multi-Arity-Funktion
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/my-average.clj" clojure
|
!INCLUDESRC "../src/clojure/my-average.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## Funktion als Rückgabewert
|
# Funktion als Rückgabewert
|
||||||
Schreiben Sie eine Funktion `plus-n-fn`, welche einen Parameter `n` nimmt und eine neue Funktion zurückliefert, die ebenfalls einen Parameter akzeptiert. Diese neue Funktion addiert den Übergabewert zu `n`.
|
Schreiben Sie eine Funktion `plus-n-fn`, welche einen Parameter `n` nimmt und eine neue Funktion zurückliefert, die ebenfalls einen Parameter akzeptiert. Diese neue Funktion addiert den Übergabewert zu `n`.
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 02_funktionen/02_plus-n-fn.md
|
# Lösung: Funktion als Rückgabewert
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/plus-n-fn.clj" clojure
|
!INCLUDESRC "../src/clojure/plus-n-fn.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## apply und Funktionen als Übergabewerte
|
# apply und Funktionen als Übergabewerte
|
||||||
Schreiben Sie eine Funktion `triple-apply`, der man eine Funktion und beliebig viele weitere Argumente übergeben kann. Die Funktion wird dreimal mit den Argumenten ausgeführt und die Ergebnisse werden addiert, bevor sie zurückgegeben werden.
|
Schreiben Sie eine Funktion `triple-apply`, der man eine Funktion und beliebig viele weitere Argumente übergeben kann. Die Funktion wird dreimal mit den Argumenten ausgeführt und die Ergebnisse werden addiert, bevor sie zurückgegeben werden.
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 02_funktionen/03_triple-apply.md
|
# Lösung: apply und Funktionen als Übergabewerte
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/triple-apply.clj" clojure
|
!INCLUDESRC "../src/clojure/triple-apply.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## Vor- und Nachbedingung
|
# Vor- und Nachbedingung
|
||||||
Gegeben Sie die folgende Funktion `sqrt`. Versehen Sie die Funktion mit einer Vor- und Nachbedingung, um den Aufruf mit ungültigen Werten (`n <= 0`) und auf einen positiven Rückgabewert (`> 0`) zu testen.
|
Gegeben Sie die folgende Funktion `sqrt`. Versehen Sie die Funktion mit einer Vor- und Nachbedingung, um den Aufruf mit ungültigen Werten (`n <= 0`) und auf einen positiven Rückgabewert (`> 0`) zu testen.
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 02_funktionen/04_sqrt.md
|
# Lösung: Vor- und Nachbedingung
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/sqrt.clj" clojure
|
!INCLUDESRC "../src/clojure/sqrt.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## Tail-Recursion
|
# Tail-Recursion
|
||||||
Schreiben Sie eine Funktion `prod-recur`, die eine beliebige Zahl von Werten multipliziert, die ihr als Vektor oder Sequenz übergeben werden. Verwenden Sie für die Implementierung `loop` und `recur` und __nicht__ `reduce` oder eine andere Funktion außer `*`.
|
Schreiben Sie eine Funktion `prod-recur`, die eine beliebige Zahl von Werten multipliziert, die ihr als Vektor oder Sequenz übergeben werden. Verwenden Sie für die Implementierung `loop` und `recur` und __nicht__ `reduce` oder eine andere Funktion außer `*`.
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 03_rekursion/01_prod-recur.md
|
# Lösung: Tail-Recursion
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/prod-recur.clj" clojure
|
!INCLUDESRC "../src/clojure/prod-recur.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## Was hoppelt den da?
|
# Was hoppelt den da?
|
||||||
|
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 03_rekursion/02_karnickel.md
|
# Lösung: Was hoppelt den da?
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/kaninchen.clj" clojure
|
!INCLUDESRC "../src/clojure/kaninchen.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## cond
|
# cond
|
||||||
Schreiben Sie eine Funktion `test-positive`, der man eine Zahl übergibt und die dann einen String zurückgibt, der anzeigt, ob die zweite Zahl größer, kleiner oder gleich 0 ist.
|
Schreiben Sie eine Funktion `test-positive`, der man eine Zahl übergibt und die dann einen String zurückgibt, der anzeigt, ob die zweite Zahl größer, kleiner oder gleich 0 ist.
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 04_variablen/01_test-positive.md
|
# Lösung: cond
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/test-positive.clj" clojure
|
!INCLUDESRC "../src/clojure/test-positive.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## Ausnahmebehandlung
|
# Ausnahmebehandlung
|
||||||
Schreiben Sie eine Funktion `number-formatter`, die unter Verwendung von der Java-Methode `Integer.parseInt` einen String in einen Zahlenwert umwandelt. Wenn die Umwandlung nicht funktioniert, gibt die Funktion -1 zurück.
|
Schreiben Sie eine Funktion `number-formatter`, die unter Verwendung von der Java-Methode `Integer.parseInt` einen String in einen Zahlenwert umwandelt. Wenn die Umwandlung nicht funktioniert, gibt die Funktion -1 zurück.
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 04_variablen/02_number-formatter.md
|
# Lösung: Ausnahmebehandlung
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/number-formatter.clj" clojure
|
!INCLUDESRC "../src/clojure/number-formatter.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## reduce
|
# reduce
|
||||||
Schreiben Sie eine Funktion `prod-reduce`, die eine beliebige Zahl von Werten multipliziert, die ihr als Vektor oder Sequenz übergeben werden. Verwenden Sie für die Implementierung die `reduce`-Funktion und __keine__ Rekursion.
|
Schreiben Sie eine Funktion `prod-reduce`, die eine beliebige Zahl von Werten multipliziert, die ihr als Vektor oder Sequenz übergeben werden. Verwenden Sie für die Implementierung die `reduce`-Funktion und __keine__ Rekursion.
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 05_collections/01_prod-reduce.md
|
# Lösung: reduce
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/prod-reduce.clj" clojure
|
!INCLUDESRC "../src/clojure/prod-reduce.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## mapping und cycle
|
# mapping und cycle
|
||||||
Schreiben Sie eine Funktion `map-cycle`, welche durch eine übergebene Menge von Zahlen wiederholt läuft. Die Übergabe erfolgt als _Vararg-Argument_. Die Zahlen werden dann mal Zwei genommen und es wird jeweils 1 abgezogen (z.B. 5 -> 10 - 1 = 9). Aus dem Ergebnis werden dann n-Werte, gesteuert über den ersten Parameter, zurückgegeben.
|
Schreiben Sie eine Funktion `map-cycle`, welche durch eine übergebene Menge von Zahlen wiederholt läuft. Die Übergabe erfolgt als _Vararg-Argument_. Die Zahlen werden dann mal Zwei genommen und es wird jeweils 1 abgezogen (z.B. 5 -> 10 - 1 = 9). Aus dem Ergebnis werden dann n-Werte, gesteuert über den ersten Parameter, zurückgegeben.
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 05_collections/02_map-cycle.md
|
# Lösung: mapping und cycle
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/map-cycle.clj" clojure
|
!INCLUDESRC "../src/clojure/map-cycle.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## take-while
|
# take-while
|
||||||
Schreiben Sie eine Funktion `below-zero`, welche einen Vektor oder eine Sequenz übergeben bekommt. Die Funktion soll einen neuen Vektor (oder Sequenz) mit denselben Elementen zurückgeben, diese endet aber vor dem ersten Element das `>= 0` ist.
|
Schreiben Sie eine Funktion `below-zero`, welche einen Vektor oder eine Sequenz übergeben bekommt. Die Funktion soll einen neuen Vektor (oder Sequenz) mit denselben Elementen zurückgeben, diese endet aber vor dem ersten Element das `>= 0` ist.
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 05_collections/03_below-zero.md
|
# Lösung: take-while
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/below-zero.clj" clojure
|
!INCLUDESRC "../src/clojure/below-zero.clj" clojure
|
|
@ -1,4 +1,4 @@
|
||||||
## filter
|
# filter
|
||||||
Schreiben Sie eine Funktion `filter-positive`, welche eine Liste oder Sequenz übergeben bekommt. Die Funktion soll eine neue Liste (oder Sequenz) mit denselben Elemente zurückgeben, aber alle Elemente `> 0` ausfiltern.
|
Schreiben Sie eine Funktion `filter-positive`, welche eine Liste oder Sequenz übergeben bekommt. Die Funktion soll eine neue Liste (oder Sequenz) mit denselben Elemente zurückgeben, aber alle Elemente `> 0` ausfiltern.
|
||||||
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# Lösung: 05_collections/04_filter-zero.md
|
# Lösung: filter
|
||||||
|
|
||||||
!INCLUDESRC "../src/clojure/filter-positive.clj" clojure
|
!INCLUDESRC "../src/clojure/filter-positive.clj" clojure
|
40
readme.md
40
readme.md
|
@ -4,24 +4,24 @@ Hier finden Sie Übungsaufgaben für den Kurs Clojure-Programmierung.
|
||||||
|
|
||||||
Die **Abgabedaten** haben keine Bedeutung, da es sich um freiwillige Übungen handelt.
|
Die **Abgabedaten** haben keine Bedeutung, da es sich um freiwillige Übungen handelt.
|
||||||
|
|
||||||
## Themenüberblick
|
# Themenüberblick
|
||||||
|
|
||||||
| # | Thema | Fällig am 📆 | Musterlösung |
|
| # | Thema | Fällig am 📆 | Musterlösung |
|
||||||
|----|------------------------------------------------------------------|----------------|----------------|
|
|----|-----------------------------------------------------------------------------------|----------------|----------------|
|
||||||
| 1. | [01_basics/01_prefix.md](Assignment_001/readme.md) | **----** | [✅](Assignment_001/solution/) |
|
| 1. | [Prefix-Notation](Assignment_001/readme.md) | **----** | [✅](Assignment_001/solution/) |
|
||||||
| 2. | [01_basics/02_first_steps.md](Assignment_002/readme.md) | **----** | [✅](Assignment_002/solution/) |
|
| 2. | [Erste Schritte](Assignment_002/readme.md) | **----** | [✅](Assignment_002/solution/) |
|
||||||
| 3. | [01_basics/03_maps.md](Assignment_003/readme.md) | **----** | [✅](Assignment_003/solution/) |
|
| 3. | [Maps: Lagerverwaltung](Assignment_003/readme.md) | **----** | [✅](Assignment_003/solution/) |
|
||||||
| 4. | [01_basics/04_control_structures.md](Assignment_004/readme.md) | **----** | [✅](Assignment_004/solution/) |
|
| 4. | [Kontrolltrukturen: Lagerverwaltung, Teil 2](Assignment_004/readme.md) | **----** | [✅](Assignment_004/solution/) |
|
||||||
| 5. | [01_basics/05_map_reduce.md](Assignment_005/readme.md) | **----** | [✅](Assignment_005/solution/) |
|
| 5. | [Map und Reduce: Gewinnermittlung für die Abzock GmbH](Assignment_005/readme.md) | **----** | [✅](Assignment_005/solution/) |
|
||||||
| 6. | [02_funktionen/01_my-average.md](Assignment_006/readme.md) | **----** | [✅](Assignment_006/solution/) |
|
| 6. | [Multi-Arity-Funktion](Assignment_006/readme.md) | **----** | [✅](Assignment_006/solution/) |
|
||||||
| 7. | [02_funktionen/02_plus-n-fn.md](Assignment_007/readme.md) | **----** | [✅](Assignment_007/solution/) |
|
| 7. | [Funktion als Rückgabewert](Assignment_007/readme.md) | **----** | [✅](Assignment_007/solution/) |
|
||||||
| 8. | [02_funktionen/03_triple-apply.md](Assignment_008/readme.md) | **----** | [✅](Assignment_008/solution/) |
|
| 8. | [apply und Funktionen als Übergabewerte](Assignment_008/readme.md) | **----** | [✅](Assignment_008/solution/) |
|
||||||
| 9. | [02_funktionen/04_sqrt.md](Assignment_009/readme.md) | **----** | [✅](Assignment_009/solution/) |
|
| 9. | [Vor- und Nachbedingung](Assignment_009/readme.md) | **----** | [✅](Assignment_009/solution/) |
|
||||||
| 10. | [03_rekursion/01_prod-recur.md](Assignment_010/readme.md) | **----** | [✅](Assignment_010/solution/) |
|
| 10. | [Tail-Recursion](Assignment_010/readme.md) | **----** | [✅](Assignment_010/solution/) |
|
||||||
| 11. | [03_rekursion/02_karnickel.md](Assignment_011/readme.md) | **----** | [✅](Assignment_011/solution/) |
|
| 11. | [Was hoppelt den da?](Assignment_011/readme.md) | **----** | [✅](Assignment_011/solution/) |
|
||||||
| 12. | [04_variablen/01_test-positive.md](Assignment_012/readme.md) | **----** | [✅](Assignment_012/solution/) |
|
| 12. | [cond](Assignment_012/readme.md) | **----** | [✅](Assignment_012/solution/) |
|
||||||
| 13. | [04_variablen/02_number-formatter.md](Assignment_013/readme.md) | **----** | [✅](Assignment_013/solution/) |
|
| 13. | [Ausnahmebehandlung](Assignment_013/readme.md) | **----** | [✅](Assignment_013/solution/) |
|
||||||
| 14. | [05_collections/01_prod-reduce.md](Assignment_014/readme.md) | **----** | [✅](Assignment_014/solution/) |
|
| 14. | [reduce](Assignment_014/readme.md) | **----** | [✅](Assignment_014/solution/) |
|
||||||
| 15. | [05_collections/02_map-cycle.md](Assignment_015/readme.md) | **----** | [✅](Assignment_015/solution/) |
|
| 15. | [mapping und cycle](Assignment_015/readme.md) | **----** | [✅](Assignment_015/solution/) |
|
||||||
| 16. | [05_collections/03_below-zero.md](Assignment_016/readme.md) | **----** | [✅](Assignment_016/solution/) |
|
| 16. | [take-while](Assignment_016/readme.md) | **----** | [✅](Assignment_016/solution/) |
|
||||||
| 17. | [05_collections/04_filter-zero.md](Assignment_017/readme.md) | **----** | [✅](Assignment_017/solution/) |
|
| 17. | [filter](Assignment_017/readme.md) | **----** | [✅](Assignment_017/solution/) |
|
||||||
|
|
Loading…
Reference in New Issue