Übungsaufgabe in Python Hilfe?
Hallo Leute,
ich mache grade eine Übungsaufgabe in Python und verstehe es nicht so ganz, deswegen wollte ich mal Fragen, ob jemand das Nötige wissen hat um mir zu Helfen?
Danke im Vorraus.
Die Aufgabe:
Schreiben Sie ein Programm, das eine Datei einließt, in der in jeder Zeile ein Eurobetrag steht. Wenn die Datei nicht existiert oder der Inhalt der Datei kein Eurobetrag ist, soll dieser Fehler abgefangen werden und der Anwender per Eingabeaufforderung nach einem Eurobetrag gefragt werden. Danach soll für jeden eingelesenen Betrag die minimale Anzahl an Scheinen und Münzen berechnet und ausgegeben werden, die summiert, den Betrag ergibt.
Beispiel: 94,65€: 50€ + 20€ + 20€ + 2€ + 2€ + 50ct + 10ct + 5ct
1 Antwort
Die Aufgabe besteht aus zwei Teilaufgaben. Eine Teilaufgabe ist die Überlegung eines Algorithmus, um zu einem Geldbetrag die minimale Anzahl an Scheinen und Münzen zu berechnen, um diesen zu erhalten. Überlege erst mal theoretisch, wie das gehen könnte und versuche dann eine Umsetzung davon.
Die Aufgabe würde ich in einer eigenen Funktion erledigen.
Die andere Teilaufgabe ist die Ein- und Ausgabe, wobei erstere deutlich umfangreicher ist. Schaue nach, wie man prüft, ob eine Datei vorhanden ist, und sie ggf. zeilenweise einliest. Schaue nach, wie man eine Eingabe von der Kommandozeile verarbeitet.
Dann rufst du die Funktion mit dem Euro-Betrag auf, die du dir zuvor überlegt hast, oder danach überlegen wirst. Die Aufgaben können weitgehend unabhängig voneinander bearbeitet werden.
Frage nach, was konkret unklar ist.
Ansatz sieht - soweit ich das sehe - gut aus... Bei deiner zweiten Funktion ist aber die Liste der Münzen falsch rum... du gehst eigentlich davon aus, dass der letzte Eintrag der größte Wert ist.
Eine Funktion reicht ja aber aus... du musst ja in der Ausgabe nicht zwischen Münzen und Scheinen unterscheiden. Liste entsprechend anpassen...
PS: Nutze für Quelltexte zukünftig die Quelltext-Funktion... Das ist das </> Symbol bei Formatierung
ist das soweit so richtig:
#Scheine#
def findMin(Eur):
Euro = [1, 2, 5, 10, 20, 50, 100,]
S = len(Euro)
ans = []
i = S - 1
while (i >= 0):
#
while (Eur >= Euro[i]):
Eur -= Euro[i]
ans.append(Euro[i])
i -= 1
#
for i in range(len(ans)):
print(ans[i], end=" ")
if __name__ == 'main':
S = 94
print("Ihr betrag In Scheinen: ",
"$", S, "= ", end="")
findMin(S)
#Munze#
def findMin(Eur):
Coins = [0.50, 0.20, 0.10, 0.05, 0.02, 0.01]
m = len(Coins)
ans = []
i = m - 1
while (i >= 0):
while (Eur >= Coins[i]):
Eur -= Coins[i]
ans.append(Coins[i])
i -= 1
for i in range(len(ans)):
print(ans[i], end=" ")
if __name__ == 'main':
m = 0.94
print("Ihr betrag in: ",
"Cents", m, "= ", end="")
findMin(S)