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

  1. Bringen Sie das Programm zum Laufen.
  2. Testen Sie das Programm mit anderen Zahlen.
  3. Ändern Sie das Programm so ab, dass auch die 0 verwendet werden kann (Hinweis: 0! = 1).
  4. Ändern Sie das Programm so ab, dass die Zahlen als Parameter übergeben werden.
  5. Ändern Sie das Programm so ab, dass bei Eingabe negativer Zahlen die Fehlermeldung kommt: "Der Parameter muss grösser 0 sein!"
  6. Ändern Sie das Programm so ab, dass bei Eingabe gebrocher Zahlen ("Kommazahlen") die Fehlermeldung kommt: "Der Parameter muss eine ganze Zahl sein!"
  7. Ergänzen Sie das Programm um eine Überschrift (unterstrichen, danach Leerzeile).
  8. Ä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