Lenguaje de programación Borland Delphi
Os mostramos el código fuente en Delphi de una función a la que se le pasa un importe (en euros) y devuelve un texto con los billetes y monedas equivalentes a ese importe.
function obtenerNumMonedasBilletes (cantidad : double) : string;
var
C : array[1..15] of double;
M : array[1..15] of string;
S : array[1..15] of double;
i : integer;
resultado : string;
begin
result := '';
try
resultado := '';
c[1] := 50000;
m[1] := '500 euros (Billete)';
c[2] := 20000;
m[2] := '200 euros (Billete)';
c[3] := 10000;
m[3] := '100 euros (Billete)';
c[4] := 5000;
m[4] := '50 euros (Billete)';
c[5] := 2000;
m[5] := '20 euros (Billete)';
c[6] := 1000;
m[6] := '10 euros (Billete)';
c[7] := 500;
m[7] := '5 euros (Billete)';
c[8] := 200;
m[8] := '2 euros (Moneda)';
c[9] := 100;
m[9] := '1 euro (Moneda)';
c[10] := 50;
m[10] := '50 céntimos (Moneda)';
c[11] := 20;
m[11] := '20 céntimos (Moneda)';
c[12] := 10;
m[12] := '10 céntimos (Moneda)';
c[13] := 5;
m[13] := '5 céntimos (Moneda)';
c[14] := 2;
m[14] := '2 céntimos (Moneda)';
c[15] := 1;
m[15] := '1 céntimo (Moneda)';
//Pasa el total a pagar a céntimos
cantidad := cantidad * 100;
cantidad := int(cantidad);
for i := 1 to 15 do
begin
s[i] := int(cantidad / c[i]);
cantidad := cantidad - s[i] * c[i];
end;
for i := 1 to 15 do
begin
if s[i] <> 0 then
begin
if resultado <> '' then
resultado := resultado + chr(13) + chr(10) + floattostr(s[i]) + ' -> ' + m[i]
else
resultado := floattostr(s[i]) + ' -> ' + m[i];
end;
end;
result := resultado;
except
result := '';
end;
end;
Ejemplo de uso:
procedure TformMenuPrincipal.bCalcularClick(Sender: TObject);
begin
txtResultado.Text := obtenerNumMonedasBilletes(strtofloat(txtImporte.Text));
end;
Publicado el: 2008-10-26