INF1007: Programação Funções Recursivas. 12/03/2014 (c) Dept. Informática - PUC-Rio 1

Tamanho: px
Começar a partir da página:

Download "INF1007: Programação Funções Recursivas. 12/03/2014 (c) Dept. Informática - PUC-Rio 1"

Transcrição

1 INF1007: Programação 2 4 Funções Recursivas 12/0/2014 (c) Dept. Inormática PUCRio 1

2 Tópicos Principais Recursão Deinições recursivas Funções Recursivas Implementação Comportamento 12/0/2014 (c) Dept. Inormática PUCRio 2

3 Deinições Recursivas Em uma deinição recursiva um item é deinido em termos de si mesmo, ou seja, o item que está sendo deinido aparece como parte da deinição; Em todas as unções recursivas existe: Caso base (um ou mais) cujo resultado é imediatamente conhecido. Passo recursivo em que se tenta resolver um subproblema do problema inicial. 12/0/2014 (c) Dept. Inormática PUCRio

4 Deinições Recursivas Exemplo: o atorial de um número 1, sen 0 n! n ( n 1)!, sen 0 Caso BASE Passo Recursivo 12/0/2014 (c) Dept. Inormática PUCRio 4

5 Deinições Recursivas Exercício: orneça a deinição recursiva para a operação de potenciação Caso BASE x n 1, se n 0 ( n 1) x x, se n 0 Passo Recursivo 12/0/2014 (c) Dept. Inormática PUCRio 5

6 Deinição: Uma unção recursiva é aquela que az uma chamada para si mesma. Essa chamada pode ser: direta: uma unção A chama a ela própria indireta: unção A chama uma unção B que, por sua vez, chama A /* Recursao direta */ void unc_rec(int n)... unc_rec(n1);... 12/0/2014 (c) Dept. Inormática PUCRio 6

7 Exemplo: unção recursiva para cálculo de atorial n! 1, se n 0 n ( n 1)!, se n 0 /* Função recursiva para cálculo do atorial */ int at (int n) i (n==0) return 1; return n*at(n1); Caso BASE Passo Recursivo 12/0/2014 (c) Dept. Inormática PUCRio 7

8 Exemplo: unção recursiva para cálculo de potenci ação /* Função recursiva para cálculo de potenciacao */ int pot (int x, int n) i (n==0) return 1; return x*pot(x,n1); Caso BASE Passo Recursivo 12/0/2014 (c) Dept. Inormática PUCRio 8

9 Comportamento: quando uma unção é chamada recursivamente, criase um ambiente local para cada chamada as variáveis locais de chamadas recursivas são independentes entre si, como se estivéssemos chamando unções dierentes 12/0/2014 (c) Dept. Inormática PUCRio 9

10 #include <stdio.h> int at (int n); int main (void) int n = ; int r; r = at ( n ); print("fatorial de %d = %d \n", n, r); return 0; /* Função recursiva para cálculo do atorial */ int at (int n) int ; i (n==0) =1; = n*at(n1); return ; main 12/0/2014 (c) Dept. Inormática PUCRio 10 at() n r n

11 #include <stdio.h> int at (int n); int main (void) int n = ; int r; r = at ( n ); print("fatorial de %d = %d \n", n, r); return 0; /* Função recursiva para cálculo do atorial */ int at (int n) int ; i (n==0) =1; = n*at(n1); return ; main 12/0/2014 (c) Dept. Inormática PUCRio 11 at(2) n at() n r n 2

12 #include <stdio.h> int at (int n); int main (void) int n = ; int r; r = at ( n ); print("fatorial de %d = %d \n", n, r); return 0; /* Função recursiva para cálculo do atorial */ int at (int n) int ; i (n==0) =1; = n*at(n1); return ; main 12/0/2014 (c) Dept. Inormática PUCRio 12 at(1) n at(2) n at() n r n 1 2

13 #include <stdio.h> int at (int n); int main (void) int n = ; int r; r = at ( n ); print("fatorial de %d = %d \n", n, r); return 0; /* Função recursiva para cálculo do atorial */ int at (int n) int ; i (n==0) =1; = n*at(n1); return ; main 12/0/2014 (c) Dept. Inormática PUCRio 1 at(0) n at(1) n at(2) n at() n r n 0 1 2

