En la documentación de Free Pascal observamos lo siguiente:
- El tipo smallint es para enteros con signo de 16 bits por lo que el rango de enteros que puede almacenar es de -32768 a 32767.
- El tipo word es para enteros sin signo por lo que llega a representar enteros de 0 a 65535.
- Hay un tipo que ya nos interesa más que es el longword. Son 32 bits sin signo por lo que el límite llega a 4294967295.
De momento la primera modificación que vamos a hacer en el programa es el cambio de integer a longword.
Bueno, y ahora que hemos visto estas limitaciones del freePascal igual tenemos que ver que nos ofrece otro lenguaje. Por ejemplo el framework .NET.
Este interesante post http://varionet.wordpress.com/2007/10/23/%C2%BFpor-que-usar-los-tipos-de-datos-de-net-framework/ habla de otro tema relacionado, pero lo que más nos interesa es la tabla final con las posibilidades del framework.
Después de verlo hay que reconocer que claramente sus tipos enteros superan lo mejor de freePascal.
Ahora bien, teniendo en cuenta que el mayor número conocido en un determinado momento del año 2003 tenía 6.320.430 dígitos vemos que realmente lo fastidioso es la limitación "artificial" de los lenguajes a la hora de manejar enteros.
La proeza del 2003 podéis verla en www.laflecha.net/canales/ciencia/noticias/200312121
Mañána la primera solución.
No hay comentarios:
Publicar un comentario