Pascal/Turbo Pascal - ¿Porqué da resultado negativo?

 
Vista:

¿Porqué da resultado negativo?

Publicado por eliza (2 intervenciones) el 31/07/2012 22:35:09
Ayuda!! no encuentro la razón por la que el Monto devuelve un nro. negativo.

Program Camisas;
uses crt;

{Declaracion de variables}
var P: integer;
NC: integer;
MONTO: real;

{Cuerpo del programa}
BEGIN
CLRSCR;
WRITELN(´INGRESE EL PRECIO DE LA CAMISA´);
READLN (P);
WRITELN(´INGRESE LA CANTIDAD DE CAMISAS COMPRADAS´);
READLN(NC);
IF (NC>= 3) THEN
MONTO.= NC*P*0.85
ELSE
MONTO:=NC*PC;

WRITELN (' SE COMPRARON ', NC ,' CAMISAS Y EL MONTO A PAGAR ES ', MONTO:0:2);
READKEY
END.

He probado de toda forma, dando valor inicial a las variables, cambie tipo de variable pero el monto sale un entero negativo. ¿Porqué?

Gracias por su ayuda!!!
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

¿Porqué da resultado negativo?

Publicado por ramon (2158 intervenciones) el 31/07/2012 23:00:15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{Comprobado corre bien solo detecto este error pero puede ser de copia.}
var P: integer;   la p en este otro lado es pc ------------------------------------------>
NC: integer;                                                                                                                     i
MONTO: real;                                                                                                                   i
                                                                                                                                           i
{Cuerpo del programa}                                                                                                 i
BEGIN                                                                                                                               i
CLRSCR;                                                                                                                         i
WRITELN(´INGRESE EL PRECIO DE LA CAMISA´);                                               i
READLN (P);                                                                                                                    i
WRITELN(´INGRESE LA CANTIDAD DE CAMISAS COMPRADAS´);                    i
READLN(NC);                                                                                                                  i
IF (NC>= 3) THEN                                                                                                           i
MONTO.= NC*P*0.85                                                                                                     i
ELSE                                                                                                                                  i
MONTO:=NC*PC; ------------------------------------------------------------------------------>
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

¿Porqué da resultado negativo?

Publicado por eliza (2 intervenciones) el 01/08/2012 01:19:19
Gracias por su pronta respuesta.
Si, usted tiene razón, fue un dedazo, es P la variable.
Estoy trabajando con la versión Turbo Pascal que necesita que se corran dos parches antes de ejecutar el programa. Lo raro es que el mismo ejercicio, el mismo algoritmo, casi las mismas variables han usado mis compañeros y les da el resultado esperado. .

Admiro su disposición para ayudar a los atrevidos a trabajar con Pascal. Saludos.
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

¿Porqué da resultado negativo?

Publicado por ramon (2158 intervenciones) el 01/08/2012 17:00:32
Bájese turbo pascal 7.0 se encuentra libre en la red y no tendrá ese problema.
Suerte.
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