14 #include <stdio.h> int at (int n); int main (void) int n = ; int r; r = at ( n ); print("fatorial de %d = %d \n", n, r); return 0; /* Função recursiva para cálculo do atorial */ int at (int n) int ; i (n==0) =1; = n*at(n1); return ; main 12/0/2014 (c) Dept. Inormática PUCRio 14 at(0) n at(1) n at(2) n at() n r n

15 #include <stdio.h> int at (int n); int main (void) int n = ; int r; r = at ( n ); print("fatorial de %d = %d \n", n, r); return 0; /* Função recursiva para cálculo do atorial */ int at (int n) int ; i (n==0) =1; = n*at(n1); return ; main 12/0/2014 (c) Dept. Inormática PUCRio 15 at(1) n at(2) n at() n r n 1 1 2

16 #include <stdio.h> int at (int n); int main (void) int n = ; int r; r = at ( n ); print("fatorial de %d = %d \n", n, r); return 0; /* Função recursiva para cálculo do atorial */ int at (int n) int ; i (n==0) =1; = n*at(n1); return ; main 12/0/2014 (c) Dept. Inormática PUCRio 16 at(2) n at() n r n 2 2

17 #include <stdio.h> int at (int n); int main (void) int n = ; int r; r = at ( n ); print("fatorial de %d = %d \n", n, r); return 0; /* Função recursiva para cálculo do atorial */ int at (int n) int ; i (n==0) =1; = n*at(n1); return ; main 12/0/2014 (c) Dept. Inormática PUCRio 17 at() n r n 6

18 #include <stdio.h> int at (int n); int main (void) int n = ; int r; r = at ( n ); print("fatorial de %d = %d \n", n, r); return 0; /* Função recursiva para cálculo do atorial */ int at (int n) int ; i (n==0) =1; = n*at(n1); return ; main 12/0/2014 (c) Dept. Inormática PUCRio 18 r n 6

19 Exemplo: série de Fibonacci 0, se n 0 ib(n) 1, se n 1 ib(n 1) ib(n 2), se n 1 Caso BASE 2 casos BASE Passo Recursivo 12/0/2014 (c) Dept. Inormática PUCRio 19

20 Exemplo: série de Fibonacci /* Calculo da serie de Fibonacci */ int ib (int n) i (n==0) return 0; i (n==1) return 1; return (ib(n1) + ib(n2)); 12/0/2014 (c) Dept. Inormática PUCRio 20

21 Cadeias de caracteres Funções recursivas para manipular cadeias de caracteres: baseiamse em uma deinição recursiva de cadeias de caracteres: Uma cadeia de caracteres é: a cadeia de caracteres vazia; ou um caractere seguido de uma cadeia de caracteres 12/0/2014 (c) Dept. Inormática PUCRio 21

22 Cadeias de caracteres Implementação recursiva da unção imprime e imprime invertido: void imprime_rec (char* s) i (s[0]!= '\0') print( %c, s[0]); imprime_rec(&s[1]); void imprime_inv (char* s) i (s[0]!= '\0') imprime_inv(&s[1]); print( %c, s[0]); 12/0/2014 (c) Dept. Inormática PUCRio 22

23 Cadeias de caracteres Implementação recursiva da unção comprimento : int comprimento_rec (char* s) i (s[0] == '\0') return 0; return 1 + comprimento_rec(&s[1]); 12/0/2014 (c) Dept. Inormática PUCRio 2

24 Reerências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004) Capítulo 4 Funções 12/0/2014 (c) Dept. Inormática PUCRio 24

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 05 Recursividade Edirlei Soares de Lima Introdução As seguintes sentenças são Verdadeiras ou Falsas? 1. Alguém diz: Estou mentido agora! ; 2. Alguém

Leia mais

Programação II RECURSÃO

Programação II RECURSÃO Programação II RECURSÃO Bruno Feijó Dept. de Inormática, PUCRio Motivação Escher: Metamorphosis (197) Drawing Hands (1948) Relativity (195) http://www.worldoescher.com/gallery/ Alguém diz: Esta sentença

Leia mais

Programação de Computadores II. Recursividade

Programação de Computadores II. Recursividade Programação de Computadores II Recursividade Livro: Waldemar Celes, Reato Cerqueira, José Lucas Ragel. Itrodução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos origiais dos pros.: Marco

Leia mais

Recursividade. Prof. Jesus José de Oliveira Neto

