Geldautomat programmieren
Verfasst: Dienstag 15. Oktober 2019, 19:29
Hallo zusammen
Ich nehme gerade das E-Tutorial von der ETH Zürich durch. Bis jetzt läuft alles gut, jedoch gibt es jetzt eine Aufgabe, wo man einen Geldautomaten programmieren soll und laut ihnen soll man nicht länger als 2 Stunden für diese Aufgabe brauchen. Ich bin jedoch jetzt seit 2 Tagen dahinter. Ich komme einfach nicht weiter
Aufgabenstellung:
[i"]In dieser Aufgabe sollen Sie einen Geldautomaten simulieren. Die Kundin oder der Kunde
soll eingeben können, wie viel Geld er oder sie abheben möchte. Der Geldautomat soll
dann berechnen, wie viele und welche Banknoten (100er, 50er, 20er und 10er) er ausgeben
soll. Die Anzahl der verwendeten Variablen soll möglichst klein gehalten werden, indem
sie wiederverwendet werden. Berechne zusätzlich den Restbetrag."[/i]
---Die Ausrechnung, wie viele Noten für einen input raussollen, habe ich berechnet. Jedoch will man ja so nah wie möglich an den eingegebenen Input ran (z.B: input 581 --> 5 Hunderter/1 Fünfziger/3 Zehner und Restbetrag 1), und nicht bei jeder Note die Anzahl neu berechnen (z.B: input 581 --> 5 Hunderter/11 Fünfziger/58 Zehner und Restbetrag 1). Wie kann ich das aufteilen? Und beim Restbetrag bekomme ich immer das Vierfache vom eigentlichen Betrag (Also statt Restbetrag 1 bekomme ich 4, weil ich bei 4 verschiedenen Noten den Restbetrag ausrechne, die werden dann summiert. Wenn ich sie aber durch 4 teile, kommt eine viel grössere Zahl raus.)
Mein Code sieht so aus:
Betrag=float(input("Geben Sie einen Betrag ein"))
x=100
y=(50)
z=(20)
xyz=(10)
#Berechnung 100er Noten
x=(int(Betrag/x))
print("100er Noten:",(x))
Viertel100=x*0.25
Rest1=float(Betrag-Viertel100)
#Berechnung 50er Noten
y=(int(Betrag/y))
print("50er Noten:",(y))
Viertel50=y*0.25
Rest2=float(Betrag-Viertel50)
#Berechnung 20er Noten
z=(int(Betrag/z))
print("20er Noten:",(z))
Viertel20=z*0.25
Rest3=float(Betrag-Viertel20)
#Berechnung 10er Noten
xyz=(int(Betrag/xyz))
print("10er Noten:",(xyz))
Viertel10=xyz*0.25
Rest4=float(Betrag-Viertel10)
#Berechnung Rest der Noten
Rest=(int(Rest1+Rest2+Rest3+Rest4))
print("Rest",(Rest))
PROGRAMM ENDE
Ich weiss, mein Problem ist auf mangelnden rationalen Kenntnissen zurückzuführen (Ich weiss, dass die Aufgabe eigentlich einfach ist).
Trotzdem danke ich euch für die Antwort und (vielleicht) für die Hilfe!
LG
Ich nehme gerade das E-Tutorial von der ETH Zürich durch. Bis jetzt läuft alles gut, jedoch gibt es jetzt eine Aufgabe, wo man einen Geldautomaten programmieren soll und laut ihnen soll man nicht länger als 2 Stunden für diese Aufgabe brauchen. Ich bin jedoch jetzt seit 2 Tagen dahinter. Ich komme einfach nicht weiter
Aufgabenstellung:
[i"]In dieser Aufgabe sollen Sie einen Geldautomaten simulieren. Die Kundin oder der Kunde
soll eingeben können, wie viel Geld er oder sie abheben möchte. Der Geldautomat soll
dann berechnen, wie viele und welche Banknoten (100er, 50er, 20er und 10er) er ausgeben
soll. Die Anzahl der verwendeten Variablen soll möglichst klein gehalten werden, indem
sie wiederverwendet werden. Berechne zusätzlich den Restbetrag."[/i]
---Die Ausrechnung, wie viele Noten für einen input raussollen, habe ich berechnet. Jedoch will man ja so nah wie möglich an den eingegebenen Input ran (z.B: input 581 --> 5 Hunderter/1 Fünfziger/3 Zehner und Restbetrag 1), und nicht bei jeder Note die Anzahl neu berechnen (z.B: input 581 --> 5 Hunderter/11 Fünfziger/58 Zehner und Restbetrag 1). Wie kann ich das aufteilen? Und beim Restbetrag bekomme ich immer das Vierfache vom eigentlichen Betrag (Also statt Restbetrag 1 bekomme ich 4, weil ich bei 4 verschiedenen Noten den Restbetrag ausrechne, die werden dann summiert. Wenn ich sie aber durch 4 teile, kommt eine viel grössere Zahl raus.)
Mein Code sieht so aus:
Betrag=float(input("Geben Sie einen Betrag ein"))
x=100
y=(50)
z=(20)
xyz=(10)
#Berechnung 100er Noten
x=(int(Betrag/x))
print("100er Noten:",(x))
Viertel100=x*0.25
Rest1=float(Betrag-Viertel100)
#Berechnung 50er Noten
y=(int(Betrag/y))
print("50er Noten:",(y))
Viertel50=y*0.25
Rest2=float(Betrag-Viertel50)
#Berechnung 20er Noten
z=(int(Betrag/z))
print("20er Noten:",(z))
Viertel20=z*0.25
Rest3=float(Betrag-Viertel20)
#Berechnung 10er Noten
xyz=(int(Betrag/xyz))
print("10er Noten:",(xyz))
Viertel10=xyz*0.25
Rest4=float(Betrag-Viertel10)
#Berechnung Rest der Noten
Rest=(int(Rest1+Rest2+Rest3+Rest4))
print("Rest",(Rest))
PROGRAMM ENDE
Ich weiss, mein Problem ist auf mangelnden rationalen Kenntnissen zurückzuführen (Ich weiss, dass die Aufgabe eigentlich einfach ist).
Trotzdem danke ich euch für die Antwort und (vielleicht) für die Hilfe!
LG