50 lines
1.6 KiB
Markdown
50 lines
1.6 KiB
Markdown
# 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:
|
|
importiere std/unicode um die reversed() Funktion zu benutzen.
|
|
|
|
Für die Schnellen:
|
|
|
|
Implementiert eine Hilfsprozedur reverseString(s: string): string =
|
|
|
|
Benutzt dafür die countdown(start, end) (-> erzeugt eine Sequenz von Zahlen, die von start bis end absteigend geht) Funktion, um über den String zu iterieren. Anschließend könnt ihr mit der .add() Funktion das jeweilige Zeichen anhängen.
|
|
|
|
|
|
_______________________________________________________________________________
|
|
|
|
|
|
3. Übung: Erstelle eine Prozedur, die das kleinste Element in einer Sequenz von Ganzzahlen findet.
|
|
|
|
Aufgabe:
|
|
|
|
Erstelle eine Prozedur findMin(numbers: seq[int]): int, die das kleinste Element in der Sequenz let numbers = @[5, 40, 1, -3, 9, 30, -5] findet.
|
|
|
|
Hinweis:
|
|
Du kannst mit einer Variablen beginnen, die den ersten Wert der Sequenz speichert.
|