Ver Mensaje Individual
  #8  
Antiguo 23-03-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por zeus_boy
se trata de un programa que al ingresar una cierta cantidad (por ej. 2580), me indique cuantos billetes y/o monedas se necesitan para completar tal cantidad... de acuerdo al ejemplo:
Tienes una cantidad inicial R (2580 en tu ejemplo). Si divides esa cantidad entre el valor del billete de mayor denominación (1000 en tu ejemplo) obtienes cierta cantidad (2 en tu ejemplo) y te sobra algo (580 en tu ejemplo). Este sobrante o residuo es lo que ya no puedes pagar con billetes de 1000.

Veamos qué llevamos hasta el momento:

Código Delphi [-]
M = R div 1000; // M será la división R/1000 (el 2 del ejemplo)
R = R mod 1000; // R será ahora el residuo de la división R/1000 (el sobrante de 580)

Ok. Ahora que ya cubrimos los billetes de 1000, procedamos con los de 500. Los pasos son similares. Dividimos la cantidad R (580) entre el valor del billete de más alta denominación (omitiendo el de 1000 que ya usamos). Eso nos dará el número de biletes de 500 que necesitamos. El sobrante (80) es lo que ya no podemos pagar con billetes de quinientos.

Así vamos:

Código Delphi [-]
Q := R div 500; // Q será la división R/500
R := R mod 500; // R será ahora el residuo de la división R/500

Hacemos lo mismo con las siguientes denominaciones (200 y 100):

Código Delphi [-]
D := R div 200; // Q será la división R/200
R := R mod 200; // R será ahora el residuo de la división R/200

C := R div 100; // C será la división R/100
R := R mod 100; // R será ahora el residuo de la división R/100

Claro que, en el ejemplo, el sobrante en este paso es 80 por lo que D y C serán 0, pero en el caso general podrán ser distintos.

Espero que ya te vayas haciendo la idea. Seguimos con las denominaciones (50, 20, 10, 5)

Código Delphi [-]
Cq := R div 50;
R := R mod 50;

V := R div 20;
R := R mod 20;

Dz := R div 10;
R := R mod 10;

Cn := R div 5;
R := R mod 5;

Al final de esto, lo que tenemos son las variables (enteras) M, Q, D, C, Cq, V, Dz, Cn con el número de billetes y/o monedas de cada denominación, necesarios para pagar el importe original. El residuo que queda (en R) es el número de pesos (0 en tu ejemplo).

// Saludos
Responder Con Cita