Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouRaíssa Neves Alterado mais de 10 anos atrás
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.
Apresentações semelhantes
© 2025 SlidePlayer.com.br Inc.
All rights reserved.