Aula Prática 5 Recursão Monitoria 2011.2.  Na linguagem C, como em muitas outras linguagens, uma função pode chamar a si própria.  Uma função assim.

Slides:



Advertisements
Apresentações semelhantes
Aquiles Burlamaqui AULA 09
Advertisements

Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 13 Criado por Frederick H. Colclough, Colorado Technical University Recursão.
Python: Recursão Claudio Esperança.
Recursividade Prof. Rosana Palazon.
Exercicio 1 Dados três valores X, Y e Z, Faça um programa em C para verificar se eles podem ser os comprimentos dos lados de um triângulo e, se forem,verificar.
Introdução a Algoritmos Seqüenciais
Recursividade Prof. Alex F. V. Machado
Algoritmos e Programação Linguagens de Programação Teoria Aula (09/06)
FACENS – Engenharia da Computação Lógica Computacional II
Estruturas de Controle
THOBER CORADI DETOFENO, MSC. Aula 07
Curso de PHP O comando // serve para comentário linear no php
Lógica de Programação Módulo II
Linguagem de Programação
Estrutura de decisão e repetição em JAVA
Algoritmos e Programação
O Portal do Estudante de Computação
Professor José Rui Aula 07
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Aula prática 6 Vetores e Matrizes
Introdução à Programação
Aula prática 4 Laços Monitoria de Introdução à Programação
Introdução à Programação Estruturas de Repetição
Linguagem de Programação II Parte VII
Linguagem de Programação I Parte III
CADEIA DE CARACTERES (Strings)
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
Programação II Estruturas de Dados Aula 02 - continuação
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.
Linguagem e Ambiente Scratch
Algoritmos e Estruturas de Dados I – Recursão
Linguagem de Programação JAVA
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Algoritmos e Estruturas de Dados I – Recursão
Recursão Uma função é dita recursiva quando dentro do seu código existe uma chamada para si mesma Exemplo Cálculo do fatorial de um número:
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.
Algoritmos e Estrutura de Dados I
Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de.
Introdução à Linguagem C
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
Aula prática 3 Aprofundando em Funções Parâmetros de uma função Uso do return Execução Variáveis Global, local e estática Monitoria de Introdução à.
Introdução à Programação
Recursividade Bruno Silva.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
INTRODUÇÃO A PROGRAMAÇÃO EM C THOBER CORADI DETOFENO, MSC. Aula 09 JOINVILLE 2013 Universidade do Estado de Santa Catarina – CCT/UDESC.
Aula Prática 3 Funções Monitoria Introdução à 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.
Fundamentos de linguagens de programação
Recursividade Profs. De Prog2 e Lab2.
INE Fundamentos de Matemática Discreta para a Computação
THOBER CORADI DETOFENO, MSC. Aula 07
Algoritmos.
Introdução à Programação Engenharia da Computação Aula Prática 3 Funções Monitoria
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.
Algoritmo e Estrutura de Dados I
Professor Luiz José Hoffmann Filho
Aula prática 7 Strings Monitoria de Introdução à Programação.
Estrutura de Repetição
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Aula Prática 3 Exercícios Funções Monitoria
1Unidade 04 – Estruturas de Repetição Algoritmos e Linguagens de Programação Estruturas de Repetição Prof.: Guilherme Baião S. Silva
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
Grupos de Slides No 5. Prof. SIMÃO
Recursividade, Entrada pelo teclado e Funções com retorno Dilvan Moreira.
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:

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 é chamada função recursiva.

CUIDADO!  Todo cuidado é pouco ao se fazer funções recursivas. A primeira coisa a se providenciar é um critério de parada.  Este vai determinar quando a função deverá parar de chamar a si mesma.  Isto impede que a função se chame infinitas vezes.

Estrutura Básica tipo funcao(parametros) { tipo retorno; if(Condição de parada) {... } else //recursão { // atribuição não é obrigatória retorno = funcao(parametrosNovos); } return retorno; }

Exemplo  Uma função que calcule o fatorial de um número inteiro n é um bom exemplo de uma função recursiva:

 Note que, enquanto n não menor ou igual a 1, a função fat chama a si mesma, cada vez com um valor menor. N<=1 é critério de parada para esta função.

Vantagens da Recursão  Solução mais simples de alguns problemas;  Em geral, códigos mais concisos;  Caso não seja usada, é necessário manter o controle das variáveis manualmente (book keeping)

Desvantagens da Recursão  Funções recursivas são mais lentas que funções iterativas, pois muitas chamadas consecutivas a funções são feitas;  Erros de implementação podem levar a chamadas infinitas. Isto é, caso não seja indicada uma condição de parada, ou se esta condição nunca for satisfeita, entre outros.

DÚVIDAS?

Exercícios  Faça um programa que receba dois números e um tipo de operação (+, -, /, *). Encontre o valor de cada um desses números através de uma função recursiva mostrada abaixo, depois realize a operação informada pelo usuário entre os dois novos números. F(x) = x + (x-2) + (x-4) + (x-6) , Parando em 1 ou 0. Ex: x=4 e y =3 operacao = * F(4) = = 6 F(3) = = 4 Saida = 6 * 4 = 24

Exercícios  Faça um programa que calcule recursivamente a soma dos digitos de um inteiro positivo. Ex: x = Resultado = = 10

Exercícios  A conjectura de collatz estabelece uma seqüência de números, ou trajetória, que a partir de um número natural inicial obedece aos seguintes critérios:  1. Se o número for par seu sucessor na seqüência será sua metade  2. Se o número for ímpar seu sucessor será uma unidade superior ao seu triplo.  A conjectura diz que toda sequencia terminará em 1. Imprima a sequencia de numeros de forma que o primeiro número será o digitado pelo usuário e o último será o numero 1.  Obs: Suponha que 0 < n <= 100.