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.

Pascal/Turbo Pascal - OPERADOR MOD y DIV

  Imprimir  
Vista:

OPERADOR MOD y DIV

Publicado por Daniel (2 intervenciones) el 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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Pascal/Turbo Pascal
- Código fuente de Pascal/Turbo Pascal
- Cursos de Pascal/Turbo Pascal
- Temas de Pascal/Turbo Pascal
información
Códigos de Pascal/Turbo Pascal
- Métodos de ordenación
- Ajedrez
- Codificar una cadena

OPERADOR MOD y DIV

Publicado por Daniel (2 intervenciones) el 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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar