Die Webseiten der Fachschaft Informatik am ERG Saalfeld
Fakultät
Wie auf der Seite bierdeckel.html angegeben, ist die rekursive Definition
der Fakultät:
fak(1) = 1
fak(n) = n * fak(n-1)
Diese Definition wird praktisch 1:1 in eine Funktion geschrieben und im Hauptprogramm wird diese Funktion aufgerufen.
Das Programm sieht dann so aus:
Programm
def fak (n):
if n==1:
rueckgabe = 1 #Abbruchbedingung
else:
rueckgabe = n*fak(n-1) #rekursiver Aufruf
return rueckgabe
print (fak(5))
Der Aufruf sah bei mir so aus:

Aufgaben
- Bringen Sie das Programm zum Laufen.
- Testen Sie das Programm mit anderen Zahlen.
- Ändern Sie das Programm so ab, dass auch die 0 verwendet werden kann (Hinweis: 0! = 1).
- Ändern Sie das Programm so ab, dass die Zahlen als Parameter übergeben werden.
- Ändern Sie das Programm so ab, dass bei Eingabe negativer Zahlen die Fehlermeldung kommt: "Der Parameter muss grösser 0 sein!"
- Ändern Sie das Programm so ab, dass bei Eingabe gebrocher Zahlen ("Kommazahlen") die Fehlermeldung kommt: "Der Parameter muss eine ganze Zahl sein!"
- Ergänzen Sie das Programm um eine Überschrift (unterstrichen, danach Leerzeile).
- Ändern Sie das Programm so ab, dass die Ausgabe so erfolgt (hier für Parameter 5): "fak(5) = 120"
zurück
© ERG Saalfeld - HD. Kirmse + Dustin Wiese letztes Update 14.08.2022
|