TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Recursividade ocorre quando uma função recorre a si mesma

Por:   •  11/11/2018  •  Pesquisas Acadêmicas  •  384 Palavras (2 Páginas)  •  213 Visualizações

Página 1 de 2

[pic 1]

Aluno: Jesus Bruno Gabriel Coronel Martinez

Aluno: Thiago Jeremias

Engenharia de produção    2º Fase        

Recursividade

Recursividade ocorre quando uma função recorre a si mesma.

Durante uma função recursiva, a cada necessidade é feita uma nova ocorrência da função com comandos e variáveis “isolados” das recursões anteriores.

Até que a ocorrência seja resolvida, a função será executada. Porém fazê-la parar é um problema. Se durante o processo houver algum erro, é quase certo que as recursões fiquem repetindo infinitamente, até que se esgote a memória.

Toda recursividade é composta por um caso base e pelas suas chamadas recursivas.

O caso base é o caso mais simples, onde o problema é resolvido facilmente usando uma condição. Já as chamadas recursivas acabam se agrupando com o caso base, pois elas procuram simplificar o problema.

Vantagem

O uso da recursividade é a simplificação do código, tornando-o mais legível e fácil de entender, de maneira clara e limpa.

Desvantagem

Sobre as desvantagens da recursividade podemos citar o grande uso da memória, principalmente quando o número de recursões é muito alto. Muitas vezes outra solução acaba gastando menos memória e com isso passa a ser melhor utilizado do que uma recursão.

Exemplo:

//Cálculo de fatorial com função recursiva

#include

#include

//protótipo da função fatorial

double fatorial(int n);

int main(void)

{

  int numero;

  double f;

 

  printf("Digite o numero que deseja calcular o fatorial: ");

  scanf("%d",&numero);

 

  //chamada da função fatorial

  f = fatorial(numero);

 

  printf("Fatorial de %d = %.0lf",numero,f);

 

  getch();

  return 0;

}

//Função recursiva que calcula o fatorial

//de um numero inteiro n

double fatorial(int n)

{

  double vfat;

 

  if ( n <= 1 )

    //Caso base: fatorial de n <= 1 retorna 1

    return (1);

  else

  {

    //Chamada recursiva

    vfat = n * fatorial(n - 1);

    return (vfat);

  }

}

Explicação do código:

Neste código, o valor 1 será retornado e a função será encerrada se o número n for menor ou igual a 1, não havendo chamadas de recursão. Se isso não ocorrer, as chamadas recursivas iniciam o processo até ser resolvido o caso mais simples. Por fim, serão dados valores através das chamadas, com o objetivo de resolver o cálculo proposto.

...

Baixar como (para membros premium)  txt (2.4 Kb)   pdf (49.3 Kb)   docx (26.5 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com