Einzelnen Beitrag anzeigen

Moombas
(Gast)

n/a Beiträge
 
#9

AW: Summe aus vorgegebenen Zahlen Bilden

  Alt 28. Mai 2019, 08:55
Vom Prinzip müsste es doch so funktionieren:

Delphi-Quellcode:
procedure Button1Click(Sender: TObject);
var
  iZweihundertE : Integer;
  iEinhundertE : Integer;
  iFuenfzigE : Integer;
  iZwanzigE : Integer;
  iZehnE : Integer;
  iFuenfE : Integer;
  iZweiE : Integer;
  iEinE : Integer;
  iFuenfzigC : Integer;
  iZwanzigC : Integer;
  iZehnC : Integer;
  iFuenfC : Integer;
  iZweiC : Integer;
  iEinC : Integer;
  iTrinkgeldE : Integer;
  iTrinkgeldC : Integer;
begin
  iZweihundertE := 1;
  iEinhundertE := 0;
  iFuenfzigE := 0;
  iZwanzigE := 2;
  iZehnE := 0;
  iFuenfE := 6;
  iZweiE := 9;
  iEinE := 0;
  iFuenfzigC := 10;
  iZwanzigC := 0;
  iZehnC := 0;
  iFuenfC := 3;
  iZweiC := 0;
  iEinC := 0;
  iTrinkgeldE := 25;
  iTrinkgeldC := 10;

  while (iTrinkgeldE >= 200) and
        (iZweihundertE > 0 ) do
  begin
    dec(iZweihundertE);
    iTrinkgeldE := iTrinkgeldE - 200;
  end;
  while (iTrinkgeldE >= 100) and
        (iEinhundertE > 0 ) do
  begin
    dec(iEinhundertE);
    iTrinkgeldE := iTrinkgeldE - 100;
  end;
  while (iTrinkgeldE >= 50) and
        (iFuenfzigE > 0 ) do
  begin
    dec(iFuenfzigE);
    iTrinkgeldE := iTrinkgeldE - 50;
  end;
  while (iTrinkgeldE >= 20) and
        (iZwanzigE > 0 ) do
  begin
    dec(iZwanzigE);
    iTrinkgeldE := iTrinkgeldE - 20;
  end;
  while (iTrinkgeldE >= 10) and
        (iZehnE > 0 ) do
  begin
    dec(iZehnE);
    iTrinkgeldE := iTrinkgeldE - 10;
  end;
  while (iTrinkgeldE >= 5) and
        (iFuenfE > 0 ) do
  begin
    dec(iFuenfE);
    iTrinkgeldE := iTrinkgeldE - 5;
  end;
  while (iTrinkgeldE >= 2) and
        (iZweiE > 0 ) do
  begin
    dec(iZweiE);
    iTrinkgeldE := iTrinkgeldE - 2;
  end;
  while (iTrinkgeldE >= 1) and
        (iEinE > 0 ) do
  begin
    dec(iEinE);
    iTrinkgeldE := iTrinkgeldE - 1;
  end;
  while (iTrinkgeldC >= 50) and
        (iFuenfzigC > 0 ) do
  begin
    dec(iFuenfzigC);
    iTrinkgeldC := iTrinkgeldC - 50;
  end;
  while (iTrinkgeldC >= 20) and
        (iZwanzigC > 0 ) do
  begin
    dec(iZwanzigC);
    iTrinkgeldC := iTrinkgeldC - 20;
  end;
  while (iTrinkgeldC >= 10) and
        (iZehnC > 0 ) do
  begin
    dec(iZehnC);
    iTrinkgeldC := iTrinkgeldC - 10;
  end;
  while (iTrinkgeldC >= 5) and
        (iFuenfC > 0 ) do
  begin
    dec(iFuenfC);
    iTrinkgeldC := iTrinkgeldC - 5;
  end;
  while (iTrinkgeldC >= 2) and
        (iZweiC > 0 ) do
  begin
    dec(iZweiC);
    iTrinkgeldC := iTrinkgeldC - 2;
  end;
  while (iTrinkgeldC >= 1) and
        (iEinC > 0 ) do
  begin
    dec(iEinC);
    iTrinkgeldC := iTrinkgeldC - 1;
  end;
  if (iTrinkgeldE > 0) or
     (iTrinkgeldC > 0) then
    showmessage('Das Trinkgeld kann nicht komplett aufgeteilt werden. Restbtrag: ' + inttostr(iTrinkgeldE) + ',' + inttostr(iTrinkgeldC))
  else
    showmessage('Das Trinkgeld kann komplett aufgeteilt werden.');
end;
Das man das über eine eigene Funktion regeln kann, anstatt C&P ist mir klar, soll ja nur als Beispiel dienen.
Zudem lässt es sich beim abarbeiten der Listview (wenn es in eine externe Funktion gelagert wird) recht einfach umsetzen. Aber der TE soll ja auch noch was zu tun haben^^

Geändert von Moombas (28. Mai 2019 um 08:59 Uhr)
  Mit Zitat antworten Zitat