Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

Función Recursiva en Pascal

Participa en el tema Función Recursiva en Pascal en el foro Programación.
Gente, me estoy complicando soberanamente la vida con esto: Generar una función recursiva que permita ...

Buscar en este tema:
 
  •  
    #1 Función Recursiva en Pascal
    Gente, me estoy complicando soberanamente la vida con esto:
    Generar una función recursiva que permita calcular la potencia 9 de un número entero comprendido entre el 1 y el 6 (considerando los extremos del intervalo) que se pasa como parámetro.

    COmpleté otros ejercicios que a priori parecían más complicados pero estoy trabado en este.
    Me dan una mano?

    Gracias
    +
     
    0
    Me gusta
     
    http://www.psicofxp.com/forums/programacion.313/861507-funcion-recursiva-en-pascal.html
    | Más
  • #2 Re: Función Recursiva en Pascal

    Seguro. Acá hay una función que multiplica recursivamente, a ver si te inspira:

    Código:
    (*   1: cualquier número multiplicado por 0 da 0
     *   2: a*b = a + a*(b-1)
     *)
    function multiplica (factor1: integer; factor2: integer): integer;
    begin
      if factor2 = 0 then multiplica := 0
      else multiplica := factor1 + multiplica(factor1, factor2-1);
    end;
    
    Suerte.
    Me gusta este mensaje
  • #3 Re: Función Recursiva en Pascal

    Muchas Gracias por la respuesta.
    Entiendo el ejemplo.
    Voy a probar y posteo lo que me salga
    Me gusta este mensaje
  • #4 Re: Función Recursiva en Pascal

    Bueno, ya casi, hice esto:


    program potencia;
    var
    a,d,z:integer;
    g:longint;
    function potencia9 (i,nro,h:integer):longint;
    var
    b:longint;
    begin
    b:=h*nro;
    if i = 8
    then
    potencia9:=(b)
    else
    b:= potencia9 (i+1,b,h);
    end;
    begin
    d:=1;
    writeln ('ingrese un nro del 1 al 6');
    readln (a);
    z:=a;
    g:=potencia9 (d,a,z);
    writeln (g);
    readln
    end.


    Mientras probaba le puse a la función varios writeln para que me fuera dando los valores en cada llamada y resultó.
    El problema es que cuando pido imprimir el resultado desde el programa principal y me trae cualquier cosa.
    Ingresando el nro 2 me tendria que dar 512, que es lo que me da en la ultima recursion, pero cuando lo quiero imprimir del programa principal me da 4234484.
    POr que será?
    Muchas gracias.
    Me gusta este mensaje
  • #5 Re: Función Recursiva en Pascal

    Originalmente publicado por cladrian Ver mensaje
    Bueno, ya casi, hice esto:


    program potencia;
    var
    a,d,z:integer;
    g:longint;
    function potencia9 (i,nro,h:integer):longint;
    var
    b:longint;
    begin
    b:=h*nro;
    if i = 8
    then
    potencia9:=(b)
    else
    b:= potencia9 (i+1,b,h);
    end;
    begin
    d:=1;
    writeln ('ingrese un nro del 1 al 6');
    readln (a);
    z:=a;
    g:=potencia9 (d,a,z);
    writeln (g);
    readln
    end.


    Mientras probaba le puse a la función varios writeln para que me fuera dando los valores en cada llamada y resultó.
    El problema es que cuando pido imprimir el resultado desde el programa principal y me trae cualquier cosa.
    Ingresando el nro 2 me tendria que dar 512, que es lo que me da en la ultima recursion, pero cuando lo quiero imprimir del programa principal me da 4234484.
    POr que será?
    Muchas gracias.
    A ver a ver a ver la potencia 9 de un numero no es mas que ese numero elevado a la 9 con lo cual consta de multiplicar 9 veces el mismo numero...

    Con lo cual no seria mas que esto:

    funcion potencia(numero, exponente) {
    si exponente es 1 entonces
    devoler numero;
    sino
    devolver numero * potencia(numero, exponente - 1);
    fin funcion

    Y la invocas con potencia(10, 9);

    Tan simple como eso, no se para que complicarse tanto con parametros de mas e innecesarios...

    Saludos
    Pablo
    Me gusta este mensaje
  • #6 Re: Función Recursiva en Pascal

    Gracias Pablo, lo voy a probar. Me complico porque no se, por eso recurro a ustedes.
    Lo pruebo y te digo.
    Gracias de nuevo.
    Me gusta este mensaje
  • #7 Re: Función Recursiva en Pascal

    Veo que IRSO te tiene mal como a mi...
    -----Agregado el 13/11/2008 a las 06 : 12 : 13-----
    IRSO te tiene mal como a mi,...
    Editado por mikoyan76 - 13.11.2008 17:12 hs. | Motivo: Mensajes unidos automáticamente
    Me gusta este mensaje
  • #8 Re: Función Recursiva en Pascal

    Me complicó un poco esto.
    Lo que si está jodido es algebra.
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 7 RESPUESTAS
  • 889 VISTAS
  • 4 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB