Pascal/Turbo Pascal - factorial

 
Vista:

factorial

Publicado por juan carlos  (8 intervenciones) el 11/02/2009 04:32:52
buen dias, necesito de su ayuda pues unmaestro nos encargo un programa en turbopascal k de el factorial de cualkier numero comprendido entre el 1 y el 20, y que ademas de inicio presente mi nombre, despues de darle enter k me despliege la respuesta, agradecere su ayuda,no se nada de turbopascal.
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
sin imagen de perfil

RE:factorial

Publicado por Willy (177 intervenciones) el 11/02/2009 07:49:02
Hola Juan Carlos.

El factorial de un número entero positivo se define como el producto de todos los números naturales anteriores o iguales a él. Se escribe n!, y se lee "n factorial". (Por definición el factorial de 0 es 1: 0!=1)

Por ejemplo, 5! = 5·4·3·2·1 = 120

Hice un programa (A mi manera) que realiza esto pero solo funciona con los números del 1 al 12 porque me econtré con el problema de que las variables de tipo longint solo pueden almacenar como máximo hasta el 2147483647 y no conozco una manera de almacenar un número más grande.

Espero te sirva de algo.

Uses Crt;
Var Numero,n, Contador : LongInt;

Begin
ClrScr;
Numero := 1;
WriteLn(' Willy');
While Numero <> 0 do
Begin
Write('Ingrese el numero: (ingrese 0 para salir)');
WriteLn;
ReadLn(Numero);
n := Numero;
For Numero := Numero downto 2 do
Begin
Contador := n * (Numero - 1);
n := Contador;
end;
WriteLn(n);
End;
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

RE:factorial

Publicado por Daniel (94 intervenciones) el 13/02/2009 13:07:49
For Numero := Numero downto 2 do

¿¿¿???

Numero := 1;
WriteLn(' Willy');
While Numero <> 0 do

¿¿¿??? Para hacer eso se usa REPEAT

Los reales tienen un rango más amplio que el longint.

Un saludo
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
sin imagen de perfil

RE:factorial

Publicado por Willy (177 intervenciones) el 14/02/2009 06:45:27
Tienes razón Daniel.

Numero := 1; Está de más porque más adelante hay un ReadLn(Numero);

For Numero := Numero downto 2 do Esto es porque el programa debe multiplicar por el número inmediato inferior cada vez hasta llear al 1. (Observa que luego hay un:
Contador := n * (Numero - 1);)

WriteLn(' Willy'); Esto es porque Juan Carlos pidió que el programa muestre un nombre.

While Numero <> 0 do Esto es para que el programa finalize si el usuario igresa un 0
Aunque estóy consciente de que hay otras maneras

Lo de los reales, honestamente no lo sabía.

Me alegra que haya alguien que haga correciones y ayude a que aprendamos más.
Bienvenidos los comentarios y críticas.
Saludos a todos!
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

duda sobre error

Publicado por Rosaura Solano (4 intervenciones) el 04/03/2009 22:34:39
Syntax error, identifier expected but ordinal const found
buenas..el error que muestro me está dando cuando compilo programa que estoy haciendo de tarea,,,,

program vueltoarreglo;
type z = (1...7) of Integer; (está aquí el error)
mb = (1000,100,50,25,10,5,1) of interger;
var
pa,de,v,vu:Integer;
begin
writeln('Ingrese el monto a pagar y la cantidad de dinero con la que pagará');
readln(pa);
readln(de);

gracias por la ayuda
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