Pascal/Turbo Pascal - OPERADOR MOD y DIV

 
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

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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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