Recursividade. Prof. Jesus José de Oliveira Neto Recursividade Prof. Jesus José de Oliveira Neto Algoritmos podem ser definidos de duas formas: Forma iterativa ou não recursiva: utiliza laços de repetição (while, for, do/while) Forma recursiva: métodos

Leia mais

Programação de Computadores II. Cap. 7 Cadeias de Caracteres 1/2

Programação de Computadores II. Cap. 7 Cadeias de Caracteres 1/2 Programação de Computadores II Cap. 7 Cadeias de Caracteres 1/2 Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos

Leia mais

Programação de Computadores II. Cap. 5 Vetores

Programação de Computadores II. Cap. 5 Vetores Programação de Computadores II Cap. 5 Vetores Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

INF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 6 Ordenação de Vetores 01/10/2015 (c) Dept. Informática - PUC-Rio 1 Tópicos Introdução Ordenação bolha (bubble sort) Ordenação por seleção (selection sort) 01/10/2015 (c) Dept. Informática

Leia mais

Estruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 4 Funções 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Programação de Computadores II. Cap. 4 Funções

Programação de Computadores II. Cap. 4 Funções Programação de Computadores II Cap. 4 Funções Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

Exercícios Capítulos 5 e 6

Exercícios Capítulos 5 e 6 Estruturas de Dados Exercícios Capítulos e 6 6//6 (c) Dept. Informática - PUC-Rio Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus () Capítulo

Leia mais

Cadeias de Caracteres (Strings)

Cadeias de Caracteres (Strings) INF1005: Programação 1 Cadeias de Caracteres (Strings) 02/05/10 (c) Paula Rodrigues 1 Tópicos Caracteres Cadeias de caracteres Leitura de caracteres e cadeias de caracteres Funções que manipulam cadeias

Leia mais

Módulo 3 Controle de Fluxo

Módulo 3 Controle de Fluxo Estruturas de Dados Módulo 3 Controle de Fluxo 16/8/2005 (c) Marco A. Casanova - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

Módulo 7 Cadeias de Caracteres

Módulo 7 Cadeias de Caracteres Estruturas de Dados Módulo 7 Cadeias de Caracteres 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

Cap. 3 Entrada e Saída e Controle de Fluxo

Cap. 3 Entrada e Saída e Controle de Fluxo Programação de Computadores II Cap. 3 Entrada e Saída e Controle de Fluxo Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados

Leia mais

Introdução à Programação. Recursão

Introdução à Programação. Recursão Itrodução à Programação Recursão 1 Tópicos Pricipais Recursão Deiições recursivas Fuções Recursivas Implemetação Comportameto 2 Deiições Recursivas Em uma deiição recursiva um item é deiido em termos de

Leia mais

Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 11 Pilhas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 11 Pilhas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 9 Tipos Abstratos de Dados (c) Dept. Informática - PUC-Rio 1 Tópicos Módulos e compilação em separado Tipo abstrato de dados Exemplo 1: TAD Ponto Exemplo 2: TAD Círculo Exemplo 3:

Leia mais

Listas Encadeadas. Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

Listas Encadeadas. Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes Listas Encadeadas Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Fevereiro de 2011 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados

Leia mais

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes Árvores Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Setembro de 2011 Tópicos Introdução Árvores binárias Implementação em Java Ordens de percurso em árvores binárias Altura de uma

Leia mais

Programação de Computadores II. Cap. 7 Cadeias de Caracteres

Programação de Computadores II. Cap. 7 Cadeias de Caracteres Programação de Computadores II Cap. 7 Cadeias de Caracteres Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais

Leia mais

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 17 - Busca 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Aula 08 Ponteiros Edirlei Soares de Lima Endereço de uma Variável Toda variável definida em um programa ocupa uma área de memória; A cada área de memória

Leia mais

INF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 8 Listas Encadeadas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados (c) Dept. Informática

Leia mais

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 INF1007: Programação 2 0 Revisão 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 Tópicos Principais Variáveis e Constantes Operadores e Expressões Entrada e Saída Tomada de Decisão Construção com laços

Leia mais

Instituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense -

Instituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense - Instituto de C Linguagem C: Listas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Listas Encadeadas Definição Funções básicas Tópicos Principais

Leia mais

