• Jueves 14 de Noviembre de 2024, 04:24

Autor Tema:  PROBLEMA CON EJERCICIO  (Leído 1535 veces)

Jorgehr

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
PROBLEMA CON EJERCICIO
« en: Sábado 10 de Enero de 2009, 16:29 »
0
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

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: PROBLEMA CON EJERCICIO
« Respuesta #1 en: Lunes 12 de Enero de 2009, 10:11 »
0
Buenos días a ti también

¿Qué tal si pones lo que llevas hecho?

Salud

Jorgehr

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: PROBLEMA CON EJERCICIO
« Respuesta #2 en: Lunes 12 de Enero de 2009, 22:06 »
0
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}

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: PROBLEMA CON EJERCICIO
« Respuesta #3 en: Miércoles 14 de Enero de 2009, 12:33 »
0
Para la potencia, puedes usar esto, que es más corto, aunque tu método también está bien:

Código: Pascal
  1. Function Potencia(Base, Exponente:integer) : real;
  2. begin
  3.     Potencia := Exp(Base*Ln(Exponente));
  4. end;
  5.  
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
  1. factorial(x) = x * factorial(x-1), donde factorial(1) = 1
  2.  

¿Cómo harías esto en Pascal?

Por favor, usa la etiquetas de código  ;)