18 - Funções e Procedimentos em C Programação Modular
|
|
- André Belo Amaral
- 7 Há anos
- Visualizações:
Transcrição
1 18 - Funções e Procedimentos em C Programação Modular Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante
2 18.3 Funções e Procedimentos: Protótipos tipos Foi visto que na linguagem C a declaração da função deve ser colocada antes do ponto onde ela é chamada. Por esta razão, até agora, sempre escrevemos as funções antes da função principal main (). Para grandes projetos isto não é prático e algumas vezes é inviável determinar qual função deve preceder as demais. Este problema pode ser contornado com a utilização de protótipos tipos. O protótipo tipo de uma função consiste na repetição da linha de sua definição (cabeçalho) seguida do caractere (;). O protótipo tipo da função deve então ser colocado antes desta ser chamada. Vejamos o exemplo a seguir: 13/10/2013 Funções e Procedimentos 2
3 18.3 Funções e Procedimentos: Protótipos tipos //programa que lê um número e imprime seu fatorial #include <stdio.h> #include <stdlib.h> //Função que calcula e imprimi o fatorial void fat (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; printf("fatorial = %d\n", f); /* Função principal */ main () { int n; scanf("%d", &n); fat(n); system("pause"); Exemplo A função está colocada antes do local onde ela é chamada 13/10/2013 Funções e Procedimentos 3
4 18.3 Funções e Procedimentos: Protótipos tipos A utilização de protótipo tipo permite que a função seja colocada em qualquer parte do programa, inclusive depois da função main. Os protótipos servem para indicar ao compilador quais são os parâmetros de entrada e saída da função sem ser necessário detalhar sua implementação. Reescrevendo o exemplo anterior utilizando protótipo tipo: 13/10/2013 Funções e Procedimentos 4
5 //programa que lê um numero e imprime seu fatorial #include <stdio.h> #include <stdlib.h> void fat (int n); /* Função principal */ main () { int n; scanf("%d", &n); fat(n); system("pause"); //Função que calcula e imprimi o fatorial void fat (int n) { int i; int f = 1; for (i = 1; i <= n; i++) f *= i; printf("fatorial = %d\n", f); 18.3 Funções e Procedimentos: Protótipos tipos Protótipo da Função fat Chamada da Função fat A função está colocada depois do local onde ela é chamada, porque está sendo usado protótipo 13/10/2013 Funções e Procedimentos 5
6 18.3 Funções e Procedimentos: Protótipos tipos Exemplo 18.13: Função que imprime um vetor Cabeçalho e corpo da função Chamada da função dentro da função main. #include <stdio.h> #include <stdlib.h> // Função que imprime um vetor. void imprimev(int v[], int n) { int i; for(i=0; i < n; i++) printf(" [%2d] ",v[i]); printf("\n"); // Função principal chama imprimev. main() { int v[10] = {0; // Imprime elementos do vetor. imprimev(v,10); 13/10/2013 Funções e Procedimentos 6
7 18.3 Funções e Procedimentos: Protótipos tipos Refazendo o exemplo com Protótipo Protótipo da função Chamada da função Declaração e corpo da função #include <stdio.h> #include <stdlib.h> void imprimev(int v[], int n); // Função principal chama imprimev. main() { int v[10] = {0; // Imprime elementos do vetor. imprimev(v,10); // Função que imprime um vetor. void imprimev(int v[], int n) { int i; for(i=0; i < n; i++) printf(" [%2d] ",v[i]); printf("\n"); 13/10/2013 Funções e Procedimentos 7
8 18.3 Funções e Procedimentos: Protótipos tipos Exemplo Ping-Pong #include <stdio.h> #include <stdlib.h> #include <time.h> void ping(int a, int b, int val1, int cont); void pong(int a, int b, int val2, int cont); // Função ping. void ping(int a, int b, int val1, int cont) { int val2 = (rand()%(b-a+1))+a; printf( Ping: %d \n,val2); if (val2 > val1) cont++; if (cont!= 4) pong(a,b,val2,cont); else printf( Ping ganhou: %d! \n,cont); // Função pong. void pong(int a, int b, int val2, int cont) { int val1 = (rand()%(b-a+1))+a; printf( Pong: %d \n,val1); if (val1 > val2) cont--; if (cont!= 0) ping(a,b,val1,cont); else printf( Pong ganhou:%d! \n,cont); // Função Principal. main() { srand(time(0)); ping(0,4,2,2); 13/10/2013 Funções e Procedimentos 8
9 18.3 Funções e Procedimentos: Protótipos tipos Observe que no exemplo anterior o programa não teria como ser compilado sem o uso de protótipos, pois a função ping pode chamar pong e pong pode chamar ping. ping pong Ou seja, em qualquer ordem que sejam colocadas as funções ping e pong, sempre uma delas estará indefinida em relação a outra. O uso de protótipos não é uma opção e sim uma necessidade neste caso. 13/10/2013 Funções e Procedimentos 9
10 18.4 Funções e Procedimentos: Recursão Exemplo Pilha de Execução #include <stdio.h> #include <stdlib.h> #include <math.h> int f1(int x) { return (x/3); int f2(int x) { return ((cos(x)*cos(x))/(1-sin(x))); O programa ao lado equivale a resolver a expressão: y=(cos(x/3)*cos(x/3))/(1-sin(x/3)) f1 f1 f1 main() {int a, b; a = f1(2); b = f2(a); printf( b = f2(f1(2)) = %d \n, b); 13/10/2013 Funções e Procedimentos 10 f2 b
11 18.4 Funções e Procedimentos: Recursão xemplo Pilha de Execução #include <stdio.h> #include <stdlib.h> #include <math.h> int f1(int x) { return (x/3); A forma como isto é feito é melhor explicado com o conceito de pilha de execução: Início a=f1(2) int f2(int x) { return ((cos(x)*cos(x))/(1-sin(x))); main() main() main() {int a, b; a = f1(2); b = f2(a); printf( b = f2(f1(2)) = %d \n, b); printf(b) main() main() Fim b=f2(a) main() 13/10/2013 Funções e Procedimentos 11
12 18.4 Funções e Procedimentos: Recursão Definição função recursiva: Exemplos funções recursivas: Uma função é denominada recursiva se ela chama a si mesma. Toda função recursiva é estabelecida a partir de uma relação de recorrência que é calculada usando: (i) O cálculo do n-ésimo termo de uma função a partir de termos menores que n. (ii) Um caso base ao qual é associado um valor. Fatorial Fat(n) = n*fat(n-1) Fat(0) = 1 Fibonacci F(n) = F(n-1)+F(n-2) F(0) = F(1) = 1 13/10/2013 Funções e Procedimentos 12
13 18.4 Funções e Procedimentos: Recursão Exemplo Fatorial recursiva #include <stdio.h> #include <stdlib.h> int fat(int n) {int resp; if (n == 0) return 1; else resp = n*fat(n-1); return resp; // Função Principal. main() { int n; printf( Entre com n >= 0: ); scanf( %d,&n); printf( Fatorial(n) = %d \n,fat(n)); Caso base Fat(n) = 0 Fat(n) = n*fat(n-1) Chamada recursiva 13/10/2013 Funções e Procedimentos 13
14 18.4 Funções e Procedimentos: Recursão Fatorial: n = 3 int fat(int n = 3) {int resp; if (n == 0) return 1; else resp = 3*fat(2); return resp; int fat(int n=2) {int resp; if (n == 0) return 1; else resp = 2*fat(1); return resp; Obtido o valor do caso base, a expressão de cada chamada pode ser resolvida do caso base até o caso n. A recursão cria chamadas a uma mesma função até que o caso base seja obtido. int fat(int n=1) {int resp; if (n == 0) return 1; else resp = 1*fat(0); return resp; int fat(int n=0) {int resp; if (n == 0) return 1; else resp = n*fat(n-1); return resp; 13/10/2013 Funções e Procedimentos 14
15 18.4 Funções e Procedimentos: Recursão Exemplo Fatorial Recursiva Usando pilha de execução: #include <stdio.h> #include <stdlib.h> int fat(int n) {int resp; if (n == 0) return 1; else resp = n*fat(n-1); return resp; // Função Principal. main() { int n; printf( Entre com n >= 0: ); scanf( %d,&n); printf( Fatorial(n) = %d \n,fat(n)); 0! = 1 1! = 1*0! 2! = 2*1! 3! = 3*2! fat(0)! = 1 fat(1) = 1*fat(0) fat(2) = 2*fat(1) fat(3) = 3*fat(2) 13/10/2013 Funções e Procedimentos 15
16 18.4 Funções e Procedimentos: Recursão Exemplo Fatorial com Laço #include <stdio.h> #include <stdlib.h> int fat(int n) { int resp = n; if (n == 0) resp = 1; else for (i=n-1; i >= 1; i--) resp = resp*i; return resp; // Função Principal. main() { int n; printf( Entre com n >= 0: ); scanf( %d,&n); printf( Fatorial(n) = %d \n,fat(n)); Caso base Fat(n) = 0 Fat(n) = n*fat(n-1) Chamada recursiva 13/10/2013 Funções e Procedimentos 16
17 18.4 Funções e Procedimentos: Recursão Exemplo Fatorial com Laço Observação importante: #include <stdio.h> #include <stdlib.h> int fat(int n) { int i, resp = n; if (n == 0) resp = 1; else for (i=n-1; i >= 1; i--) resp = resp*i; return resp; // Função Principal. main() { int n; printf( Entre com n >= 0: ); scanf( %d,&n); printf( Fatorial(n) = %d \n,fat(n)); Para toda função recursiva existe uma função equivalente que utiliza laço e fornece a mesma solução. Porém, a função com recursão sempre fornece um código mais simples e nem sempre é trivial encontrar o laço que equivale a recursão (vide Exemplo 18.18: Fibonacci e Exemplo 18.19: O problema da Torre de Hanói). 13/10/2013 Funções e Procedimentos 17
18 18.4 Funções e Procedimentos: Recursão Exemplo Fibonacci #include <stdio.h> #include <stdlib.h> int Fib(int n) {int resp; if (n == 0 n == 1) resp = 1; else resp = Fib(n-1)+Fib(n-2); return resp; main() { int n; printf( Entre com n >= 0: ); scanf( %d,&n); printf( Fibonacci(n) = %d \n,fib(n)); system( pause ); Casos base F(1) = F(0) = 0 F(n) = F(n-1)+F(n-2) Chamada recursiva 13/10/2013 Funções e Procedimentos 18
19 18.4 Funções e Procedimentos: Recursão Uma outra forma de representar as sucessivas chamadas a uma função recursiva é utilizar uma árvore de recursão: F(3) F(3) = F(2)+F(1) Nível 3 F(2) F(2) = F(1)+F(0) Nível 2 F(1) F(1) = 1 F(1) F(1) = 1 Nível 1 F(0) F(0) = 1 Nível 0 13/10/2013 Funções e Procedimentos 19
20 18.4 Funções e Procedimentos: Recursão O problema da Torre de Hanói consiste em transportar todos os discos do pino 1 para o pino 3 e mover um disco por vez e sem colocar um disco maior sobre um menor A resolução deste problema utilizando recursão é: (i) Mover n-1 discos de 1 para 2. (ii) Mover o n-ésimo disco de 1 para 3. (iii) Mover n-1 discos de 2 para 3. 13/10/2013 Funções e Procedimentos 20
21 18.4 Funções e Procedimentos: Recursão A resolução deste problema utilizando recursão é: (i) Mover n-1 discos de 1 para 2. (ii) Mover o n-ésimo disco de 1 para 3. (iii) Mover n-1 discos de 2 para 3. 13/10/2013 Funções e Procedimentos 21
22 18.4 Funções e Procedimentos: Recursão A resolução deste problema utilizando recursão é: (i) Mover n-1 discos de 1 para 2. (ii) Mover o n-ésimo disco de 1 para 3. (iii) Mover n-1 discos de 2 para 3. 13/10/2013 Funções e Procedimentos 22
23 18.4 Funções e Procedimentos: Recursão A resolução deste problema utilizando recursão é: (i) Mover n-1 discos de 1 para 2. (ii) Mover o n-ésimo disco de 1 para 3. (iii) Mover n-1 discos de 2 para 3. 13/10/2013 Funções e Procedimentos 23
24 18.4 Funções e Procedimentos: Recursão A resolução deste problema utilizando recursão é: (i) Mover n-1 discos de 1 para 2. (ii) Mover o n-ésimo disco de 1 para 3. (iii) Mover n-1 discos de 2 para 3. 13/10/2013 Funções e Procedimentos 24
25 18.4 Funções e Procedimentos: Recursão Exemplo Torre de Hanói #include <stdio.h> #include <stdlib.h> int mover(int n, char a, char b, char c) { if (n > 0) { mover(n-1,a,c,b); printf( %c -> %c \n,a,b); mover(n-1,c,b,a); // Função Principal. main() { int n; printf( Entre com n: ); scanf( %d,&n); printf( Solucao Hanoi %d discos\n,n); mover(n, A, C, B ); 13/10/2013 Funções e Procedimentos 25
26 18.4 Funções e Procedimentos: Recursão Para n = 3, temos: (i) Mover(2,A,B,C) (ii) Mover(1,A,C,B) (iii) Mover(2,B,C,A) (i) Mover(2,A,B,C) (i.1) Mover(1,A,C,B): A->C (i.2) A->B (i.3) Mover(1,C,B,A): C->B A B C A B C A B C A B C 13/10/2013 Funções e Procedimentos 26
27 18.4 Funções e Procedimentos: Recursão Para n = 3, temos: (i) Mover(2,A,B,C) (ii) Mover(1,A,C,B) (iii) Mover(2,B,C,A) (ii) Mover(1,A,C,B): A->C A B C A B C 13/10/2013 Funções e Procedimentos 27
28 18.4 Funções e Procedimentos: Recursão Para n = 3, temos: (i) Mover(2,A,B,C) (ii) Mover(1,A,C,B) (iii) Mover(2,B,C,A) (iii) Mover(2,A,B,C) (iii.1) Mover(1,B,A,C): B->A (iii.2) B->C (iii.3) Mover(1,A,C,B): A->C A B C A B C A B C A B C 13/10/2013 Funções e Procedimentos 28
29 18.4 Funções e Procedimentos: Recursão Nível 3 Nível 2 Nível 1 Mover(3, A, C, B ) Mover(2, A, B, C ) Mover(1, A, C, B ) A -> C A -> B Mover(1, C, B, A ) C -> B A -> C Mover(2, B, C, A ) Mover(1, B, A, C ) B -> A B -> C Mover(1, A, C, B ) A -> C 13/10/2013 Funções e Procedimentos 29
30 18.4 Aplicações Problema 1: Construir um programa que simule um jogo da velha. O programa deve cumprir os seguintes requisitos: (i) Permitir movimentos alternados de dois jogadores A e B. (ii) Identificar se um movimento pode ser realizado ou não. (iii) Identificar o término de um jogo, indicando as 3 possíveis situações: (1) A ganhou, (2) B ganhou, (3) Empate. (iv) Construir um tabuleiro que permita a representação das jogadas tal como dado abaixo. Jogada de A Jogada de B x... o... 13/10/2013 Funções e Procedimentos 30. Espaço livre
31 18. Funções O Problema do Caminho Mínimo Os nós do grafo, apresentados abaixo, representam cidades, e os arcos, a presença de uma estrada ligando duas cidades. Os números ao lado dos arcos representam a distância medida em quilômetros /10/2013 Funções e Procedimentos 31
32 18. Funções O Problema do Caminho Mínimo Pode-se representar este grafo através de uma variável composta bidimensional D, na qual a existência de conexão entre duas cidades i e j é indicada pelo elemento D[ i, j ] diferente de zero. Desta forma tem-se: Matriz D de distância entre as cidades 13/10/2013 Funções e Procedimentos 32
33 18. Funções O Problema do Caminho Mínimo O problema consiste, então em achar o caminho mais curto entre duas cidades quaisquer. Este problema foi resolvido por Dijkstra (1971) e tem uma série de aplicações na resolução de problemas de otimização. Para resolvê-lo; atribui-se rótulos as cidades, contendo as seguintes informações: 1. Distância acumulada da origem até a cidade C, DA[C]; 2. Um apontador indicando qual a cidade antecessora de C, PAI[C]; 3. Um indicador do estado de C, ESTADO[ C ], que pode ser expandida, não-expandida, não-rotulada. 13/10/2013 Funções e Procedimentos 33
34 18. Funções O Problema do Caminho Mínimo Partindo da origem, determinam-se as cidades adjacentes (aquelas que têm um caminho em comum) a ela. Estas cidades são rotuladas da seguinte forma: DA[ cidade adjacente ] DA[ origem ] + D[ origem,cidade adjacente ] PAI[ cidade adjacente ] origem ESTADO[ cidade adjacente ] Não expandida A cidade geradora da expansão, no caso a origem, tem seu estado alterado: ESTADO[ origem ] expandida Escolhe-se a seguir, a cidade não expandida cuja distância acumulada seja menor. Repete-se o processo anterior, determinando-se e rotulando-se as cidades adjacentes a escolhida. 13/10/2013 Funções e Procedimentos 34
35 18. Funções O Problema do Caminho Mínimo Na hipótese de que uma cidade adjacente já esteja rotulada não expandida, um teste se faz necessário com vistas a comparação da distância acumulada dos dois caminhos, prevalecendo aquele de menor distância acumulada. Garante-se que as cidades rotuladas expandidas já foram alcançadas pelo caminho mais curto da origem até ela. Este procedimento é repetido até que o destino seja rotulado ou até que não existirem cidades rotuladas não expandidas. 13/10/2013 Funções e Procedimentos 35
36 18. Funções O Problema do Caminho Mínimo #include <stdlib.h> #include <stdio.h> main() { //Programa principal int PAI [100], C, ORIGEM, DESTINO, i, j,n,k; float D[100][100], DA[100], MIN; int ESTADO[100]; // Leitura da matriz de distância printf("digite o numero de cidades \n"); scanf("%d",&n); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) { printf("digite a distancia entre a cidade %d e %d ",i,j); scanf("%f",&d[i][j]); //impressao matriz de distancia printf("a matriz de distancia lida eh \n"); for (i=1;i<=n;i++) { for (j=1;j<=n;j++) printf("%4.f", D[i][j]); printf("\n"); printf("\n"); // Inicialização de ESTADO for (i=0; i<=n;i=i+1) ESTADO[i]=0;// 0=não rotulada, //1=não expandida, 2= expandida. // Ler nó) origem e nó destino printf("digite o no. da cidade de origem \n"); scanf("%d",&origem); printf("digite o no. da cidade de destino \n"); scanf("%d",&destino); 13/10/2013 Funções e Procedimentos 36
37 18. Funções O Problema do Caminho Mínimo //Rotular origem C = ORIGEM; PAI[C] = 0; DA[C] = 0.0; k=1; while (( C!= DESTINO) && (C!= 0)) { //rotular cidades adjacentes for (i=1;i <= N;i++ ) { if((estado[i]== 1) && (D[C][i]!= 0) ) { if (DA[i] > DA[C] + D[C][i]) { PAI[i] = C; DA[i] = DA[C] + D[C][i]; else if(( D[C][i]!= 0 ) && (ESTADO[i] == 0)) { ESTADO[i] = 1; //nao expandido PAI[i] = C; DA[i] = DA[C] + D[C][i]; ESTADO [C] = 2; //Expandido //Escolha de um novo C MIN = ; for(j=1;j<= N;j++) {//inicio if(estado[j]== 1)// não expandido {/ if(da[j] < MIN) { //então MIN=DA[j]; C=j; //fim então //fim for j if (MIN == ) C = 0; //fim while rotular cidades adjacentes 13/10/2013 Funções e Procedimentos 37
38 18. Funções O Problema do Caminho Mínimo if(c == 0) { printf(" Nao existe Caminho unindo"); printf(" as cidades %d e %d\n", ORIGEM, DESTINO); else { printf("\n Caminho mais curto ente %d e %d eh:\n",origem, DESTINO); while(c!= ORIGEM) { printf("%d ",C); C = PAI[C]; printf("%d ",ORIGEM); printf("\n A distancia eh %.2f:\n",DA[DESTINO]); system("pause"); 13/10/2013 Funções e Procedimentos 38
39 18. Funções O Problema do Caminho Mínimo 13/10/2013 Funções e Procedimentos 39
40 Unesp-Campus de Guaratinguetá 18 - Funções e Procedimentos FIM Aula 18 Referências dos slides Curso de Programação de Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Prof. Décio Mourão 13/10/2013 Funções e Procedimentos Prof. Galeno Sena 40
8. Funções e Procedimentos em C Programação Modular
8. Funções e Procedimentos em C Programação Modular Unesp Campus de Guaratinguetá Curso: Programação de Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 1 8. Funções e Procedimentos - Definições
Leia maisMC-102 - Teste de Mesa e Comandos Repetitivos
MC-102 - Teste de Mesa e Comandos Repetitivos Elaborado por Raoni Teixeira e Editado por Danillo Roberto Pereira Instituto de Computação Unicamp Primeiro Semestre de 2013 Introdução Introdução Pode acontecer
Leia maisCapítulo 5: Repetições
Capítulo 5: Repetições INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Construção de Laços Repetição: Diversos problemas de difícil solução podem ser resolvidos
Leia mais3 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 maisProgramação de Computadores I. Linguagem C Função
Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,
Leia mais9 Laços. Unesp Campus de Guaratinguetá
9 Laços Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante 9 Laço (Enlaçamento) Existem situações em que uma
Leia maisReferências. Programação de Computadores II. Cap. 7 Cadeias de Caracteres. Caracteres. Tópicos
Referências Programação de Computadores II Cap. 7 Cadeias de Caracteres Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004) Capítulo 7 Livro: Waldemar
Leia maisAULA 3 Alocação dinâmica de memória: Ponteiros
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 3 Alocação dinâmica de memória: Ponteiros Estrutura de Dados 1 Variáveis X Ponteiros VARIÁVEL - Estrutura para armazenamento
Leia maisEstruturas de Repetição
Estruturas de Repetição Lista de Exercícios - 04 Algoritmos e Linguagens de Programação Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados
Leia maisAlgoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3
Algoritmos e Estruturas de Dados I Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3 Laboratório de AEDS 1 Aula 01 Linguagens de Programação Cada linguagem de programação obedece
Leia maisLinguagem C: strings. Prof. Críston Algoritmos e Programação
Linguagem C: strings Prof. Críston Algoritmos e Programação String Uma string é um vetor de caracteres (texto) char nome [tamanho]; O texto que vamos gravar em uma string não precisa ocupar todos os caracteres
Leia maisAula 3/4: Vetores/Matrizes e Ponteiros
Carlos Henrique/Introdução C++ Aula 3/4: Vetores/Matrizes e Ponteiros Funções: Função main (int argc, char ** argv) Recursão Vetores/Matrizes/Strings Vetor (Matriz Unidimensional) Gerando um ponteiro para
Leia mais1. Estrutura de Dados
1. Estrutura de Dados Não existe vitória sem sacrifício! Filme Transformers Um computador é uma máquina que manipula informações. O estudo da ciência da computação inclui o exame da organização, manipulação
Leia maisAlgoritmos e Estruturas de Dados I. Recursividade. Pedro O.S. Vaz de Melo
Algoritmos e Estruturas de Dados I Recursividade Pedro O.S. Vaz de Melo Problema Implemente uma função que classifique os elementos de um vetor em ordem crescente usando o algoritmo quicksort: 1. Seja
Leia maisTipos Abstratos de Dados (TAD)
Instituto de C Tipos Abstratos de Dados (TAD) Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Módulos e Compilação em separado
Leia maisAnálise de algoritmos. Parte II
Análise de algoritmos Parte II 1 Análise de algoritmos Existem basicamente 2 formas de estimar o tempo de execução de programas e decidir quais são os melhores Empírica ou teoricamente É desejável e possível
Leia maisIsomorfismos de Grafos, Grafos Planares e Árvores
p. 1/25 Isomorfismos de Grafos, Grafos Planares e Árvores Esdras Medeiros p. 2/25 Isomorfismo de Grafos Os isomorfismos preservam adjacências entre vértices. p. 3/25 Isomorfismo de Grafos Definição 1 Dois
Leia maisConversão Visualg à C++ Prof. Paulo Cesar F. de Oliveira, BSc, PhD
Conversão Visualg à C++ Prof. Paulo Cesar F. de Oliveira, BSc, PhD 1 Unidade 01-a Algoritmos e Programação Seção 1.1 Visualg 2 Formato do Visualg algoritmo nome do algoritmo // Função: // Autor: // Data:
Leia maisPROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C
PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C 1 Implementações básicas : a) Implementar a função LerValorValido que verifica se um valor introduzido pelo utilizador pertence ao conjunto limitado por dois dados valores
Leia mais21 Modularização - Funções e Procedimentos
21 Modularização - Funções e Procedimentos À medida que aumenta a complexidade de um programa, torna-se cada vez mais imperativo "dividir" o programa em módulos menores, isolando em cada um destes módulos
Leia mais12 - Dados Estruturados Vetores, Matrizes e Strings
12 - Dados Estruturados Vetores, Matrizes e Strings Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante Vetores,
Leia maisPROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C
PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C 1 Enunciado: a)implementar a função maior que devolve o maior de dois números inteiros passados como parâmetro; b)construir um programa em C que determine o maior de
Leia maisSCC0214 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 maisSuponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?
Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Programação de Computadores 1 de 28 Funções Na Programação, funções são conjuntos
Leia maisINTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS
INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS Material da Prof. Ana Eliza Dados e comandos, para serem processados, devem estar na memória do computador. Memória Definição:
Leia mais1 Cálculo do valor à vista
MAC-5 Introdução à Computação para Ciências Exatas e Tecnologia IO Segundo Exercício Programa Entregar até 7/0/2007 Comprar à vista ou comprar à prazo? Várias lojas já possuem alguns planos de crediário
Leia maisINF 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 maisTutorial Extra sobre C. Felipe Santos da Silva
Tutorial Extra sobre C Felipe Santos da Silva 1 Sumário 1 stdlib.h 3 2 Struct 5 3 Funções 7 4 Recursão 10 2 1 stdlib.h Exemplo 1.1. Convertendo cadeias de caracteres em números. #include
Leia mais21 Strings. 21.1 O que são strings? 21.2 Leitura de Strings. Ronaldo F. Hashimoto e Carlos H. Morimoto
21 Strings Ronaldo F. Hashimoto e Carlos H. Morimoto Oobjetivodestaaulaéintroduziroconceitodestrings. Aofinaldessaaulavocêdeverásaber: Descrever o que são strings. Descrever a distinção entre strings evetoresdecaracteres.
Leia maisSuponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?
Funções Suponha um conjunto habitacional, com várias famílias...... imagina se todas elas morassem em uma única casa? Funções Introdução à Computação 1 de 28 Funções Na Programação, funções são conjuntos
Leia maisTeoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. antunes@ibilce.unesp.br, socorro@ibilce.unesp.
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Grafos e Algoritmos Preparado a partir do texto: Rangel, Socorro.
Leia maisProgramaçã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 maisCAMPUS DE GUARATINGUETÁ FACULDADE DE ENGENHARIA. Introdução à Programação em C. Algoritmos: Estruturas de Repetição. Prof. Dr. Galeno.J.
Unesp UNIVERSIDADE ESTADUAL PAULISTA CAMPUS DE GUARATINGUETÁ FACULDADE DE ENGENHARIA Introdução à Programação em C Algoritmos: Estruturas de Repetição Prof. Dr. Galeno.J. de Sena Departamento de Matemática
Leia maisEstruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 2) Algoritmos recursivos Indução matemática, recursão, recorrências Indução matemática Uma
Leia maisProgramaçã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 maisAlgoritmo e Pseudo-código
Departamento de Sistemas de Computação Universidade de São Paulo Algoritmo e Pseudo-código Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br) Objetivos do Curso Desenvolver o Pensamento Computacional
Leia maisRecursã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 maisIntrodução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.
Introdução Software Básico Aula 3 Prof. Dr. Rogério Vargas http://rogerio.in Provocação Você já se perguntou como é que os programas que você escreve são traduzidos em instruções executáveis pelas estruturas
Leia maisCAP. II RESOLUÇÃO NUMÉRICA DE EQUAÇÕES NÃO LINEARES
CAP. II RESOLUÇÃO NUMÉRICA DE EQUAÇÕES NÃO LINEARES Vamos estudar alguns métodos numéricos para resolver: Equações algébricas (polinómios) não lineares; Equações transcendentais equações que envolvem funções
Leia maisINF 1005 Programação I
INF 1005 Programação I Aula 07 Estruturas de Repetição Edirlei Soares de Lima Estruturas de Repetição Diversos problemas somente podem ser resolvidos numericamente por um computador
Leia maisProgramação Dinâmica. Aplicação directa - Fibonacci
Programação Dinâmica Divisão e conquista: problema é partido em subproblemas que se resolvem separadamente; solução obtida por combinação das soluções Programação dinâmica: resolvem-se os problemas de
Leia maisExercícios: Recursão
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Lista de exercícios de programação em linguagem C Exercícios: Recursão 1) Faça uma função recursiva que calcule e retorne o fatorial de um número inteiro N. 2) Faça uma
Leia maisLinguagem de Programação I
Linguagem de ção I Curso de Sistemas de Informação Karla Donato Fook karladf@ifmaedubr DESU / DAI 2016 O que é um programa de computador? 2 1 de computador E_1 E_n Resultado Entrada(s) Processamento Saída(s)
Leia maisAlgoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin (daniel.martin@ufabc.edu.br) Aula 10 (Baseada nos slides do Prof. André Balan) Recursão Recursão Da wikipedia: A recursão é o processo pelo qual
Leia maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 14: Ordenação: QuickSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: reifortes@iceb.ufop.br
Leia maisCiclo com Contador : instrução for. for de variável := expressão to. expressão do instrução
Métodos de Programação I 2. 27 Ciclo com Contador : instrução for identificador downto for de variável := expressão to expressão do instrução UMA INSTRUÇÃO (SIMPLES OU COMPOSTA) Neste caso o ciclo é repetido
Leia mais9. Tipos Abstratos de Dados
9. Tipos Abstratos de Dados R. Cerqueira, W. Celes e J.L. Rangel Neste capítulo, discutiremos uma importante técnica de programação baseada na definição de Tipos Abstratos de Dados (TAD). Veremos também
Leia maisProblema da Árvore Geradora Mínima
Problema da Árvore Geradora Mínima The Minimum Spanning Tree Problem Fernando Nogueira Árvore Geradora Mínima 1 O Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem) Considere uma rede
Leia mais9.1.2 Laços Controlados por Entrada: Contador
9.1.2 Laços Controlados por Entrada: Contador Exemplo 2- Escreva um algoritmo e um programa em C que dado um Número qualquer, seja calculado e impresso a tabuada desse número. Algoritmo tabuada Variáveis:
Leia maisAnalise 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 maisAlgoritmos APRENDENDO A PROGRAMAR COM C#
Algoritmos APRENDENDO A PROGRAMAR COM C# Alô Mundo AULA 01 Conhecendo o ambiente O objetivo principal desse programa não é mostrar a mensagem Alo Mundo. O objetivo é apresentar o ambiente de desenvolvimento
Leia maisPHP Estruturas de repetição
Estrutura de repetição com for Sintaxe for (inicialização; condição; incremento) comando1; comando2; A inicialização atribui um valor inicial à variável de controle do laço; Os comandos 1 e 2 serão executados
Leia maisMAC-115 Introdução à Computação para Ciências Exatas e Tecnologia IO Terceiro Exercício-Programa Entregar até 09/11/2007
MAC-115 Introdução à Computação para Ciências Exatas e Tecnologia IO Terceiro Exercício-Programa Entregar até 09/11/2007 O Problema da Mochila São dados um inteiro positivo n e dois vetores quant e custot,
Leia maisMétodo Simplex Revisado
Método Simplex Revisado Prof. Fernando Augusto Silva Marins Departamento de Produção Faculdade de Engenharia Campus de Guaratinguetá UNESP www.feg.unesp.br/~fmarins fmarins@feg.unesp.br Introdução Método
Leia maisSCC Capítulo 2 Recursão
SCC-501 - Capítulo 2 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis
Leia maisPermite 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 maisINF1005: Programação I. Algoritmos e Pseudocódigo
INF1005: Programação I Algoritmos e Pseudocódigo Tópicos Principais Definição de Algoritmo Exemplos Básicos Formas de representação Condicionais Exemplos com Condicionais Repetições Exemplos com Repetições
Leia maisFunções. O escopo de variáveis é o conjunto de regras que determinam o uso e a validade de variáveis nas diversas partes do programa.
- Escopo de variáveis Funções O escopo de variáveis é o conjunto de regras que determinam o uso e a validade de variáveis nas diversas partes do programa. Veremos agora três tipos de variáveis, no que
Leia maisRecursividade. Recursividade
A recursão é uma técnica que define um problema em termos de uma ou mais versões menores deste mesmo problema. Esta ferramenta pode ser utilizada sempre que for possível expressar a solução de um problema
Leia maisFUNÇÃO QUADRÁTICA. Resumo
01 / 08 / 12 FUNÇÃO QUADRÁTICA 1. Definição Resumo Função do 2º grau ou função quadrática é a função f: R R definida por f(x) = ax² + bx + c, com a, b, c reais e a 0. Em que a é o coeficiente de x²; b
Leia maisCurso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante
16 - Matrizes Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante 16.1 Dados Estruturados: Matrizes Matrizes
Leia maisLinguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores 12/03/2011 VARIÁVEIS E TIPOS DE DADOS
Linguagem C Introdução à Programação C Introdução à Ciência da Computação I Prof. Denis F. Wolf Origem de C está associada ao sistema Unix Histórico: 1970: Ken Thompson desenvolve B, baseada em BCPL, para
Leia maisSCC0601 Projeto de Algoritmos. Recursão
SCC0601 Projeto de Algoritmos Recursão Definição Uma função é dita recursiva quando é definida em seus próprios termos, direta ou indiretamente Dicionário Michaelis: ato ou efeito de recorrer Recorrer:
Leia maisIsto não é exequível!... B[8][6] A[10] Slides_Java_4
A[10] B[8][6] Slides_Java_4 Sistemas Informáticos I 2005-2006 Imaginemos que é necessário escrever um programa que: leia uma lista de 50 alunos e as respectivas notas. calcule a nota média. escreva a diferença
Leia mais3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C
3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C 3.1. Compilação de um Programa C O compilador C realiza a compilação do código-fonte de um programa em cinco etapas: edição, pré-processamento, compilação,
Leia maisCOMPUTAÇÃO. O estudante deve ser capaz de apontar algumas vantagens dentre as seguintes, quanto à modalidade EaD:
COMPUTAÇÃO QUESTÃO DISCURSIVA 1 O estudante deve ser capaz de apontar algumas vantagens dentre as seguintes, quanto à modalidade EaD: (i) flexibilidade de horário e de local, pois o aluno estabelece o
Leia maisFicheiros binários 1. Ficheiros binários
Ficheiros binários 1 Ficheiros binários 1. Considere que dispõe de ficheiros binários cujo conteúdo é constituído por uma ou mais estruturas como a indicada a seguir struct registo { }; int ref; float
Leia maisTrabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário!
ALGORITMOS E ESTRUTURAS DE DADOS I DCC/UFMG Trabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário! Pedro O.S. Vaz de Melo May 29, 2013 1 DESCRIÇÃO DO PROBLEMA O objetivo deste trabalho
Leia maisRecursividade. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Recursividade David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Conceito de Recursividade Fundamental em Matemática e Ciência da Computação Um programa recursivo é um programa que chama a si
Leia maisOrientação a Objetos
Orientação a Objetos 1. Manipulando Atributos Podemos alterar ou acessar os valores guardados nos atributos de um objeto se tivermos a referência a esse objeto. Os atributos são acessados pelo nome. No
Leia maisPROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick
PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick aconci@ic.uff.br, erickr@id.uff.br Roteiro Funções Escopo de Variáveis Variáveis Globais
Leia maisProgramação II. Tipos Estruturados. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Tipos Estruturados Bruno Feijó Dept. de Informática, PUC-Rio Dados Compostos Até agora tipos simples: char, int, float,. Necessidade por dados compostos, por tipos estruturados Ex.: pontos
Leia maisLinguagem C. Funções. Prof. Maurício Dias
Linguagem C Funções Prof. Maurício Dias 1 O que são Funções? (ou subprogramas ou subrotinas) São trechos de código fonte agrupados sob um nome, que podem ser chamados sempre que for necessário executar
Leia maisAlgoritmos 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 maisINF 1771 Inteligência Artificial
INF 1771 Inteligência Artificial Aula 04 Busca Heurística Edirlei Soares de Lima Métodos de Busca Busca Cega ou Exaustiva: Não sabe qual o melhor nó da fronteira a ser expandido.
Leia maisAnálise de Algoritmos
Análise de Algoritmos Profa. Sheila Morais de Almeida DAINF-UTFPR-PG março - 2016 A invariante de laço pode ser definida como uma relação entre as variáveis de um algoritmo que é verdadeira em um determinado
Leia maisAnálise de Algoritmos Parte 4
Análise de Algoritmos Parte 4 Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 07 Algoritmos e Estruturas de Dados I Como escolher o algoritmo mais adequado para uma situação? (continuação)
Leia maisLinguagem 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 maisControle de Fluxo Comandos de repetição: while e do-while
BCC 201 - Introdução à Programação Controle de Fluxo Comandos de repetição: while e do-while Guillermo Cámara-Chávez UFOP 1/1 Comandos de Repetição (Laços) I São muito comuns as situações em que se deseja
Leia maisRecursividade. 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 maisExercícios de Fixação Aulas 05 e 06
Disciplina: TCC-0.0 Prog. de Computadores III Professor: Leandro Augusto Frata Fernandes Turma: E- Data: / / Exercícios de Fixação Aulas 0 e 0. Construa um algoritmo (pseudocódigo e fluxograma) que determine
Leia mais14.1 Vetor - Problemas
Problema 14: Um método de Criptografia consiste em substituir as letras de uma mensagem através do emparelhamento de alfabetos tal como dado abaixo. Construir um programa que codifica mensagens usando
Leia maisMó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 maisCap. 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 maisINF 1010 Estruturas de Dados Avançadas
11.2 INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada
Leia maisLinguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação
Algoritmos e Lógica de Programação Linguagem de Programação C Linguagem C Entrada e Saída de dados Reinaldo Gomes reinaldo@cefet-al.br Fluxo de Saída Padrão Saída Formatada: ( ) Tem a função de
Leia maisComputação 2. Aula 2. Profª. Fabiany Vetores e Matrizes
Computação 2 Aula 2 Vetores e Matrizes Profª. Fabiany fabianyl@utfpr.edu.br Vetores Vetor também é conhecido como variável composta homogênea unidimensional; Um vetor computacional é um variável composta
Leia maisUniversidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Structs 1. Utilizando estrutura, fazer um programa em C que permita
Leia maisGramáticas Livres de Contexto
Conteúdo da aula Gramáticas Livres de Contexto Marcelo Johann Trabalho - primeira etapa Definição, código e estrutura Mais elementos e detalhes de lex GLCs Gramática, produção, derivações, árvores Ambíguas,
Leia maisComputação I (MAB120) DCC/UFRJ
Computação I (MAB120) DCC/UFRJ Aula 2: introdução a algoritmos e programas 6 de abril de 2016 Objetivos dessa aula Definir o que são algoritmos e programas Apresentar algumas técnicas para desenvolvê-los
Leia maisMetodologias de Programação
Metodologias de Programação Bloco 1 José Paulo 1 Formador José António Paulo E-mail: questoes@netcabo.pt Telemóvel: 96 347 80 25 Objectivos Iniciar o desenvolvimento de raciocínios algorítmicos Linguagem
Leia maisMatemática para a Economia I - 1 a lista de exercícios Prof. - Juliana Coelho
Matemática para a Economia I - 1 a lista de exercícios Prof. - Juliana Coelho 1 - Para cada função abaixo, calcule os valores pedidos, quando for possível: (a) f(x) = x 3 3x + 3x 1, calcule f(0), f( 1)
Leia maisAula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão
MC3305 Algoritmos e Estruturas de Dados II Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1 Custo de um algoritmo
Leia maisBruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Recursividade
Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Recursividade Conceito de Recursividade Fundamental em Matemática e Ciência da Computação Um programa recursivo é um programa que chama a si mesmo
Leia maisEstruturas 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 maisAlgoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo
Algoritmos e Estruturas de Dados I Variáveis Indexadas Pedro O.S. Vaz de Melo Por que índices são importantes? Como uma loja de sapatos artesanais deve guardar os seus produtos? 1 2 3 4 Tamanhos entre
Leia mais