Resultados 1 al 3 de 3

problema con ejercicio pascal

Esta es una discusión para el tema problema con ejercicio pascal en el foro Programación, bajo la categoría Webmasters y Programadores; Buenos dias a todos los foreros, estoy aprendiendo a utilizar el turbopascal.Llevo dos meses en esto y me he quedado atascado en un ejercicio ,necesitaria ayuda ,y si conoceis de ...
Página: 1


  1. #1
    Junior Member

    Fecha de ingreso
    10 ene, 09
    Mensajes
    2
    Buenos dias a todos los foreros, estoy aprendiendo a utilizar el turbopascal.Llevo dos meses 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

     
     
  2. #2
    Super Moderador

    Fecha de ingreso
    25 jul, 04
    Mensajes
    4,035
    A ver si recuerdo... hace al menos 9 años que no toco ni pascal ni delphi, pero intentaré ayudarte desde la lógica.



    El término genérico de la serie polinómica que tienes es, X^n/n (siendo n un número impar), eso es importante que lo tengas en cuenta a la hora de pensar la función. Ahora, para llevar a cabo esto deberás de utilizar un ciclo dentro del programa o dentro de la función. Sui sólo te limitas a los diez primeros números irás salteando de 2 en 2. Yo particularmente lo haría en una función (una función se diferencia de un procedimiento en que devuelve un valor).



    A ver si recuerdo algo como para escribir código.

    Veamos, sería algo así.



    Código:
    program contador;
    
    
    
    var numero :real;
    
    
    
    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 (&#39;Error fatal: La expresión dada no es válida.&#39;); Halt; 
    
    End;
    
    End; *{Función}
    
    
    
    
    
    
    
    function serie(nro : real) : real;
    
    begin
    
    var denominador : integer;
    
    denominador := -1;
    
    repeat
    
    denominador := denominador + 2;
    
    nro = nro + potencia (nro,denominador)/denominador;
    
    until denominador = 19;
    
    end;
    
    
    
    begin (*programa principal*)
    
    writeln(&#39;ingrese el número del cual se calculará la serie&#39;);
    
    read(numero);
    
    writeln(&#39;La sumatoria de la serie es: &#39;, serie(numero));
    
    end.


    De antemano me disculpo por cualquier error que pueda haber, es sólo a manera de orientación para que te des una idea.



    Saludos.

     
     
  3. #3
    Junior Member

    Fecha de ingreso
    10 ene, 09
    Mensajes
    2
    yo es que hecho la potencia por un lado y el factorial por otro pero nose como seguir:



    POTENCIA:



    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 (&#39;Error fatal: Desbordamiento interno en la expresión.&#39; 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 (&#39;Error fatal: La expresión dada no es válida.&#39; Halt;

    End;

    End; {Función}



    FACTORIAL



    PROGRAM EJER53;

    USES CRT;



    VAR factorial, x, num, y:REAL;

    BEGIN

    {Este programa hace el factorial de un numero}



    ClrScr;



    WRITE (&#39;Introduzca un numero para hacer su factorial: &#39;



    READLN (num); WRITELN (&#39;&#39;



    x:=1;



    WHILE num > 1 DO

    BEGIN

    x:=x * num;

    num:=num - 1;

    WRITELN (x);

    END;

    END.

     
     

Temas similares

  1. ejercicio de c++
    Por josejam en el foro Programación
    Respuestas: 11
    Último mensaje: 22/09/2009, 19:48
  2. EJERCICIO 2
    Por rob1104 en el foro Taller PHP
    Respuestas: 14
    Último mensaje: 04/05/2008, 19:22
  3. EJERCICIO 1
    Por rob1104 en el foro Taller PHP
    Respuestas: 26
    Último mensaje: 23/05/2007, 07:41
  4. problema al ejecutar turbo pascal
    Por hamawy en el foro Windows XP
    Respuestas: 1
    Último mensaje: 28/10/2006, 05:45
  5. ayuda con ejercicio de pascal
    Por manollex en el foro Programación
    Respuestas: 5
    Último mensaje: 17/08/2006, 01:21

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •