Hola Javier, Gonzalo: el tema es así:
Factorial de 5 es: 5*4*3*2 =
120Factorial de 10 es: 10*9*8*7*6*5*4*3*2 =
3628800que coincide con lo que decía Javier.
Lo que dice Gonzalo es cierto: El
integer tiene
2 bytes en
DOS compilando con
Turbo Pascal. Pero aparentemente en
Win32, con un compilador más moderno como
FreePascal el
integer tiene
4 bytes y en 4 bytes con signo podés almacenar valores de hasta
2^31 (muuuuy graaaandeeeesss).
De hecho, esto lo podés probar con la función
sizeof (no se si existe en Turbo Pascal, pero en FreePascal funciona).
El resultado que le tira a Gonzalo, que dice que factorial de 10 es
24320 es incorrecto, simplemente hagan la cuenta con cualquier
calculadora para verificarlo. Pero le tira este error porque lo debe
haber compilado con Turbo Pascal y Turbo le asigna 2 bytes al
integer con lo que la variable "se desborda" y entonces almacena cualquier cosa.
Les adjunto un ejemplo de como usar esta función.
En la materia "Algoritmos y Estructuras de Datos" consideramos siempre que el
integer tiene
2 bytes.
Saludos ,
Pablo.
--
Ing. Pablo Augusto Sznajdleder_________
(5411) 4637-8879 | 15-4419-JAVA (5282)
email:
pab...@pablosz.com.ar
skype: pabloszn
http://www.PabloSZ.com.arhttp://www.JavaSOS.com.ar