Kurs:Python/LG/Py2009/Fakultaet
Das Programm heißt fakultaet 2.py
Ich arbeite hier an einem Programm, um die Fakultaet einer Zahl zu berechnen. --80.132.80.146 23:04, 23. Jan. 2009 (CET)
Siehe in der Wikipedia Fakultät
Programmcode
[Bearbeiten]Version 2.1 - Schnick-Schnack
[Bearbeiten]Version 2.1 erweitert Version 1.0 um einige nette Extras. Das Programm 1.0 funktioniert. Das Programm 2.0 interagiert mehr mit dem Anwender. Noch nicht implementiert ist eine Abfrage, ob die Eingabe des Benutzers ein String sein könnte. Ich weiß noch nicht, wie man damit umgehen könnte. Hintergrund (2,3 wird von Python als String, 2.3 als Gleitkommazahl aufgefasst).
print "\nProgramm zur Berechnung der Fakultaet!"
while True:
n = input("Geben Sie die Zahl ein: ")
# Pruefe die Eingabe
if n < 0 or n != int(n) :
print "Fehler!\nEs muss sich um eine ganze Zahl groesser 0 handeln.\nBitte wiederholen Sie die Eingabe.\n"
continue
fak = 1 # fak muss initialisiert werden! fak = 1 ist unproblematisch, fak = 0 verursacht Fehler.
for i in range (2, n+1):
fak = fak * i
# print fak # Kontrolle: Macht die einzelnen Berechnungen transparent
print "Die Fakultaet von", n, "ist", fak, "."
# Frage den Anwender, ob er noch weitere Fakultaeten berechnen will.
d = input("Programm fortsetzen? 1 fuer ja, 2 fuer nein: ")
if d == 1:
continue
else:
print "\nDas Programm wurde beendet. Ihnen einen schoenen Tag!"
break
Version 1.0 - Schlank
[Bearbeiten]Version 1.0 ist vollständig lauffähig. Noch wird nicht überprüft, ob die Fakultät überhaupt berechnet werden kann (n > 0) und ob es sich bei n um eine Ganzzahl handelt. Schön wäre auch eine Abfrage, ob die Fakultät einer weiteren Zahl berechnet werden soll.
print "\nProgramm zur Berechnung der Fakultaet!"
n = input("Geben Sie die Zahl ein: ")
fak = 1 # fak muss initialisiert werden! fak = 1 ist unproblematisch, fak = 0 verursacht Fehler.
for i in range (2, n+1):
fak = fak * i
# print fak # Kontrolle: Macht die einzelnen Berechnungen transparent
print "Die Fakultaet von", n, "ist", fak, "."
Die einfache Variante (aus der Einführung)
[Bearbeiten]while True:
zahl = input("Geben Sie eine Zahl ein: ")
if zahl < 0:
print "Negative Zahlen sind nicht erlaubt"
continue
ergebnis = 1
for i in range(2, zahl+1):
ergebnis = ergebnis * i
print "Ergebnis: ", ergebnis
ToDo-Liste
[Bearbeiten]- ...
- ...
- ...
Version 2.0
[Bearbeiten]Inzwischen auch schon wieder verbessert...
print "\nProgramm zur Berechnung der Fakultaet!"
while True:
n = input("Geben Sie die Zahl ein: ")
# Pruefe die Eingabe
if n < 0:
print "Fehler!\nEs muss sich um eine ganze Zahl groesser 0 handeln.\nBitte wiederholen Sie die Eingabe.\n"
continue
elif n != int(n):
print "Fehler!\nEs muss sich um eine ganze Zahl groesser 0 handeln.\nBitte wiederholen Sie die Eingabe.\n"
continue
# Berechne die Fakultaet!
fak = 1 # fak muss initialisiert werden! fak = 1 ist unproblematisch, fak = 0 verursacht Fehler.
for i in range (2, n+1):
fak = fak * i
# print fak # Kontrolle: Macht die einzelnen Berechnungen transparent
print "Die Fakultaet von", n, "ist", fak, "."
# Frage den Anwender, ob er noch weitere Fakultaeten berechnen will.
d = input("Programm fortsetzen? 1 fuer ja, 2 fuer nein: ")
if d == 1:
continue
else:
print "\nDas Programm wurde beendet. Ihnen einen schoenen Tag!"
break
Versuch 0.1
[Bearbeiten]Zu kompliziert, nicht ganz lauffähig.
a = 0
ergebnis = 0
print "Dieses Programm berechnet die Fakultaet einer beliebigen, ganzen Zahl > 0."
while True:
a = input("Geben Sie eine Zahl: ")
if (a < 0):
print "Ihre Zahl muss groesser 0 sein!"
continue
for i in range (2, a+1):
a = a * i
print a
print "Die Fakultaet von ", a, " ist ", ergebnis, "."