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