Hevin Coskun 2024-12-16 22:25:21 +01:00
parent c4fe4b69bd
commit 23f9e2cdf2
7 changed files with 155 additions and 0 deletions

BIN
live/.DS_Store vendored 100644

Binary file not shown.

View File

@ -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))

View File

@ -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()

View File

@ -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), "."

View File

@ -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)

View File

@ -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."

BIN
skript/.DS_Store vendored 100644

Binary file not shown.