Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Crear cuenta

Pascal/Turbo Pascal - OPERADOR MOD y DIV

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:OPERADOR MOD y DIV
Autor:Daniel (2 intervenciones)
Fecha:09/10/2012 21:19:45
Hola amigos.

Tengo que hacer un programa de "una caja registradora" y tengo un problema con una parte del código.

El programa ha de darme las vueltas indicando el número de monedas de cada tipo, de forma que éstas sean el mínimo número posible (habiendo monedas de 20, 10, 5 ,2 y 1 centimo).

He hecho lo siguiente. (Aquí sólo calcularía el número de monedas de 20 centimos)

program project11;

VAR
entrega,precio,cambio:REAL;
m20:INTEGER;


begin

WRITELN ('Introduca el precio: ');
READLN (precio);
WRITELN ('Introduzca cantidad entregada: ');
READLN (entrega);
WRITELN ('Cantidad a devolver: ');
cambio:= (entrega-coste);
WRITELN (cambio:4:2);
WRITELN ('Monedas: ');
m20:= cambio DIV 0.2;
WRITELN (m20);

end.

La cosa es que los operadores MOD y DIV sólo operan con números enteros y la variable "cambio" y 0.2 son reales.

Espero que puedan ayudarme con esta duda.

Un saludo y gracias de antemano.
Responder Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:OPERADOR MOD y DIV
Autor:Daniel (2 intervenciones)
Fecha:09/10/2012 22:20:27
Vale, lo he resuelto, lo dejo aquí por si a alguien le sirve de algo.

program Caja_registradora; VAR entrega,coste,cambio:REAL; m20,m10,m5,m2,m1,cambio2:INTEGER; begin WRITELN ('Introduca el precio: '); READLN (coste); WRITELN ('Introduzca cantidad entregada: '); READLN (entrega); WRITELN ('Cantidad a devolver: '); cambio:= (entrega-coste); WRITELN (cambio:4:2); WRITELN ('Monedas: '); cambio2:=round(cambio*100); m20:=cambio2 DIV 20; m10:= (cambio2 MOD 20) DIV 10; m5:= ((cambio2 MOD 20) MOD 10) DIV 5; m2:= (((cambio2 MOD 20) MOD 10) MOD 5) DIV 2; m1:= ((((cambio2 MOD 20)MOD 10) MOD 5) MOD 2) DIV 1; WRITELN ('20cent: ',m20 ,' 10cent: ',m10, ' 5cent: ',m5,' 2cent: ',m2,' 1cent: ',m1); read(cambio); end.

Un saludo
Comentar Subir