INF1007: Programação 2. 4 Tipos Estruturados. 10/23/09 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2. 4 Tipos Estruturados. 10/23/09 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 4 Tipos Estruturados 10/23/09 (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Tipo estrutura Definição de novos tipos Aninhamento de estruturas Vetores de estruturas Vetores

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Tópicos Listas Encadeadas Introdução às listas encadeadas Manipulação de elementos Implementações recursivas Listas

Leia mais

INF1007 Programação 2 9 Pilhas. (c) Dept. Informática - PUC-Rio 1

INF1007 Programação 2 9 Pilhas. (c) Dept. Informática - PUC-Rio 1 INF1007 Programação 2 9 Pilhas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Interface do tipo pilha Exemplo de uso: verificação de expressões Implementação de pilha com lista encadeada

Leia mais

INF1007: Programação 2. 2 Alocação Dinâmica. 17/02/2014 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2. 2 Alocação Dinâmica. 17/02/2014 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 2 Alocação Dinâmica 17/02/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Alocação dinâmica Vetores locais e funções 17/02/2014 (c) Dept. Informática - PUC-Rio 2 Alocação Dinâmica

Leia mais

Programação de Computadores II. Cap. 9 Tipos Abstratos de Dados (TAD)

Programação de Computadores II. Cap. 9 Tipos Abstratos de Dados (TAD) Programação de Computadores II Cap. 9 Tipos Abstratos de Dados (TAD) Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados

Leia mais

Módulo 16 - Ordenação

Módulo 16 - Ordenação Estruturas de Dados Módulo 16 - Ordenação 15/05/2013 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 08 Vetor de Ponteiros Edirlei Soares de Lima Vetor de Cadeia de Caracteres Um vetor de cadeia de caracteres pode ser alocado de duas formas: Alocação

Leia mais

Aula 1 Apresentação do curso e Conceitos Fundamentais. Objetivo do curso

Aula 1 Apresentação do curso e Conceitos Fundamentais. Objetivo do curso Estruturas de Dados Aula 1 Apresentação do curso e Conceitos Fundamentais 26/02/2008 (c) Depto. de Informática - PUC-Rio 1 Objetivo do curso Desenvolver habilidades de programação na linguagem C. Familiarizar

Leia mais

Módulo 16 - Ordenação. Referências

Módulo 16 - Ordenação. Referências Estruturas de Dados Módulo 6 - Ordenação /5/006 (c) Dept. Informática - PUC-Rio Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (004) Capítulo

Leia mais

Módulo 10 Listas Encadeadas

Módulo 10 Listas Encadeadas Estruturas de Dados Módulo 10 Listas Encadeadas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 09 Ordenação de Vetores Edirlei Soares de Lima Ordenação de Vetores Problema: Entrada: vetor com os elementos a serem ordenados; Saída: mesmo vetor com

Leia mais

Programação de Computadores II. Cap. 16 Ordenação

Programação de Computadores II. Cap. 16 Ordenação Programação de Computadores II Cap. 16 Ordenação Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 07 Vetor de Ponteiros Edirlei Soares de Lima Vetor de Cadeia de Caracteres Vetores de cadeias de caracteres. Exemplo: char alunos[50][81]; Função para

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 03 - Ponteiros Edirlei Soares de Lima Endereço de uma Variável Toda variável definida em um programa ocupa uma área de memória; A cada área de memória

Leia mais

Recursão David Déharbe

Recursão David Déharbe Recursão David Déharbe 1 1 Objetivos da aula O conceito de recursão. Exemplos. Programação em C. 2 2 Roteiro da aula Revisão de funções; Motivação; Definição; Dois exemplos básicos; Recursão mútua; Dois

Leia mais

INF 1620 P1-13/09/02 Questão 1 Nome:

INF 1620 P1-13/09/02 Questão 1 Nome: INF 1620 P1-13/09/02 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$

Leia mais

Módulo 8 Tipos Estruturados

Módulo 8 Tipos Estruturados Estruturas de Dados Módulo 8 Tipos Estruturados 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Tipos Estruturados Tipo estrutura Definição de novos tipos Aninhamento de Estruturas Vetores de estruturas

Leia mais

INF1007: Programação 2 7 Busca em Vetores. 01/04/2014 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 7 Busca em Vetores. 01/04/2014 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 7 Busca em Vetores 01/04/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Busca em vetor Busca linear Busca binária 01/04/2014 (c) Dept. Informática - PUC-Rio 2 Busca em

Leia mais

Módulo 5 Vetores e Alocação Dinâmica

Módulo 5 Vetores e Alocação Dinâmica Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

Módulo 1 Conceitos Fundamentais

Módulo 1 Conceitos Fundamentais Estruturas de Dados Módulo 1 Conceitos Fundamentais 7/3/2007 (c) Marco A. Casanova - PUC-Rio 1 Preliminares Referência básica: Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas

Leia mais

Programação científica C++

Programação científica C++ Programação científica C++ NIELSEN CASTELO DAMASCENO Slide 8 Matrizes como argumento de funções O nome de uma matriz (sem os colchetes) representa o endereço onde a matriz está armazenada. Ao passar o

Leia mais

Módulo 18 - Tabelas de Dispersão. Referências

Módulo 18 - Tabelas de Dispersão. Referências Estruturas de Dados Módulo 18 - Tabelas de Dispersão 7/6/2006 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

Linguagem C: Elementos fundamentais

Linguagem C: Elementos fundamentais Instituto de C Linguagem C: Elementos fundamentais Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Variáveis e Constantes Operadores

Leia mais

Programação II RECURSÃO

Programação II RECURSÃO Programação II RECURSÃO Bruno Feijó Dept. de Informática, PUC-Rio Motivação Escher: Metamorphosis (1937) - Drawing Hands (1948) Relativity (1953) http://www.worldofescher.com/gallery/ Alguém diz: Esta

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 13 Pilhas Edirlei Soares de Lima Pilha Uma pilha é uma estrutura de dados dinâmica na qual novos elementos são sempre inseridos no topo da pilha e acessados

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Recursão Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Recursão Recursão 1 Recursão 2

Leia mais

Encapsulamento de Código: Funções e Procedimentos

Encapsulamento de Código: Funções e Procedimentos Luciano Moraes Da Luz Brum Universidade Federal do Pampa Unipampa Campus Bagé email: lucianobrum18@gmail.com Encapsulamento de Código: Funções e Procedimentos Sumário Introdução à Funções e Procedimentos

Leia mais

INF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 10 Árvores Binárias (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Introdução Árvores binárias Representação em C Ordens de percurso em árvores binárias Altura de uma árvore

Leia mais

Programação. Prof Marcelo Zorzan Prof a Melissa Zanatta

Programação. Prof Marcelo Zorzan Prof a Melissa Zanatta Programação - Recursividade - Prof Marcelo Zorzan Prof a Melissa Zanatta É o processo de resolução de um problema, reduzindo-o em um ou mais subproblemas com as seguintes características: - São idênticos

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Arquivos Funções para abrir e fechar arquivos Arquivos em modo texto Arquivos em modo binário ATENÇÃO

Leia mais

Linguagem de programação métodos/funções

Linguagem de programação métodos/funções Instituto Federal de Minas Gerais Campus Ponte Nova Linguagem de programação métodos/funções Professor: Saulo Henrique Cabral Silva MÉTODOS / MODULARIZANDO Modularizando... 2 Métodos Funções Sub-rotinas

Leia mais

Analise o código abaixo:

Analise o código abaixo: Recursão - introdução Analise o código abaixo: 1 # include 2 # include 3 int Fatorial ( int x) 4 int k, s =1; for (k =0;k

Leia mais

Recursão. Aula 1. Liana Duenha. Faculdade de Computação Universidade Federal de Mato Grosso do Sul

Recursão. Aula 1. Liana Duenha. Faculdade de Computação Universidade Federal de Mato Grosso do Sul Recursão Aula 1 Liana Duenha Faculdade de Computação Universidade Federal de Mato Grosso do Sul Algoritmos e Programação II, Análise de Sistemas, 2010 Martinez & Rubert (FACOM) Recursão APIIAS 1 / 25 Conteúdo

Leia mais

Estruturas de Dados. Exercícios Capítulos 5 e 7. 6/4/2006 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Exercícios Capítulos 5 e 7. 6/4/2006 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Exercícios Capítulos 5 e 7 6/4/2006 (c) Dept. Informática - PUC-Rio 1 Questão 1 6/4/2006 (c) Dept. Informática - PUC-Rio 2 Questão 1 /* Cálculo da média aritmética e da média harmônica

Leia mais

INF 1620 P1-11/04/03 Questão 1 Nome:

INF 1620 P1-11/04/03 Questão 1 Nome: INF 1620 P1-11/04/03 Questão 1 (a) Escreva uma função em C que receba como parâmetro um número inteiro não negativo e retorne, como resultado da função, o valor do seu fatorial. Essa função deve obedecer

Leia mais

Algoritmos e Estruturas de Dados I Linguagem C

Algoritmos e Estruturas de Dados I Linguagem C Algoritmos e Estruturas de Dados I (DCC/003) Algoritmos e Estruturas de Dados I Linguagem C Aula Tópico 11 Recursividade 1 Recursão Na linguagem C, uma função pode chamar outra função. A função main()

Leia mais

REVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

REVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Ponteiros Alocação dinâmica de memória Recursão INSTITUTO DE COMPUTAÇÃO - UFF 2 PONTEIROS PONTEIROS C permite o armazenamento

Leia mais

Introdução à Programação C

Introdução à Programação C Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Recapitulando Um programa C é uma sequência de diretivas (#include e #define), declarações de funções auxiliares,

Leia mais

Linguagem C: Ordenação

Linguagem C: Ordenação Instituto de C Linguagem C: Ordenação Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Introdução Algoritmos de ordenação Ordenação

Leia mais

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática INF1005 Programação I Pontifícia Universidade Católica Departamento de Informática 1 INF1005 Exercício da Editora Pontifícia Universidade Católica Departamento de Informática 2 O Problema Uma editora fornece

Leia mais

Caracteres. Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência entre caracteres e códigos numéricos

Caracteres. Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência entre caracteres e códigos numéricos Caracteres Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência entre caracteres e códigos numéricos Exemplo: Tabela ASCII Alguns alfabetos precisam de maior

Leia mais

Módulo 18 - Tabelas de Dispersão

Módulo 18 - Tabelas de Dispersão Estruturas de Dados Módulo 18 - Tabelas de Dispersão 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Exercícios Adicionais P3 e P4 de 2001 a 2003: http://www.inf.puc-rio.br/~inf1620/p&l/links.html 2/6/2005

Leia mais

PROTÓTPOS DE FUNÇÕES/PROCEDIMENTOS

PROTÓTPOS DE FUNÇÕES/PROCEDIMENTOS PROTÓTPOS DE FUNÇÕES/PROCEDIMENTOS Uma função (ou procedimento) deve ser declarada sempre antes da sua primeira utilização. É por essa razão que devemos escrever todas as funções antes da função main().

Leia mais

ALGORITMOS I. Procedimentos e Funções

ALGORITMOS I. Procedimentos e Funções Procedimentos e Funções Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 1 MÓDULOS São blocos de instruções que realizam tarefas específicas. Carregado uma vez e pode ser executado quantas vezes

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 04 Alocação Dinâmica Edirlei Soares de Lima Vetores - Declaração e Inicialização Declaração de um vetor: int meu_vetor[10]; Reserva um espaço de memória

Leia mais

Estruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011

Estruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011 Estruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011 Fontes Bibliográficas Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Caracteres e Cadeias de Caracteres

Caracteres e Cadeias de Caracteres Caracteres e Cadeias de Caracteres INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 caracteres e cadeias de caracteres tópicos caracteres cadeias de caracteres (strings) vetor

Leia mais

Permite modularidade (dividir programa em partes): Facilita a depuração (debug) e portabilidade.

Permite modularidade (dividir programa em partes): Facilita a depuração (debug) e portabilidade. 222222222222222222222222222 8 - FUNÇÕES 81 - Características básicas É um trecho independente de código, com objetivos bem definidos Programas em C, geralmente consistem em várias pequenas funções, ao

Leia mais

3 Cadeias de Caracteres

3 Cadeias de Caracteres INF1007: Programação 2 3 Cadeias de Caracteres 05/03/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Caracteres Cadeias de caracteres Leitura de caracteres e cadeias de caracteres Exemplos de funções que

Leia mais

Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função.

Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função. Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função. Funções e estruturas básicas 1. Faça uma função que recebe a idade de uma

Leia mais

Fontes Bibliográficas. Listas Circulares. Função Imprime

Fontes Bibliográficas. Listas Circulares. Função Imprime Fontes Bibliográficas Estruturas de Dados Aula 12: Outras Implementações de Listas Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004) Capítulo

Leia mais

Prova de Programação (21090) Data: 31 de Janeiro de 2008

Prova de Programação (21090) Data: 31 de Janeiro de 2008 Ministério da Ciência, Tecnologia e Ensino Superior Curso:... Prova de Programação (21090) Data: 31 de Janeiro de 2008 Nome:... Nº de Estudante:... B. I. nº... Assinatura do Vigilante:... RESERVADO PARA

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Vetores e alocação dinâmica Vetores Alocação dinâmica Vetores locais e funções ATENÇÃO Esta apresentação

Leia mais

Estruturas de Dados Aula 16: Árvores com Número Variável 13/06/2011

Estruturas de Dados Aula 16: Árvores com Número Variável 13/06/2011 Estruturas de Dados Aula 16: Árvores com Número Variável de Filhos 13/06/2011 1 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos

Leia mais

Programação de Computadores II. Cap. 17 Busca

Programação de Computadores II. Cap. 17 Busca Programação de Computadores II Cap. 17 Busca Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

Programação de Computadores II. Cap. 5 Alocação Dinâmica

Programação de Computadores II. Cap. 5 Alocação Dinâmica Programação de Computadores II Cap. 5 Alocação Dinâmica Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais

Leia mais

Módulo 14 - Estruturas genéricas

Módulo 14 - Estruturas genéricas Estruturas de Dados Módulo 14 - Estruturas genéricas 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Recursão em C

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Recursão em C Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Recursão em C Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO DA AULA Definição

Leia mais

INF 1620 P1-17/09/05 Questão 1 Nome:

INF 1620 P1-17/09/05 Questão 1 Nome: INF 1620 P1-17/09/05 Questão 1 Considere as equações de movimento para calcular a posição (s) e velocidade (v) de uma partícula em um determinado instante t, dado sua aceleração a, posição inicial s 0

Leia mais

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C 1 Implementações básicas: a) Implementar o procedimento LerMatriz que preenche uma matriz de L linhas por C colunas de inteiros (L, C 1); b) Implementar o procedimento

Leia mais

Computação 2. Aula 7. Profª. Fabiany Ponteiros

Computação 2. Aula 7. Profª. Fabiany Ponteiros Computação 2 Aula 7 Ponteiros Profª. Fabiany fabianyl@utfpr.edu.br O que são Ponteiros? Um ponteiro é uma variável que contém um endereço de memória. Este endereço é normalmente a posição de uma outra

Leia mais

INF 1620 P1-11/04/08 Questão 1 Nome:

INF 1620 P1-11/04/08 Questão 1 Nome: INF 1620 P1-11/04/08 Questão 1 Nas Olimpíadas, em uma determinada modalidade esportiva, os competidores recebem a nota de quatro jurados e a nota final é o resultado da média das quatro notas menos um

Leia mais

SCC0214 Projeto de Algoritmos

SCC0214 Projeto de Algoritmos SCC0214 Projeto de Algoritmos Recursão Implemente uma função para calcular o fatorial de um número inteiro positivo 2 1 Definição Uma função é dita recursiva quando é definida em seus próprios termos,

Leia mais

Tópicos Cap. 3 Entrada e Saída e Controle de Fluxo Livro printf e scanf if e? while for switch break continue Entrada e Saída Entrada e Saída

Tópicos Cap. 3 Entrada e Saída e Controle de Fluxo Livro printf e scanf if e? while for switch break continue Entrada e Saída Entrada e Saída Tópicos Programação de Computadores II Cap. 3 e Controle de Fluxo Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos

Leia mais

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 4

Estrutura de Dados. Ricardo José Cabeça de Souza   Parte 4 Estrutura de Dados Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Parte 4 As funções dividem grandes tarefas de computação em tarefas menores Criação de funções evita a repetição de código Exemplo

Leia mais

Introdução a Programação. Tipos Estruturados de Dados

Introdução a Programação. Tipos Estruturados de Dados Introdução a Programação Tipos Estruturados de Dados Tópicos da Aula Hoje aprenderemos a trabalhar com tipos de dados mais complexos Tipos Primitivos x Tipos Estruturados Conceito de Tipos Estruturados

Leia mais

Estrutura de Dados (DPADF 0056)

Estrutura de Dados (DPADF 0056) Estrutura de Dados (DPADF 0056) Aula 1 Motivação e Revisão Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno

Leia mais

Estruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 12 - Filas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais