main
parent
c4fe4b69bd
commit
23f9e2cdf2
Binary file not shown.
|
@ -0,0 +1,37 @@
|
||||||
|
import random
|
||||||
|
import sequtils
|
||||||
|
|
||||||
|
randomize() # initialisiert den Zufallsgenerator
|
||||||
|
var aktuelleStufe = 0
|
||||||
|
var wuerfe = 0
|
||||||
|
|
||||||
|
type
|
||||||
|
Wuerfel = enum
|
||||||
|
EINS = 1, ZWEI = 2, DREI = 3, VIER = 4, FUENF = 5, SECHS = 6
|
||||||
|
|
||||||
|
var wurfErgebnisse: seq[Wuerfel]
|
||||||
|
|
||||||
|
echo "Starte das Treppensteigen"
|
||||||
|
|
||||||
|
while aktuelleStufe < 50:
|
||||||
|
let wuerfel = Wuerfel(rand(1..6)) # Simuliere einen Würfelwurf (Zahlen von 1 bis 6)
|
||||||
|
wurfErgebnisse.add(wuerfel)
|
||||||
|
inc wuerfe # Ein Wurf wurde gemacht, equivalent zu wuerfe += 1
|
||||||
|
|
||||||
|
|
||||||
|
# Spielregeln: Bei 1 oder 6 eine Treppe runter
|
||||||
|
case wuerfel:
|
||||||
|
of EINS, SECHS:
|
||||||
|
if aktuelleStufe > 0:
|
||||||
|
dec aktuelleStufe # equivalent zu akutelleStufe -= 1
|
||||||
|
echo "eine Treppe runter"
|
||||||
|
else:
|
||||||
|
aktuelleStufe = 0
|
||||||
|
echo "schon ganz unten"
|
||||||
|
of ZWEI .. FUENF:
|
||||||
|
inc aktuelleStufe #equivalent zu akutelleStufe -= 1
|
||||||
|
echo "eine Treppe hoch"
|
||||||
|
|
||||||
|
echo "Herzlichen Glückwunsch! Du hast das Haus erklommen!."
|
||||||
|
echo "Anzahl der Würfe: ", wuerfe
|
||||||
|
echo "Zwischenergebnisse:\n", wurfErgebnisse.map(proc(x: Wuerfel): int = ord (x))
|
|
@ -0,0 +1,62 @@
|
||||||
|
# Basisklasse Tier
|
||||||
|
type
|
||||||
|
Tier* = ref object of RootObj
|
||||||
|
name*: string # Öffentlich zugänglicher Name des Tieres
|
||||||
|
alter: int # Privates Feld für das Alter des Tieres
|
||||||
|
|
||||||
|
# Getter für das Alter
|
||||||
|
proc getAlter*(t: Tier): int =
|
||||||
|
t.alter
|
||||||
|
|
||||||
|
# Setter für das Alter mit Apostroph-Syntax
|
||||||
|
proc `alter=`*(t: var Tier, value: int) =
|
||||||
|
if value >= 0:
|
||||||
|
t.alter = value
|
||||||
|
else:
|
||||||
|
echo "Alter kann nicht negativ sein."
|
||||||
|
|
||||||
|
# Methode gibLaut für die Basisklasse
|
||||||
|
proc gibLaut*(t: Tier): string =
|
||||||
|
result = "..."
|
||||||
|
|
||||||
|
# Abgeleitete Klasse Hund
|
||||||
|
type
|
||||||
|
Hund* = ref object of Tier
|
||||||
|
|
||||||
|
# Überschreibe die Methode gibLaut für Hund
|
||||||
|
proc gibLaut*(h: Hund): string =
|
||||||
|
result = "Wuff"
|
||||||
|
|
||||||
|
# Abgeleitete Klasse Katze
|
||||||
|
type
|
||||||
|
Katze* = ref object of Tier
|
||||||
|
|
||||||
|
# Überschreibe die Methode gibLaut für Katze
|
||||||
|
proc gibLaut*(k: Katze): string =
|
||||||
|
result = "Miau"
|
||||||
|
|
||||||
|
# Hauptprogramm zum Testen
|
||||||
|
var
|
||||||
|
hund: Hund = Hund(name: "Rocky")
|
||||||
|
katze: Katze = Katze(name: "Garfield")
|
||||||
|
|
||||||
|
# Setze Alter für Hund und Katze mit Apostroph-Syntax
|
||||||
|
hund.alter = 3
|
||||||
|
katze.alter = 2
|
||||||
|
|
||||||
|
# Ausgabe der Details
|
||||||
|
echo "Name des Hundes: ", hund.name
|
||||||
|
echo "Alter des Hundes: ", hund.getAlter()
|
||||||
|
echo hund.name, " sagt: ", hund.gibLaut()
|
||||||
|
|
||||||
|
echo "\nName der Katze: ", katze.name
|
||||||
|
echo "Alter der Katze: ", katze.getAlter()
|
||||||
|
echo katze.name, " sagt: ", katze.gibLaut()
|
||||||
|
|
||||||
|
# Ändere Alter für beide Tiere mit Apostroph-Syntax
|
||||||
|
hund.alter = 4
|
||||||
|
katze.alter = 3
|
||||||
|
|
||||||
|
# Ausgabe des neuen Alters
|
||||||
|
echo "\n", hund.name, "'s neues Alter: ", hund.getAlter()
|
||||||
|
echo katze.name, "'s neues Alter: ", katze.getAlter()
|
|
@ -0,0 +1,14 @@
|
||||||
|
|
||||||
|
proc fibonacci(n: int): int =
|
||||||
|
if n < 0:
|
||||||
|
raise newException(ValueError, "n muss eine nicht-negative Ganzzahl sein.")
|
||||||
|
elif n == 0:
|
||||||
|
return 0
|
||||||
|
elif n == 1:
|
||||||
|
return 1
|
||||||
|
else:
|
||||||
|
return fibonacci(n - 1) + fibonacci(n - 2)
|
||||||
|
|
||||||
|
|
||||||
|
let stelle = 10
|
||||||
|
echo "Die Fibonacci-Zahl an der Stelle ", stelle, " ist ", fibonacci(stelle), "."
|
|
@ -0,0 +1,10 @@
|
||||||
|
proc findeMin(numbers: seq[int]): int =
|
||||||
|
var min = numbers[0]
|
||||||
|
for num in numbers:
|
||||||
|
if min > num:
|
||||||
|
min = num
|
||||||
|
return min
|
||||||
|
|
||||||
|
let numbers = @[5, 40, 1, -3, 9, 30, -5]
|
||||||
|
|
||||||
|
echo "Die kleinste Zahl in der Sequenz ", numbers, " ist: ", findeMin(numbers)
|
|
@ -0,0 +1,32 @@
|
||||||
|
import std/unicode
|
||||||
|
|
||||||
|
proc isPalindrome(s: string): bool =
|
||||||
|
return s == s.reversed()
|
||||||
|
|
||||||
|
|
||||||
|
let testString = "hallo" # Beispiel: Palindrom
|
||||||
|
if isPalindrome(testString):
|
||||||
|
echo testString, " ist ein Palindrom."
|
||||||
|
else:
|
||||||
|
echo testString, " ist kein Palindrom."
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# alternativ
|
||||||
|
proc reverseString(str: string): string =
|
||||||
|
var reversedStr = ""
|
||||||
|
for i in countdown(str.len - 1, 0): # Iteriere über den String rückwärts
|
||||||
|
reversedStr.add(str[i]) # Füge jedes Zeichen in umgekehrter Reihenfolge hinzu
|
||||||
|
return reversedStr
|
||||||
|
|
||||||
|
proc isPalindromeManuell(s: string): bool =
|
||||||
|
return s == s.reverseString()
|
||||||
|
|
||||||
|
|
||||||
|
let testString2 = "madam" # Beispiel: Palindrom
|
||||||
|
if isPalindrome(testString2):
|
||||||
|
echo testString2, " ist ein Palindrom."
|
||||||
|
else:
|
||||||
|
echo testString2, " ist kein Palindrom."
|
Binary file not shown.
Loading…
Reference in New Issue