Para que sirve?
Pues para facilitarle el trabajo al cajero cuando va a buscar el dinero de las nóminas al banco, que sepa rapidamente la cantidad de billetes y monedas por denominación que tiene que pedir
Tambien le sirve para cuando vaya a entregar el salario a cada trabajador
delphi
procedure TForm1.Desglosar(Importe :Single; var Billetes:array of Single; var Monedas:array of Single); var Dinero, Desglose :Single; begin //****************************** Billetes ****************************** Dinero:=Int(Importe); //Billetes de 100 if cb100.Checked then begin Desglose:=Int(Dinero / 100); Dinero:=Dinero - Desglose * 100; Billetes[0]:=Billetes[0] + Desglose; end; //Billetes de 50 if cb50.Checked then begin Desglose:=Int(Dinero / 50); Dinero:=Dinero - Desglose * 50; Billetes[1]:=Billetes[1] + Desglose; end; //Billetes de 20 if cb20.Checked then begin Desglose:=Int(Dinero / 20); Dinero:=Dinero - Desglose * 20; Billetes[2]:=Billetes[2] + Desglose; end; //Billetes de 10 if cb10.Checked then begin Desglose:=Int(Dinero / 10); Dinero:=Dinero - Desglose * 10; Billetes[3]:=Billetes[3] + Desglose; end; //Billetes de 5 if cb05.Checked then begin Desglose:=Int(Dinero / 5); Dinero:=Dinero - Desglose * 5; Billetes[4]:=Billetes[4] + Desglose; end; //Billetes de 3 if cb03.Checked then begin Desglose:=Int(Dinero / 3); Dinero:=Dinero - Desglose * 3; Billetes[5]:=Billetes[5] + Desglose; end; //Billetes de 1 Desglose:=Int(Dinero / 1); Dinero:=Dinero - Desglose * 1; Billetes[6]:=Billetes[6] + Desglose; //****************************** Monedas ****************************** Dinero:=(Round((Frac(Importe)*100))); //Monedas de 0.20 if cb020.Checked then begin Desglose:=Int(Dinero / 20); Dinero:=Dinero - Desglose * 20; Monedas[0]:=Monedas[0] + Desglose; end; //Monedas de 0.05 if cb005.Checked then begin Desglose:=Int(Dinero / 5); Dinero:=Dinero - Desglose * 5; Monedas[1]:=Monedas[1] + Desglose; end; //Monedas de 0.02 if cb002.Checked then begin Desglose:=Int(Dinero / 2); Dinero:=Dinero - Desglose * 2; Monedas[2]:=Monedas[2] + Desglose; end; //Monedas de 0.01 Desglose:=Int(Dinero / 1); Dinero:=Dinero - Desglose * 1; Monedas[3]:=Monedas[3] + Desglose; end;
Una forma de llamarlo:
delphi
Desglosar(StrToFloat(Valor.Text), Bill, Mon);
Está hecho con las nomenclaturas de mi país, pero se puede modificar para adaptarlo a las nomenclaturas deseadas
Tal vez pueda optimizarse, pues esta fue una solución rápida que encontré y funciona bien. Este modulo forma parte de un Sistema de Nóminas que hice hace algunos años
Este es el formulario correspondiente a este código: