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

Slides:



Advertisements
Apresentações semelhantes
Aquiles Burlamaqui AULA 09
Advertisements

Estruturação de Linguagens (Pascal e C++)
Python: Recursão Claudio Esperança.
Linguagem PASCAL Subprogramas
Programação de Computadores
Construção de Aplicativos Computacionais METEOROLOGIA
Recursividade Prof. Rosana Palazon.
Funções, Execução Condicional, Recursividade e Iteração
Recursividade e Iteração Factorial, Fibonacci e Maior Divisor Comum
Introdução aos Computadores e à Programação
Recursividade Prof. Alex F. V. Machado
Algoritmos e Estrutura de Dados I
Estruturas de repetição
PROGRAMAÇÃO MODULAR (com uso de subprogramas) prof
Algoritmos e Programação Estruturada Conceitos básicos
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
BCC101 – Matemática Discreta
Rodrigo de Toledo (original: Claudio Esperança)
Programação Dinámica Análise de algoritmos UNISUL
Robson Godoi / Sandra Siebra
Descreva por palavras suas o funcionamento de um algoritmo
Algoritmos e Programação
O Portal do Estudante de Computação
Paradigmas de programação
Variáveis, Tipos de Dados e Constantes
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Introdução à Programação
Estrutura de Dados Unidade 16 Simulação da função Fatorial utilizando recursão – 16.1 Prof. Dr. Roberto Ferrari Jr.
BCC /01 Funções. Material Didático Unificado. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência.
Algoritmos Recursivos Klauko Mota. Conceito de Recursividade Um programa recursivo é um programa que chama a si mesmo, direta ou indiretamente Conceito.
Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
UNIDADE 6 - complemento Funções recursivas
Estruturas de Dados Módulo 3 – Controle de Fluxo
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Recursão.
Indução Matemática Recursão
Estrutura de Decisão e Repetição
Paradigmas de Projetos de Algoritmos
Ambiente de Execução - Rotinas
Algoritmos e Estruturas de Dados I – Recursão
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Linguagem Pascal Prof. Sérgio Rodrigues.
Algoritmos e Estruturas de Dados I – Recursão
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
Introdução à Linguagem C
Computação Eletrônica
Algoritmos e Programação
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Recursividade Profs. De Prog2 e Lab2.
INE Fundamentos de Matemática Discreta para a Computação
Alinhamento de Cadeias de DNA COMPARAÇÃO DE SEQÜÊNCIAS
Programação de Computadores - 1
Linguagem de Programação II Parte VI Professora: Flávia Balbino da Costa.
Introdução à Programação
Programação I Aula 07 Autor: Francisco Airton Professor: André L. R. Didier 1.
Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo.
27/28 Abril de 2004Recursividade e Iteração1 Pedro Barahona DI/FCT/UNL Abril 2004.
Professor Luiz José Hoffmann Filho
Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I.
Linguagens de Programação Pedro Lopes MÓDULO 4- Subprogramas (Procedimentos e Funções) 2010/2011.
MODULARIZAÇÃO Técnica utilizada e tida como vantajosa na confecção de programas. Consiste em dividir o programa em diversos módulos ou sub-programas, de.
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Aula Prática 5 Recursão Monitoria  Na linguagem C, como em muitas outras linguagens, uma função pode chamar a si própria.  Uma função assim.
Recursividade e análise Cristiano Arbex Valle Vinicius Fernandes dos Santos
Grupos de Slides No 5. Prof. SIMÃO
Algoritmos Grupos de Slides No 7. Prof. SIMÃO Estrutura de Repetição “para - passo”” for Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof. Luis Alberto.
Transcrição da apresentação:

Algoritmos e Estruturas de Dados RECURSIVIDADE

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;

O que é recursividade? Uma Imagem Recursiva

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”.

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”

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

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.

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;

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;

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;

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.

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.