Pascal/Turbo Pascal - Porque falla?????

 
Vista:

Porque falla?????

Publicado por Eric de la Cruz (1 intervención) el 25/08/2002 01:52:59
Hola, en el caso del programa anterior si no defino la variable de salida y de entrada en el mismo formato (en este caso un LONGINT) a la salida me da cualquier cosa, si alguien sabe porque lo hace me haria un enorme favor

Pruebenlo:

PROGRAM Fechas;

VAR
Dia,Mes,Anio:INTEGER;
Fecha:LONGINT;

BEGIN
WRITELN('Ingrese d¡a, mes y a¤o');
READ(Dia,Mes,Anio);
Fecha:=Anio*10000+Mes*100+Dia;
WRITELN('La fecha es:',Fecha);
END.

Si cambian Dia,Mes,Anio:INTEGER; por Dia,Mes,Anio:LONGINT; la salida es correcta

Muchas gracias
Eric
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

RE:Porque falla?????

Publicado por Roberto Garcia (128 intervenciones) el 25/08/2002 06:02:53
No es que de cualquier cosa.

Lo que pasa es que sobrepasas el valor de los enteros, recuerda que las variables de tipo integer tienen un rango de -32768 a 32767, entonces ( anio * 10000 + mes *100 + dia ) da un resultado mucho mas grande de lo que soporta un integer y aunque el resultado lo asignas a un longint este toma el valor despues de haber hecho la operacion con los integer.

por eso si a fecha la pones como integer y a las demas variables las pones como longint, ocurrira lo mismo.
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

RE:Porque falla?????

Publicado por Ge-ergon (17 intervenciones) el 25/08/2002 06:40:18
Convertir variable integer a una del tipo longint
Probar lo siguiente:

VAR
Dia,Mes,Anio:INTEGER;
Fecha:LONGINT;

BEGIN
WRITELN('Ingrese dia, mes y año');
READ(Dia,Mes,Anio);
Fecha:=longint(Anio)*10000+longint(Mes)*100+Dia;
WRITELN('La fecha es:',Fecha);
END.

Tambien existe:byte(),integer(),real(),word()
Probar Tambien:
program Ejemplo;
var k:char;
begin
k:='A';
writeln(ord(k));
writeln(byte(k))
end.
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