Programación General => Pascal => Mensaje iniciado por: Jorgehr en Sábado 10 de Enero de 2009, 16:29
Título: PROBLEMA CON EJERCICIO
Publicado por: Jorgehr en Sábado 10 de Enero de 2009, 16:29
Buenos dias a todos los foreros, estoy aprendiendo a utilizar el turbopascal.Llevo dos semanas en esto y me he quedado atascado en un ejercicio ,necesitaria ayuda ,y si conoceis de alguna pagina mas donde pueda acceder a mas ejercicios os lo agradeceria ,un saludo y gracias.
El ejercicio es :
Realizar un algoritmo que calcule la suma de los diez primeros números de la serie polinómica indicada a continuación:
X + X(al cubo)/ 3!+ x(a la quinta)/5!+X (a la septima)/7! +......
Siendo X un número introducido por el teclado, el numerador es el número elevado al exponente indicado y el denominador es el factorial de los números impares.
Muchas gracias de antemano
Título: Re: PROBLEMA CON EJERCICIO
Publicado por: m0skit0 en Lunes 12 de Enero de 2009, 10:11
Buenos días a ti también
¿Qué tal si pones lo que llevas hecho?
Salud
Título: Re: PROBLEMA CON EJERCICIO
Publicado por: Jorgehr en Lunes 12 de Enero de 2009, 22:06
si claro no hay ningun problema,hecho solo la funcion de potencia pero nose seguir mas:
Function Potencia (Numero, Exponente: Real) : Real; Begin If Exponente = 0.0 Then Potencia:= 1.0 Else If Numero = 0.0 Then Potencia:= 0.0 Else If Abs(Exponente*Ln(Abs(Numero))) > 87.498 Then Begin Writeln ('Error fatal: Desbordamiento interno en la expresión.'); Halt; End Else If Numero > 0.0 Then Potencia := Exp(Exponente*Ln(Numero)) Else If (Numero < 0.0) And (Frac(Exponente) = 0.0) Then If Odd(Round(Exponente)) Then Potencia:= -Potencia (-Numero, Exponente) Else Potencia := Potencia (-Numero, Exponente) Else Begin Writeln ('Error fatal: La expresión dada no es válida.'); Halt; End; End; {Función}
Título: Re: PROBLEMA CON EJERCICIO
Publicado por: m0skit0 en Miércoles 14 de Enero de 2009, 12:33
Para la potencia, puedes usar esto, que es más corto, aunque tu método también está bien:
Código: Pascal
Function Potencia(Base, Exponente:integer):real;
begin
Potencia :=Exp(Base*Ln(Exponente));
end;
Aquí usamos el hecho de que el logaritmo es la inversa de la exponencial para eliminar el número e y conseguir base elevado a exponente ;) Ah, y muy pocas veces se usan números reales como base o exponente porque se los números decimales se pueden convertir a potencias fácilmente ^_^
¿Sabes cómo se define una factorial?
Código: Text
factorial(x) = x * factorial(x-1), donde factorial(1) = 1