Merge branch 'main' of https://gitty.informatik.hs-mannheim.de/3003241/nim-lecture
commit
6d1529ba0d
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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.
|
Loading…
Reference in New Issue