diff --git a/README.md b/README.md new file mode 100644 index 0000000..b07a8f0 --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ +# Nim Vorlesung + +Willkommen zur Nim Vorlesung! Dieses Repository enthält alle wichtigen Informationen, Materialien und die dazugehörigen Übungen für die Vorlesung. +Aus zeitlichen Gründen empfehlen wir die Verwendung eines [Online Compilers][1] für das Bearbeiten der Aufgaben. + +Die Vorlesungsfolien finden Sie [hier.](./skript/praesentation.pdf) + + +## Live-Übungen +Die Übungsaufgaben + +| # | Thema | Musterlösung | +| --- | ------------------------- | ------------------------------------------------ | +| 1. | [Datentypen und Verzweigungen][2] | [Click me!](./live/solutions/operatoren.nim) | +| 2. | [Bedingungen][3] | [Click me!](./live/solutions/bedingungen.nim) | +| 3. | [Prozeduren][4] | [Click me!](./live/solutions/klassen.nim) | +| 4. | [Zusammenfassung][5] | [Click me!](./live/solutions/recap.nim) | + + +## Links: +- [Nim Download](https://nim-lang.org/install.html) +- [Online Compiler][1] + + +[1]: https://www.jdoodle.com/execute-nim-online +[2]: ./live/DatentypenUndVerzweigungen.md +[3]: ./live/bedingungen.md +[4]: ./live/Prozeduren.md +[5]: ./live/recap.md diff --git a/WerMachtWas b/WerMachtWas new file mode 100644 index 0000000..91aa8e0 --- /dev/null +++ b/WerMachtWas @@ -0,0 +1,15 @@ +David: Control Flow Statement +Daniel: Advanced Datatypes (die die du nicht kennst nimmst du) +Hevin: Procedures / iterators +Lukas S.: Exeptions +Lukas B.: +Christian A. : Generics und templates +Lakshan : oo Programmieren + + + +Was wir noch brauchenh + +- Internal type representation + +- part 3 als info diff --git a/live/DatentypenUndVerzweigungen.md b/live/DatentypenUndVerzweigungen.md new file mode 100644 index 0000000..c802275 --- /dev/null +++ b/live/DatentypenUndVerzweigungen.md @@ -0,0 +1,30 @@ +# Datentypen und Verzweigungen + + +1. Berechne dein Alter in Tagen + +Aufgabe: Erstelle eine Variable mit deinem Alter in Jahren und berechne dein Alter in Tagen. Verwende 365 Tage für ein Jahr. + +Hinweis: Speichere dein Alter in einer unveränderbaren Variable (let) und multipliziere es mit 365. +Dateiname: age_in_days.nim + +_________________________________________________________________________________________________________________ + +2. Prüfe, ob dein Alter durch 4 teilbar ist + +Aufgabe: Überprüfe, ob dein Alter durch 4 teilbar ist. Gib eine entsprechende Nachricht aus. + +Hinweis: Nutze den Modulo-Operator (mod) für die Berechnung. +Dateiname: age_divisible_by_4.nim + + +_________________________________________________________________________________________________________________ + +3. Gehaltsvergleich: Alice und Bob + +Aufgabe: Berechne, wer in 30 Tagen mehr verdient: Alice oder Bob. +Alice verdient $400 alle 15 Tage. +Bob verdient $3.14 pro Stunde, arbeitet 8 Stunden pro Tag, 7 Tage die Woche. + +Hinweis: Nutze eine Formel, um die Gesamtverdienste von Alice und Bob zu berechnen, und vergleiche sie mit einem if-Statement. +Dateiname: alice_vs_bob.nim \ No newline at end of file diff --git a/live/Prozeduren.md b/live/Prozeduren.md new file mode 100644 index 0000000..6789919 --- /dev/null +++ b/live/Prozeduren.md @@ -0,0 +1,38 @@ +# Prozeduren + +1. Übung: Fibonacci-Zahlen +Erstelle eine Prozedur, die die Fibonacci-Zahl an einer gegebenen Stelle berechnet. + +Aufgabe: + +Erstelle eine Prozedur fibonacci(n: int): int, die die Fibonacci-Zahl an der Stelle n berechnet (die Fibonacci-Zahlen beginnen mit 0, 1, 1, 2, 3, 5, 8, ...). +Hinweis: +fibonacci(0) = 0 +fibonacci(1) = 1 +fibonacci(n) = fibonacci(n-1) + fibonacci(n-2) für n > 1 + + +_______________________________________________________________________________________ + + +2. Übung: Palindrom-Überprüfung +Erstelle eine Prozedur, die überprüft, ob ein gegebener String ein Palindrom ist (d.h., der String liest sich von vorne und hinten gleich). + +Aufgabe: + +Erstelle eine Prozedur isPalindrome(s: string): bool, die überprüft, ob der übergebene String ein Palindrom ist. +Hinweis: +Du kannst die Nim-Funktion reverse(s) verwenden, um einen String umzukehren. + + + +_______________________________________________________________________________________ + + +3. Übung: Erstelle eine Prozedur, die das kleinste Element in einer Liste von Ganzzahlen findet. + +Aufgabe: + +Erstelle eine Prozedur findMin(numbers: seq[int]): int, die das kleinste Element in der Liste let numbers = @[5, 40, 1, -3. 9, 30, -5] findet. +Hinweis: +Du kannst mit einer Variablen beginnen, die den ersten Wert der Liste speichert.