[eside-ghost] Problema con free pascal

albertito atetinho en gmail.com
Mie Oct 18 22:56:28 CEST 2006


hola!

erzapito escribió:
> Jon Ander Peñalba escribió:
>> Hola a todos ;-)
>>
>> He estado haciendo algunas practicas de la asignatura de programación 
>> de 1º (pascal). Lo primero que hice fue mirar los programas 
>> alternativos que había en la página de e-ghost e instale el Free 
>> pascal. Hasta aquí todo bien, el problema surge al compilar la 
>> primera practica.
>>
>> /program Practica1;
>>
>> var
>>   dias, horas, minutos, segundos: integer;
>>   tiempo: integer;
>>
>>
>> begin
>>   writeln;
>>   write('Introduce el tiempo: ');
>>   readln(tiempo);
>>   writeln;
>>
>>   dias := tiempo div (24*60*60);
>>   tiempo := tiempo mod (24*60*60);
>>   horas := tiempo div (60*60);
>>   tiempo := tiempo mod (60*60);
>>   minutos := tiempo div 60;
>>   tiempo := tiempo mod 60;
>>   segundos := tiempo;
>>
>>   writeln('El resultado es:');
>>   writeln('Días: ', dias:0);
>>   writeln('Horas: ', horas:0);
>>   writeln('Minutos: ', minutos:0);
>>   writeln('Segundos: ', segundos:0);
>>   writeln;
>> end.
>>
>> /En contra de lo que cabria esperar, el resultado es el siguiente:/
>>
>> *Introduce el tiempo: 172814
>>
>> El resultado es:
>> Dí­as: 0
>> Horas: -6
>> Minutos: -36
>> Segundos: -34
>>
>> */No me convencía el resultado, así que probé con GNU Pascal, y el 
>> resultado era el correcto:
>> *
>> /Introduce el tiempo: 172814
>>
>> El resultado es:
>> Dí­as: 2
>> Horas: 0
>> Minutos: 0
>> Segundos: 14
>>
>> /*¿Alguna idea de porque Free Pascal hace eso?
>>
>> PD: He añadido GNU Pascal a la lista de programas alternativos, que 
>> no estaba ;-)
>>
>>        ______________________________________________ LLama Gratis a 
>> cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo 
>> por minuto. http://es.voice.yahoo.com
>> _______________________________________________
>> eside-ghost mailing list
>> eside-ghost en deusto.es
>> https://listas.deusto.es/mailman/listinfo/eside-ghost
>>
> puede ser el tipo de datos, 24*60*60 a lo mejor es mayor que el int de 
> freepascal, prueba a declararlos con  un tipo más grande.
alex, me has quitado la respuesta del teclado. efectivamente, el 
problema es que el tipo de datos 'integer' de Pascal no es lo 
suficientemente grande como para almacenar el dato que necesitas. Para 
solucionar el problema, usa el tipo de datos 'longint'.
de todos modos, al compilar probaste la opción "-MDelphi" que genera el 
.exe con soporte para Delphi? Igual te hubiese dicho algo.

agur y suerte!
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>


-- 
albertito
Blog Personal: http://www.ifelsedeveloper.blogia.com
Página Personal: http://atetinho.googlepages.com/home

IMPORTANTE:
Por favor, si me mandas correos con copia a varias personas, pon mi dirección de correo en copia oculta (CCO), para evitar que acabe en montones de sitios, eliminando mi privacidad, favoreciendo la propagación de virus y la proliferación del SPAM.



Más información sobre la lista de distribución eside-ghost