## Kapitel 13 – Funktionen selber schreiben


# Seite 170 – Eigene Funktionen schreiben
def verdoppeln(wert):
    doppelwert = int(wert)*2
    return doppelwert
x = input("Bitte Wert eingeben")
print(verdoppeln(x))

# Seite 170 – Eigene Funktionen schreiben
def summe(wert1,wert2):
    zusammen = int(wert1)+int(wert2)
    return zusammen
x = input("Bitte Wert 1 eingeben")
y = input("Bitte Wert 2 eingeben")
print(summe(x,y))

# Seite 170 – Eigene Funktionen schreiben
def warnung():
    print("Achtung, hier ist ein falscher Wert eingegeben worden!")

x = int(input("Bitte Zahl unter 10 eingeben"))
if x<10:
    print("Danke")
else:
    warnung()

# Seite 171 – Eigene Funktion »zahlwort«
if antwort == richtig:
    zeige_smiley()
else:
    spiele_falschsound()

# Seite 173 – Eigene Funktion »zahlwort«
def zahlwort(zahl):

  einer = ["null", "ein", "zwei", "drei", "vier", "fünf", "sechs", "sieben","acht", "neun", "zehn", "elf", "zwölf", "dreizehn", "vierzehn","fünfzehn", "sechzehn", "siebzehn", "achtzehn", "neunzehn"]
  zehner = ["null", "zehn", "zwanzig", "dreißig", "vierzig", "fünfzig","sechzig","siebzig", "achtzig", "neunzig", "hundert"]

  if zahl < 20:
        wort = einer[zahl]
        if zahl == 1:
            wort = "eins"
  else:
        z = zahl // 10
        e = zahl % 10
        wort = einer[e]+"und"+zehner[z]
        if e == 0:
            wort = zehner[z]
  return wort

# Seite 174 – Eigene Funktion »zahlwort«
x = int(input("Zahl:"))
print(str(x) + " ist in Worten: " + zahlwort(x))

# Seite 175 – Ein eigenes Modul erstellen
def zahlwort(zahl):

  einer = ["null", "ein", "zwei", "drei", "vier", "fünf", "sechs","sieben", "acht", "neun", "zehn", "elf", "zwölf", "dreizehn","vierzehn", "fünfzehn", "sechzehn", "siebzehn", "achtzehn","neunzehn"]

  zehner = ["null", "zehn", "zwanzig", "dreißig", "vierzig","fünfzig","sechzig","siebzig","achtzig", "neunzig","hundert"]

  if zahl < 20:
        wort = einer[zahl]
        if zahl == 1:
          wort = "eins"
        return wort
  else:
        z = zahl // 10
        e = zahl % 10
        wort = einer[e]+"und"+zehner[z]
        if e == 0:
            wort = zehner[z]
  return wort

# Seite 176
import zwort
x = int(input("Zahl eingeben: "))
print(zwort.zahlwort(x))

# Seite 176
from zwort import *
x = int(input("Zahl eingeben"))
print(zahlwort(x))

# Seite 176
zwort.zahlwort(x)

# Seite 177 – Zeichnen mit Funktionen
import turtle as t
import random
t.hideturtle()
t.pensize(3)

def vieleck(ecken, laenge):
    winkel = 360 / ecken
    for _ in range(ecken):
        t.forward(laenge)
        t.right(winkel)

for _ in range(100):
    # Zufallsfarbe
    r = random.random()
    g = random.random()
    b = random.random()
    t.color(r, g, b)

    # zufällige Startrichtung
    t.setheading(random.randint(0, 359))

    # zufällige Position
    x = random.randint(-400, 400)
    y = random.randint(-300, 300)
    t.penup()
    t.goto(x, y)
    t.pendown()

    # zufällige Parameter
    laenge = random.randint(10, 100)
    ecken = random.randint(3, 7)
    vieleck(ecken, laenge)

t.done()

# Seite 180 – Rekursive Funktionen
def rekursiv(x):
    print(x)
    rekursiv(x+1)

rekursiv(1)

# Seite 180 – Rekursive Funktionen
def rekursiv(x):
    print(x)
    if x<100:
        rekursiv(x+1)

rekursiv(1)

# Seite 181 – Rekursive Funktionen
def fakultaet(x):
    if x == 1:
        return 1
    else:
        return (x * fakultaet(x-1))

f = int(input("Zahl eingeben: "))
print("Die Fakultät von",f,"ist",fakultaet(f))

