PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : brauch hilfe bei nem prog!!!!!!


Gast
2005-04-26, 12:55:42
Ein Betrag (max. 10000€) soll ausgegeben werden.
Einagabe: auszubezahlender Betrag.
Ausgabe: Anzahl der (verschiedenen) benötigten Geldscheine und Münzen.

Senior Sanchez
2005-04-26, 13:08:23
Ein Betrag (max. 10000€) soll ausgegeben werden.
Einagabe: auszubezahlender Betrag.
Ausgabe: Anzahl der (verschiedenen) benötigten Geldscheine und Münzen.

Sehr karg die ganze beschreibung. Bitte mehr Infos (Programmiersprache?!?).

Aber es läuft im grunde Auf ganzzahlige Division und Modulo(Rest)-Berechnung hinaus.


mfg Senior Sanchez

Gast
2005-04-26, 13:14:00
visual basic sry vergaß ...

Senior Sanchez
2005-04-26, 13:28:31
Naja, ich kann dir hier nur nen Pseudo-Algorithmus präsentieren (habe vb nie gelernt ;) ), aber es sieht im Grunde so aus.

GELDMENGE / 500 = anzahl 500 euro scheine (dsa ist eine ganzzahlige division)
NEUE_GELDMENGE = GELDMENGE - anzahl 500 euro scheine * 500
NEUE_GELDMENGE / 200 = anzahl 200 euro scheine
NEUE_GELDMENGE = NEUE_GELDMENGE - anzahl 200 euro scheine * 200
NEUE_GELDMENGE / 100 = anzahl 100 euro scheine.....

und so weiter. Das ist die einfachste und dirrrrty Variante, das ganze hart zu kodieren. Wenn de es besser machen willst, legste dir nen integer-Array (dann musste mit cent rechnen, kannst aber auch über gebrochene zahlen gehen, dann gehts mit euro) an, wo alle möglichen Geldscheine/Münzen hinterlegt sind.

Dann iterierst du inner Schleife einfach über dieses Array und teilst die _aktuelle noch aufzuteilende geldmenge_ ganzzahlig durch den aktuellen Geldschein/Münze und berechnest die geldmenge neu. Die Anzahl der jeweiligen Scheine/Münzen kannste wieder in einem zweiten Array hinterlegen sodass de es am Ende leicht ausgeben kannst. Kannst natürlich auch gleich inner Schleife ausgeben.

Hier mal im Java-Style (das einlesen der geldmenge spare ich mir jetzt):



float[] zahlungsmittel = new float[] {500, 200, 100, 50, 20, 10, 5, 2, 1, 0.50, 0.20, 0.10, 0.05, 0.02, 0.01};

for(int i=0, len = zahlungsmittel.length; i < len; i++) {
int anzahl = (int) geldmenge / zahlungsmittel[i];
System.out.println("Man braucht " anzahl + " x " + zahlungsmittel[i]);
geldmenge = geldmenge - anzahl * zahlungsmittel[i];
}



Das sollte so laufen, habs jetzt nicht getestet. (das casting auf int könnte kritisch sein, eventuell musste halt abrunden)


mfg Senior Sanchez