A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de.

Apresentações semelhantes


Apresentação em tema: "Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de."— Transcrição da apresentação:

1 Algoritmos e Estruturas de Dados RECURSIVIDADE

2 O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de programação: a recursividade é uma técnica em que uma rotina, no processo de execução de suas tarefas, chama a si mesma; A recursão é uma técnica poderosa em definições matemáticas;

3 O que é recursividade? Uma Imagem Recursiva

4 Técnicas para desenvolver algoritmos recursivos A recursão em programação se dá através de sub-rotinas, geralmente funções; Assim sendo cria-se uma função que em seu corpo terá uma chamada a sí própria; Todo cuidado é pouco ao se usar funções recursivas, pois facilmente podemos gerar um “loop infinito”.

5 Técnicas para desenvolver algoritmos recursivos A primeira coisa que temos de pensar é em um critério de parada. Isto impede que a função chame a sí própria diversas vezes; Este é um requisito fundamental as chamadas recursivas de um procedimento P devem estar sujeitas à uma condição B, a qual, em algum instante, se torna falsa. “Finitude dinâmica”

6 Técnicas para desenvolver algoritmos recursivos Como uma rotina pode chamar a si mesma? Exemplo: cálculo do fatorial de um número;  0! = 1  n>0  n! = n * (n-1)! Function FAT (X: integer): integer; var i, ResFat: integer; Begin ResFat:=1; For i:=1 to X do ResFat:=ResFat*I; FAT:=ResFat; End; Não Recursiva

7 Exemplo de função recursiva function fat (x: integer): integer; begin If (x=0) or (x=1) then fat := 1 else fat := x * fat(x-1); end; Note que, enquanto n não for igual a 0, a função fat chama a si mesma, cada vez com um valor menor. n=0 é critério de parada para esta função.

8 Recursividade Há algoritmos que são mais eficientes quando implementados de forma recursiva, entretanto rotinas recursivas requerem área para armazenamento dos valores dos objetos a cada chamada; Isto acarreta num risco de exceder o espaço disponível de memória e ocorrer uma falha no programa;

9 Recursividade Tipos de recursão:  Se um procedimento P contiver uma referência explícita a si próprio, este procedimento é dito diretamente recursivo;  Se P contiver uma referência a outro procedimento Q, que por sua vez contém uma referência direta ou indireta a P, então P é dito indiretamente recursivo;

10 Recursividade Exercício: Série de Fibonacci  Fib 0 = 1  Fib 1 = 1  Fib n = Fib n-1 + Fib n-2, para n>1 Faça uma função recursiva em Pascal para calcular o valor da série de para um dado número inteiro;

11 Exercícios 1) Faça uma função recursiva que calcule o somatório dos números de 1 até um inteiro positivo N passado como parâmetro. Faça um programa que exemplifique o uso da função. 2) Faça uma função recursiva que calcule o somatório dos números de A até B onde A < B e ambos os números são fornecidos como parâmetro para a função. Considere que A e B podem ser tanto positivos como negativos.

12 Exercícios 3) Usando apenas recursividade (sem repetição) crie uma função que retorne a soma dos múltiplos de um inteiro x que sejam menores que um inteiro y. A condição é que x < y. Ex: Se x = 4 e y = 21. Resp = 60 4) Crie uma função recursiva que informe o produto dos números de A até B, onde A < B.


Carregar ppt "Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de."

Apresentações semelhantes


Anúncios Google