Hallo, ich würde das spontan so lösen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const // 500€ 200€ 100€ 50€ 20€ 10€ 5€ 2€ 1€ Cents...
Money:
Array[0..13]
of Cardinal = (50000, 20000, 10000, 5000, 2000, 1000, 500, 200, 100, 50, 10, 5, 2, 1);
var
Change: Cardinal;
i : Integer;
begin
Change := Round(StrToInt(EditChange.Text));
// aus dem Eingabefeld in Cents
Memo1.Lines.Add('
Rückgeld: ' + IntToStr(Change));
while Change > 0
do
for i := low(Money)
to High(Money)
do
if Change >= Money[i]
then begin
case i
of
0..6: Memo1.Lines.Add(Format('
Zahle %d € Schein', [Money[i]
div 100]));
7..8: Memo1.Lines.Add(Format('
Zahle %d € Münze', [Money[i]
div 100]));
9..13: Memo1.Lines.Add(Format('
Zahle %d Cent Münze', [Money[i]]));
else Memo1.Lines.Add('
??');
end;
Dec(Change, Money[i]);
Break;
end;
end;
Im Memo wird die Liste der ausgezahlten Geldmittel dargestellt.
Edit: Hatte 2€ vergessen
und Thanks Hanks
Edit: 2 Cent Münze eingefügt, mit so kleinen Beträgen kenne ich mich nicht aus