Recursão David Déharbe
|
|
- Letícia Salazar Fidalgo
- 5 Há anos
- Visualizações:
Transcrição
1 Recursão David Déharbe 1 1
2 Objetivos da aula O conceito de recursão. Exemplos. Programação em C. 2 2
3 Roteiro da aula Revisão de funções; Motivação; Definição; Dois exemplos básicos; Recursão mútua; Dois exemplos avançados. comparação com iteração. 3 3
4 Revisão das sub-rotinas. Exemplo: int f (int c) return c * 2; int main (void) int a = 1, b = 0; b = f(a); a = f(b); printf("a = %i, b = %i\n", a, b); 4 4
5 Revisão das sub-rotinas. Exemplo: int f (int c) return c * 2; int main (void) int a = 1, b = 0; b = f(a); a = f(b); printf("a = %i, b = %i\n", a, b); a b
6 Revisão das sub-rotinas. Exemplo: int f (int c) return c * 2; int main (void) int a = 1, b = 0; b = f(a); a = f(b); printf("a = %i, b = %i\n", a, b); a b c
7 Revisão das sub-rotinas. Exemplo: int f (int c) return c * 2; int main (void) int a = 1, b = 0; b = f(a); a = f(b); printf("a = %i, b = %i\n", a, b); a b c
8 Revisão das sub-rotinas. Exemplo: int f (int c) return c * 2; int main (void) int a = 1, b = 0; b = f(a); a = f(b); printf("a = %i, b = %i\n", a, b); a b
9 Revisão das sub-rotinas. Exemplo: int f (int c) return c * 2; int main (void) int a = 1, b = 0; b = f(a); a = f(b); printf("a = %i, b = %i\n", a, b); a b c
10 Revisão das sub-rotinas. Exemplo: int f (int c) return c * 2; int main (void) int a = 1, b = 0; b = f(a); a = f(b); printf("a = %i, b = %i\n", a, b); a b c
11 Revisão das sub-rotinas. Exemplo: int f (int c) return c * 2; int main (void) int a = 1, b = 0; b = f(a); a = f(b); printf("a = %i, b = %i\n", a, b); a b
12 Motivação Recursão é uma outra forma de calcular repetições. Aplicável no processamento de dados cuja definição pode ser feita com uma auto-referência: os ancestrais de X = os pais de X, digamos P + os ancestrais de P. os números naturais = 0 sucessor de um número natural. (sucessor n)! = (sucessor n) n! Não usa construção específica como while. Usa chamada de sub-rotina. Aplicável quando o resultado de uma sub-rotina pode ser calculado usando uma outra chamada à mesma sub-rotina. 5 5
13 Definição Recursão 1. ver "Recursão". 6 6
14 Definição É um método de resolução de problema aplicado quando a solução pode ser calculada a partir da solução de uma instância menor do problema. Exemplo: Ordenar um conjunto L de n itens. (Recursivamente) ordenar os n-1 primeiros itens, seja L' o resultado ; inserir o último item de L em L'. - (inserção em um conjunto já ordenado) 7 7
15 Término A execução de uma função recursiva provoca uma nova chamada à mesma função. Como fazer com que o cálculo termine? São dois critérios que devem ser obecedidos para garantir o término: Se o cálculo de f(a) chama recursivamente f(b), então, de alguma forma, b tem que ser menor que a. (lembre-se do variante do laço, deve haver um variante de parâmetro: uma medida que decresce à cada chamada recursiva) O corpo da função deve incluir pelo menos um caso onde o valor de retorno não depende de uma chamada recursiva: é o caso de base. 8 8
16 Exemplo 1: problema e solução recursiva. Impressão de uma linha com os n primeiros elementos de uma progressão geométrica q: elemento inicial r: razão n: quantidade de elementos a imprimir q q r q r r q r r r... q r n-1 \n Solução recursiva: se n > 0: imprime q, o primeiro elemento, e imprime uma linha com os n-1 primeiros elementos de uma progressão geométrica com elemento iniciao q r e razão r. se n = 0: imprime uma quebra de linha. 9 9
17 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else printf("%.2lf ", q); imprime_pg (q * r, r, n-1); int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n); 10 10
18 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else main printf("%.2lf ", q); imprime_pg (q * r, r, n-1); q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n); 10 10
19 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else printf("%.2lf ", q); imprime_pg (q * r, r, n-1); main imprime_pg q r n q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n); 10 10
20 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else printf("%.2lf ", q); imprime_pg (q * r, r, n-1); main imprime_pg q r n q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n); 10 10
21 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else printf("%.2lf ", q); imprime_pg (q * r, r, n-1); main imprime_pg q r n q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n);
22 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else printf("%.2lf ", q); imprime_pg (q * r, r, n-1); main imprime_pg imprime_pg q r n q r n q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n);
23 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else printf("%.2lf ", q); imprime_pg (q * r, r, n-1); main imprime_pg imprime_pg q r n q r n q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n);
24 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else printf("%.2lf ", q); imprime_pg (q * r, r, n-1); main imprime_pg imprime_pg q r n q r n q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n);
25 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else printf("%.2lf ", q); imprime_pg (q * r, r, n-1); main imprime_pg imprime_pg imprime_pg q r n q r n q r n q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n);
26 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else printf("%.2lf ", q); imprime_pg (q * r, r, n-1); main imprime_pg imprime_pg imprime_pg q r n q r n q r n q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n);
27 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else printf("%.2lf ", q); imprime_pg (q * r, r, n-1); main imprime_pg imprime_pg imprime_pg q r n q r n q r n q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n);
28 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else printf("%.2lf ", q); imprime_pg (q * r, r, n-1); main imprime_ imprime_ imprime_ imprime_ pg pg pg pg q r n q r n q r n q r n q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n);
29 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else printf("%.2lf ", q); imprime_pg (q * r, r, n-1); main imprime_ imprime_ imprime_ imprime_ pg pg pg pg q r n q r n q r n q r n q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n);
30 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else main printf("%.2lf ", q); imprime_pg (q * r, r, n-1); q r n int main () int n; double q, r; scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n); \n 10 10
31 Exemplo 1: implementação #include <stdio.h> /* para printf */ void imprime_pg (double q, double r, int n) if (n == 0) printf("\n"); else main printf("%.2lf ", q); imprime_pg (q * r, r, n-1); q r n Caso de base? int main () int n; double q, r; Variante? scanf("%lf %lf %i", &q, &r, &n); imprime_pg(q, r, n); \n 10 10
32 Exemplo 2: problema e solução recursiva. Cálculo do fatorial. n: valor dado se n > 1, então n! = (n-1) n = (n-1)! n Solução recursiva: se n > 1: calcule (n-1)!, seja r o valor obtido multiplique n com r, o valor obtido é o resultado. se n = 1: o resultado é
33 Exemplo 2: implementação #include <stdio.h> /* para printf */ int fatorial (int n) if (n == 1) return 1; else int r; r = fatorial(n-1); return r * n; int main () int n, f; scanf("%i", &n); f = fatorial(n); printf("%i\n", f); 12 12
34 Exemplo 2: implementação #include <stdio.h> /* para printf */ int fatorial (int n) if (n == 1) return 1; else return fatorial(n-1) * n; int main () int n, f; scanf("%i", &n); f = fatorial(n); printf("%i\n", f); 12 12
35 Exemplo 2: implementação #include <stdio.h> /* para printf */ int fatorial (int n) if (n == 1) return 1; else return fatorial(n-1) * n; int main () int n, f; Caso de base? Variante? scanf("%i", &n); f = fatorial(n); printf("%i\n", f); 12 12
36 Recursão mútua Vimos exemplos de uma função chamando a si mesmo. É possível que hajá uma chamada a si mesmo indireta, através de outra função (ou funções). Esta possibilidade é muito útil para tratar entidades com definições inter-dependentes ver a sintaxe dos comandos da linguagem C vistos até agora. <comando> ::= <comando condicional>... <comando condicional> ::= if ( <expressao> ) <comando> 13 13
37 Recursão mútua: exemplo #include <stdio.h> int par (int); int impar (int); int main () int n; scanf("%i", &n); if (par(n)) printf("%i eh par.\n", n); else printf("%i eh impar.\n", n); int par (int n) if (n == 0) return 1; else return impar(n-1); int impar (int n) if (n == 0) else return par(n-1); 14 14
38 Recursão mútua: exemplo #include <stdio.h> int par (int); int impar (int); int main () int n; scanf("%i", &n); if (par(n)) printf("%i eh par.\n", n); else printf("%i eh impar.\n", n); int par (int n) if (n == 0) return 1; else return impar(n-1); int impar (int n) if (n == 0) else return par(n-1); 14 Caso de base? Variante? 14
39 Exemplo 3: descrição O quebra-cabeça das Torres de Hanoi foi proposto pelo matemático francês Édouard Lucas em Considerando uma torre de n discos de circonferência crescente, inicialmente empilhados em ordem crescente de circonferência sobre uma entre três varas. O objetivo é transferir a torre inteira para uma outra vara, movendo apenas um disco de cada vez, e nunca colocando um disco em cima de um disco de menor tamanho. A B C 15 15
40 Exemplo 3: uma solução manual 16 16
41 Exemplo 3: uma solução manual 16 16
42 Exemplo 3: requisitos Definir uma sub-rotina que imprime as instruções para resolver o quebra-cabeça das torres de Hanoi. A sub-rotina deve ter como parâmetro o número de discos, e deve imprimir uma lista de comandos no formato "mover X para Y" onde 1 X, Y 3. Exemplos: para 1 disco mover 1 para 3 para 2 discos mover 1 para 2 mover 1 para 3 mover 2 para
43 Exemplo 3: requisitos Definir uma sub-rotina que imprime as instruções para resolver o quebra-cabeça das torres de Hanoi. A sub-rotina deve ter como parâmetro o número de discos, e deve imprimir uma lista de comandos no formato "mover X para Y" onde 1 X, Y 3. Exemplos: para 1 disco mover 1 para 3 para 2 discos mover 1 para 2 mover 1 para 3 mover 2 para 3 hanoi 3 Mover de 1 para 3 Mover de 1 para 2 Mover de 3 para 2 Mover de 1 para 3 Mover de 2 para 1 Mover de 2 para 3 Mover de 1 para
44 Exemplo 3: resolução recursiva Hanoi (k, V1, V2, V3) move k discos da vara V1 para a vara V3, utilizando a vara V2 como ponto intermediário. Hanoi (k, V1, V2, V3): Para k = 0: nada a fazer Para k > 1: realizar Hanoi (k-1, V1, V3, V2), mover o k-ésimo disco de V1 para V2, realizar Hanoi(k-1, V3, V2, V1) A B C V1 V2 18 V3 18
45 Exemplo 3: resolução recursiva Hanoi (k, V1, V2, V3) move k discos da vara V1 para a vara V3, utilizando a vara V2 como ponto intermediário. Hanoi (k, V1, V2, V3): Para k = 0: nada a fazer Para k > 1: realizar Hanoi (k-1, V1, V3, V2), mover o k-ésimo disco de V1 para V2, realizar Hanoi(k-1, V3, V2, V1) A B C V1 V2 18 V3 18
46 Exemplo 3: resolução recursiva Hanoi (k, V1, V2, V3) move k discos da vara V1 para a vara V3, utilizando a vara V2 como ponto intermediário. Hanoi (k, V1, V2, V3): Para k = 0: nada a fazer Para k > 1: realizar Hanoi (k-1, V1, V3, V2), mover o k-ésimo disco de V1 para V2, realizar Hanoi(k-1, V3, V2, V1) A B C V1 V2 18 V3 18
47 Exemplo 3: resolução recursiva Hanoi (k, V1, V2, V3) move k discos da vara V1 para a vara V3, utilizando a vara V2 como ponto intermediário. Hanoi (k, V1, V2, V3): Para k = 0: nada a fazer Para k > 1: realizar Hanoi (k-1, V1, V3, V2), mover o k-ésimo disco de V1 para V2, realizar Hanoi(k-1, V3, V2, V1) A B C V1 V2 18 V3 18
48 Exemplo 3: implementação #include <stdio.h> /* para printf */ void hanoi_rec (int n, int v1, int v2, int v3) if (n == 0) return; else hanoi_rec(n-1, v1, v3, v2); printf("mover de %i para %i\n", v1, v2); hanoi_rec(n-1, v3, v2, v1); void hanoi (int n) hanoi_rec(n, 1, 3, 2); int main () int n; scanf("%i", &n); hanoi(n); 19 19
49 Exemplo 3: implementação #include <stdio.h> /* para printf */ void hanoi_rec (int n, int v1, int v2, int v3) if (n == 0) return; else hanoi_rec(n-1, v1, v3, v2); printf("mover de %i para %i\n", v1, v2); hanoi_rec(n-1, v3, v2, v1); void hanoi (int n) hanoi_rec(n, 1, 3, 2); int main () int n; scanf("%i", &n); hanoi(n); 19 Caso de base? Variante? 19
50 Exemplo 4: Progressão de Fibonacci Os primeiros números de Fibonacci são: 0, 1, 1, 2, 3, 5, 8, 13, 21,... Os dois primeiros números da progressão de Fibonacci são 0 e 1. Os demais números são iguais à soma dos dois números anteriores. Seja fib(i) o elemento i da progressão de Fibonacci. fib(0) = 0, fib(1) = 1 se n 2, fib(n) = fib(n-1) + fib(n-2) Escreva uma sub-rotina que, dado n, calcula fib(n)
51 Exemplo 4: Solução A natureza do problema é recursiva. A solução é direta
52 Exemplo 4: implementação #include <stdio.h> /* para printf */ int fibonacci (int n) if (n == 0) else if (n == 1) return 1; else return fibonacci(n-1) + fibonacci(n-2); int main () int n; scanf("%i", &n); fibonacci(n); 22 22
53 Exemplo 4: implementação #include <stdio.h> /* para printf */ int fibonacci (int n) if (n == 0) else if (n == 1) return 1; else return fibonacci(n-1) + fibonacci(n-2); int main () int n; scanf("%i", &n); fibonacci(n); Caso de base? Variante? 22 22
54 Questões de custo
55 Questões de custo... Com esta implementação recursiva, quantas somas são necessárias para calcular fib(n)? Seja custo(n) este valor
56 Questões de custo... Com esta implementação recursiva, quantas somas são necessárias para calcular fib(n)? Seja custo(n) este valor. Para n = 0:
57 Questões de custo... Com esta implementação recursiva, quantas somas são necessárias para calcular fib(n)? Seja custo(n) este valor. Para n = 0: 0 Para n = 1:
58 Questões de custo... Com esta implementação recursiva, quantas somas são necessárias para calcular fib(n)? Seja custo(n) este valor. Para n = 0: 0 Para n = 1: 0 Para n = 2:
59 Questões de custo... Com esta implementação recursiva, quantas somas são necessárias para calcular fib(n)? Seja custo(n) este valor. Para n = 0: 0 Para n = 1: 0 Para n = 2: 1 Para n = 3: =
60 Questões de custo... Com esta implementação recursiva, quantas somas são necessárias para calcular fib(n)? Seja custo(n) este valor. Para n = 0: 0 Para n = 1: 0 Para n = 2: 1 Para n = 3: = 2 Para n = 4: =
61 Questões de custo... Com esta implementação recursiva, quantas somas são necessárias para calcular fib(n)? Seja custo(n) este valor. Para n = 0: 0 Para n = 1: 0 Para n = 2: 1 Para n = 3: = 2 Para n = 4: = 4 Para n = 5: =
62 Questões de custo... Com esta implementação recursiva, quantas somas são necessárias para calcular fib(n)? Seja custo(n) este valor. Para n = 0: 0 Para n = 1: 0 Para n = 2: 1 Para n = 3: = 2 Para n = 4: = 4 Para n = 5: = 7 Em geral, se n 2, custo(n) = custo(n-1) + custo(n-2)
63 Questões de custo... Com esta implementação recursiva, quantas somas são necessárias para calcular fib(n)? Seja custo(n) este valor. Para n = 0: 0 Para n = 1: 0 Para n = 2: 1 Para n = 3: = 2 Para n = 4: = 4 Para n = 5: = 7 Em geral, se n 2, custo(n) = custo(n-1) + custo(n-2) + 1. Essa progressão cresce mais rápido que a progressão de Fibonacci
64 Questões de custo... Com esta implementação recursiva, quantas somas são necessárias para calcular fib(n)? Seja custo(n) este valor. Para n = 0: 0 Para n = 1: 0 Para n = 2: 1 Para n = 3: = 2 Para n = 4: = 4 Para n = 5: = 7 Em geral, se n 2, custo(n) = custo(n-1) + custo(n-2) + 1. Essa progressão cresce mais rápido que a progressão de Fibonacci... Podemos fazer melhor? 23 23
65 Exemplo 4: implementação iterativa #include <stdio.h> /* para printf */ int fibonacci (int n) if (n == 0) else if (n == 1) return 1; else int pen = 0, ult = 1, k, atual; k = 2; while (k <= n) atual = pen + ult; pen = ult; ult = atual; k = k + 1; return atual; 24 24
66 Exemplo 4: implementação recursiva 2 #include <stdio.h> /* para printf */ int fibonacci_rec (int n, int ult, int pen, int k) if (k == n) return ult + pen; else return fibonacci_rec(n, pen+ult, ult, k+1); int fibonacci (int n) if (n == 0) else if (n == 1) return 1; else return fibonacci_rec(n, 1, 0, 2); 25 25
67 Exemplo 4: implementação recursiva 2 #include <stdio.h> /* para printf */ int fibonacci_rec (int n, int ult, int pen, int k) if (k == n) return ult + pen; else return fibonacci_rec(n, pen+ult, ult, k+1); int fibonacci (int n) if (n == 0) else if (n == 1) return 1; else return fibonacci_rec(n, 1, 0, 2); Caso de base? Variante? 25 25
68 Conclusão Recursão: uma nova ferramenta para resolução de problemas. A recursão tem o mesmo poder de resolução que a iteração. Para determinados problemas, é muito mais fácil resolver com recursão. Para outros, é mais fácil com iteração. Em geral, é mais fácil programar uma solução recursiva correta; iteração é mais rápida que recursão; iteração consome menos memória que recursão.... mas cada caso é um caso
69 Exercícios David Déharbe 27 27
70 Exercício: MDC. O maior divisor comum de dois números inteiros positivos N e M, notado MDC(N, M), é maior número inteiro positivo P tal que P é um divisor de N; P é um divisor de M. Propriedades: Se M > N e N é um divisor de M, então MDC(N, M) = N senão MDC(N, M) = MDC(N, R) onde R é o resto da divisão de M por N. MDC(N, M) = MDC(M, N)
71 Exercícios. Considere o seguinte processo para gerar uma seqüência de números: Comece com um inteiro n. Se n é par, divida por 2. Se n é ímpar, multiplique por 3 e some 1. Repita esse processo com o novo valor de n, se n 1. Termina o processo quando n = 1. Por exemplo, a seqüência de números a seguir é gerada para n = 22: Escreva uma função não recursiva que, dado um inteiro positivo, imprime a sequência de números acima
72 Exercícios. 2.Escreva agora uma função recursiva que, dado um inteiro positivo, imprime a sequência de números. O comprimento da sequência gerada a partir de n é chamada o comprimento do ciclo de n. 3.Escreva uma função não recursiva que, dado n, retorna o comprimento do ciclo de n. 4.Escreva uma função recursiva que, dado n, retorna o comprimento do ciclo de n
73 Exercícios. Usando recursão: 1.Escreva uma rotina que tem como parâmetros N, o tamanho de um arranjo de int, V, o próprio arranjo, e K, um valor int, e retorna 1 se K pertence a V e 0 caso contrário. Assume que o conteúdo do arranjo é ordenado em ordem crescente. A recursão deve ser realizada com uma rotina auxiliar. 2.Escreva uma rotina que tem como parâmetros N, o tamanho de um arranjo de int, V, o próprio arranjo, e ordena o conteúdo de V em ordem crescente. A recursão deve ser realizada com uma rotina auxiliar
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 maisSub-rotinas David Déharbe
Sub-rotinas David Déharbe 1 1 Objetivos da aula Os conceitos de sub-rotina, funções e procedimentos; Como usar sub-rotinas em C: parâmetros de sub-rotinas: parâmetros formais e parâmetros efetivos. passagem
Leia maisAula 21 - Algoritmos e Funções Recursivas
Aula 21 - Considere a definição da função fatorial: n! = 1 se n 0 Considere agora a seguinte definição equivalente: n! = 1 se n 0 Dizemos que essa
Leia maisMC102 Algoritmos e Programação de Computadores
MC102 Algoritmos e Programação de Computadores Instituto de Computação UNICAMP Primeiro Semestre de 2014 Roteiro 1 Maior número 2 Soma de n números 3 Fatorial 4 Máximo Divisor Comum (MDC) 5 Números primos
Leia maisArranjos. David Déharbe
Arranjos. David Déharbe 1 1 Roteiro da aula Exercícios motivadores para arranjos; Motivação; Definição; Arranjos em C; Arranjos e ponteiros; Exemplos. 2 2 Exercícios. Escreva um programa que lê cinco números
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 maisAula 15: Repetição (Parte 3)
Aula 15: Repetição (Parte 3) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão
Leia maisLaboratório 3 Comandos de repetição while, do-while e for
Laboratório 3 Comandos de repetição while, do-while e for Computação I (MAB-120) Prof. Silvana Rossetto 1 DCC/IM/UFRJ 29 de março de 2019 O objetivo desta aula de laboratório é praticar o uso dos comandos
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 maisPrimeiros programas.
Primeiros programas. David Déharbe 1 1 Objetivos da aula Revisar as atividades "edição", "compilação", ("correção" e) "execução". Revisar os primeiros elementos de linguagem C já vistos. Aprender a escrever
Leia maisProcessamento da Informação
Processamento da Informação Fabrício Olivetti de França 02 de Fevereiro de 2019 Topics 1. Recursão 1 Recursão Indução Matemática Em bases matemáticas vocês aprenderam sobre indução matemática: Provamos
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 maisRecursividade. Objetivos do módulo. O que é recursividade
Recursividade Objetivos do módulo Discutir o conceito de recursividade Mostrar exemplos de situações onde recursividade é importante Discutir a diferença entre recursividade e iteração O que é recursividade
Leia maisAula 10 Algoritmos e Funções Recursivas
Aula 10 Algoritmos e Funções Recursivas Considere a definição da função fatorial: n! = 1 se n 0 Considere agora a seguinte definição equivalente: n! = 1 se n
Leia maisRecursividade. Estrutura de Dados. Prof. Kleber Rezende
Recursividade Estrutura de Dados Prof. Kleber Rezende Considerações Iniciais Em aulas anteriores fizemos uma função que permite calcular o fatorial de um número. Naquela função, a cada nova iteração o
Leia maisRecursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição
Recursividade Prof. Cesar Augusto Tacla Métodos iterativos Métodos iterativos utilizam estruturas de repetição For While Do while Normalmente, um método invoca outros métodos, não a si mesmo. 2 1 Recursividade
Leia maisRecursã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 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 maisAlgoritmos e Funções Recursivas
Considere a definição da função fatorial: n! = 1 se n 0 n.(n-1).(n-2).... 3.2.1 se n > 0 Considere agora a seguinte definição equivalente: n! = 1 se n 0 n.(n-1)! se n > 0 Dizemos que essa última definição
Leia maisMC-102 Aula 07 Comandos Repetitivos
MC-102 Aula 07 Comandos Repetitivos Instituto de Computação Unicamp 11 de Setembro de 2016 Roteiro 1 Variável Indicadora Números Primos Números em Ordem 2 Variável Contadora Números Primos 3 Outros Exemplos
Leia maisUniversidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02
1 Objetivos da lista Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02 Esta lista de exercícios tem como objetivo introduzir funções na linguagem C. Como
Leia maisProf. A. G. Silva. 25 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de / 35
INE5603 Introdução à POO Prof. A. G. Silva 25 de setembro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de 2017 1 / 35 Baseado em materiais da Recursividade Unisinos, Cesar Tacla (UTFPR),
Leia maisAlgoritmos e Programação. AULA 21: Recursividade UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO TECNOLÓGICO CIÊNCIA DA COMPUTAÇÃO
1 Algoritmos e Programação AULA 21: Recursividade UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO TECNOLÓGICO CIÊNCIA DA COMPUTAÇÃO 2 Recursividade A recursão é o processo pelo qual passa um
Leia maisEstrutura de Dados Conceitos Iniciais
Engenharia de CONTROLE e AUTOMAÇÃO Estrutura de Dados Conceitos Iniciais Aula 04 DPEE 08 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria
Leia maisProgramaçã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 maisProcessamento da Informação Teoria. Recursividade
Processamento da Informação Teoria Recursividade Semana 08 Prof. Jesús P. Mena-Chalco 15/06/2013 Uma função chama outra função Vimos exemplos de uma função chamar uma outra função. def fatorial1(n): mult
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 maisAula 11 - Repetições Encaixadas
Aula 11 - Repetições Encaixadas Já vimos os seguintes comandos de repetição: while for do while O formato geral destes comando é: while (comparação) {c1; c2;...; cn; for (inicialização; comparação; incremento)
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 maisEstruturas de Repetição
Estruturas de Repetição Disciplina: Algoritmos e Programação Luciano Moraes Da Luz Brum Universidade Federal do Pampa Unipampa Campus Bagé Email: lucianobrum18@gmail.com Horários de atendimento: (outros
Leia maisMC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais
MC-102 Aula 04 Expressões Relacionais, Lógicas e Comandos Condicionais Instituto de Computação Unicamp 26 de Agosto de 2016 Roteiro 1 Expressões relacionais 2 Expressões lógicas 3 4 Exercícios (Instituto
Leia maisAula 16: Laços aninhados e desvios
Aula 16: Laços aninhados e desvios Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Comandos de Repetição (Parte
Leia maisEstruturas condicionais
Estruturas condicionais David Déharbe 1 1 Objetivos da aula Revisar os primeiros elementos de linguagem C já vistos. Condicionais simples Condicionais compostas Operadores lógicos 2 2 Objetivos da aula
Leia maisIntrodução à Programação
Introdução à Programação 1.Ano LCC-MIERSI DCC - FCUP Nelma Moreira Aula 12 Recursividade Recursão versus Iteração FACTORIAL outra vez! Muitas versões. n! = n (n - 1)... 1 int facti(int n){ int fac=n; while(--n>0){
Leia maisEstruturas de Dados Aula 14: Recursão
Estruturas de Dados Aula 14: Recursão Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 2; Estruturas de Dados e seus Algoritmos (Szwarefiter, et. al): Capítulo 1; Algorithms
Leia maisAula 3: Algoritmos: Formalização e Construção
Aula 3: Algoritmos: Formalização e Construção Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Algoritmos: Formalização e Pseudo-Código Programação de
Leia maisEstruturas de Dados Aula 14: Recursão 19/05/2011
Estruturas de Dados Aula 14: Recursão 19/05/2011 Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 2; Estruturas de Dados e seus Algoritmos (Szwarefiter, et. al): Capítulo 1;
Leia maisLinguagem C. Prof.ª Márcia Jani Cícero
Linguagem C Prof.ª Márcia Jani Cícero A estrutura Básica de um Programa em C Consiste em uma ou várias funções ou programas. main( ) // primeira função a ser executada // inicia a função // termina a função
Leia maisRecursão. Prof. Fabrício Olivetti de França. (com inspirações do slide do prof. Rodrigo Hausen)
Recursão Prof. Fabrício Olivetti de França (com inspirações do slide do prof. Rodrigo Hausen) Recursão Para entender recursão, você primeiro deve entender recursão! Recursão Forma de pensar em uma solução
Leia maisAlgoritmos e Funções Recursivas
Considere a definição da função fatorial: n! = 1 se n 0 Considere agora a seguinte definição equivalente: n! = 1 se n 0 Dizemos que essa última
Leia maisAula 05: Condicionais (if / else)
Aula 05: Condicionais (if / else) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão
Leia maisAlgoritmos e Estruturas de Dados
Algoritmos e Estruturas de Dados Prof. Yandre Maldonado - 1 RECURSIVIDADE Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 2 Um objeto é dito recursivo se ele consistir parcialmente ou
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 maisUniversidade 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 maisAula 05. Modularização Função Subrotina Recursividade
Logo Aula 05 Modularização Função Subrotina Recursividade 2 Modularização A modularização é um processo que aborda os aspectos da decomposição de algoritmos em módulos. Módulo é um grupo de comandos, constituindo
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 maisAlgoritmos e Estruturas de Dados
Algoritmos e Estruturas de Dados Prof. Yandre Maldonado - 1 RECURSIVIDADE Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 2 Um objeto é dito recursivo se ele consistir parcialmente ou
Leia mais04 Recursão SCC201/501 - Introdução à Ciência de Computação II
04 Recursão SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir Ponti Jr. (ICMCUSP) 04Recursão
Leia maisTécnicas de análise de algoritmos
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Técnicas de análise de algoritmos Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br
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 maisIntrodução a Algoritmos Parte 08
Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 08 (Baseado no Material do Prof. Marcelo Linder) Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br
Leia maisRoteiro Prático Nº 13 Recursividade
UNIVERSIDADE FEDERAL DE ITAJUBÁ UNIFEI CAMPUS ITABIRA BAC004 TÉCNICAS DE PROGRAMAÇÃO Professores: Claudia, Denílson, Fabiana, Fernando, Juliano, Natália, Raquel, Rodrigo, Sandro e Walter Roteiro Prático
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 maisFundamentos de programação
Fundamentos de programação Recursividade Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno O que é recursividade? Técnica baseada em divisão e conquista Buscar solucionar o problema dividindo
Leia maisMC102 Aula 27 Recursão II
MC102 Aula 27 Recursão II Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Relembrando 2 Cálculo de Potências 3 Torres de Hanoi 4 Recursão e Backtracking 5 Exercício (Instituto
Leia maisProgramação Estruturada Prof. Rodrigo Hausen Recursão
Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Recursão 1 O QUE É? Definição recursiva é aquela que define os elementos de um conjunto em função de outros elementos desse mesmo
Leia maisINF1005: Programação 1. Repetições. 08/03/10 (c) Paula Rodrigues 1
INF1005: Programação 1 Repetições 08/03/10 (c) Paula Rodrigues 1 Tópicos Principais Construção de Laços com while Algoritmos com Repetição Construção de Laços com for Repetição com Teste no Final 08/03/10
Leia maisAula 14: Repetição (Parte 2)
Aula 14: Repetição (Parte 2) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Laços de repetição Comando de repetição
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 maisLinguagem C estruturas de repetição
Linguagem C estruturas de repetição IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C Estrutura de um programa Escrita e
Leia maisRevisão: Tipo Abstrato de Dados Recursividade
Algoritmos e Estrutura de Dados II Revisão: Tipo Abstrato de Dados Recursividade Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estudo das estruturas de dados envolve dois objetivos complementares:
Leia maisAula 03 -Introdução àlinguagc Programação: Estrutura-Repetição. OPL e IC1 Prof: Anilton Joaquim da Silva
Aula 03 -Introdução àlinguagc Programação: Estrutura-Repetição OPL e IC1 Prof: Anilton Joaquim da Silva Anilton.ufu@outlook.com 1 Estrutura de Repetição Em certas situações é necessária a repetição de
Leia maisEstruturas de repetição
Título em português: FEITIÇO DO TEMPO (1993) Sinopse: Um repórter de televisão que faz previsões de meteorologia vai à uma pequena cidade para fazer uma matéria especial sobre o inverno. Querendo ir embora
Leia maisALGORITMOS AVANÇADOS UNIDADE II Recursividade. Luiz Leão
Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 2.1 - Definições recursivas 2.2 - Como implementar recursividade 2.3 - Quando não usar recursividade 2.4 - Desenvolvendo algoritmos
Leia maisProgramação para Games I
Programação para Games I Estrutura de Decisão Estrutura de Decisão Uma estrutura de decisão examina uma ou mais condições e decide quais delas serão executadas Em jogos digitais, considere inicialmente
Leia maisINF1005 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 Exemplo 1 Pontifícia Universidade Católica Departamento de Informática 2 Computação Científica 3 Processador
Leia maisLógica de Programação I
Gilson de Souza Carvalho gaucho.gilson@hotmail.com 1 Comando Do/While Além do comando while, existem outras estruturas para implementar laços repetitivos. O comando Do/While funciona de forma similar ao
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
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 maisIntrodução à Computação II Unesp Rio Claro 2012Prof. Rafael Oliveira
Recursão A recursão é bastante usada na matemática para definir funções, usando elas mesmas nas suas próprias definições. Por exemplo o cálculo de um fatorial, pode ser representada em forma de recursão
Leia maisProgramação Estruturada
Programação Estruturada Estruturas de repetição Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Comandos de repetição
Leia maisRoteiro da aula. Resolução de exercícios O operador de indireção Sub-rotinas e tipos. DIM Conceitos e Técnicas de Programação
Roteiro da aula Resolução de exercícios O operador de indireção Sub-rotinas e tipos. 1 1 Exercícios David Déharbe 2 2 Uma definição de sub-rotina em C int max (int x, int y) int result; if (x > y) result
Leia maisINF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Complexidade de Algoritmos 2012 DI, PUC-Rio Estruturas de Dados Avançadas 2012.2 1 Introdução Complexidade computacional Termo criado por Hartmanis e Stearns (1965)
Leia maisAula 06: Análise matemática de algoritmos recursivos
Aula 06: Análise matemática de algoritmos recursivos David Déharbe Programa de Pós-graduação em Sistemas e Computação Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra Departamento
Leia maisProgramação Estruturada Prof. Rodrigo Hausen Condicionais e Laços
Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Condicionais e Laços 1 RELEMBRANDO - AULA PASSADA Definindo Funções tipo de retorno (saída) tipo nomefuncao(tipo par1, tipo par2)
Leia maisPython: Recursão. Claudio Esperança
Python: Recursão Claudio Esperança Recursão É um princípio muito poderoso para construção de algoritmos A solução de um problema é dividido em Casos simples: São aqueles que podem ser resolvidos trivialmente
Leia maisAula 12- Variáveis e valores reais
Aula 12- Variáveis e valores reais Até agora todos os nossos problemas continham apenas valores inteiros e portanto variáveis do tipo int. Para resolver problemas que usam valores com parte fracionária,
Leia maisLinguagem C: agregados heterogêneos, arquivos binários, recursividade. Prof. Críston Algoritmos e Programação
Linguagem C: agregados heterogêneos, arquivos binários, recursividade Prof. Críston Algoritmos e Programação Agregados heterogêneos Permitem agrupar variáveis de diferentes tipos em um único registro struct
Leia maisEstruturas de Controle de Fluxo
Aula Prática IX Aula Prática IX Teoria Estruturas de Controle de Fluxo Instrução condicional simples Em pseudocódigo: Na linguagem C: se entao fimse if ()
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 maisIntroduçã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 maiscontrole de fluxo repetições iterativas
Controle de Fluxo Repetições iterativas INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 controle de fluxo repetições iterativas tópicos while for do while break continue referência
Leia maisAula 07: Introdução a Funções
Aula 07: Introdução a Funções Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Comandos condicionais Exemplos diversos
Leia mais2º Roteiro de Laboratório Estruturas condicionais
2º Roteiro de Laboratório Estruturas condicionais Tópicos abordados 1. Estruturas if e if/ 1.1. Sintaxe 1.2. Exemplo: par_impar.c 2. Aplicação 2.1. Problema resolvido: [PR 1] 2.2. Problemas propostos:
Leia maisAlgoritmos e Lógica de Programação. 6ª Lista de Exercícios Comandos de Repetição
Algoritmos e Lógica de Programação 6ª Lista de Exercícios Comandos de Repetição 1. Qual a saída do programa abaixo? int i; for (i = 0; i < 10; i += 2) printf("%d\n", i / 2); 2. Qual a saída do programa
Leia maisLinguagem C++ Estruturas de controle Parte II Estruturas de repetição
Fundamentos de Programação Linguagem C++ Estruturas de controle Parte II Estruturas de repetição Prof. Bruno E. G. Gomes IFRN 1 Estruturas de Controle Permitem o controle da sequência de execução de um
Leia maisMC-102 Aula 06 Comandos Repetitivos
MC-102 Aula 06 Comandos Repetitivos Instituto de Computação Unicamp 2 de Setembro de 2016 Roteiro 1 Comandos Repetitivos 2 Comando while 3 Comando do-while 4 O comando for 5 Exemplos com Laços Variável
Leia maisRecursão. Prof. Cristiano André da Costa. [Versão de Março de 2000] Definição
Recursão [Versão de Março de 2000] Definição Um objeto é dito recursivo se ele consistir parcialmente ou for definido em termos de si próprio Recursões ocorrem na matemática, informática, no dia a dia...
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos
Leia maisProgramação Estruturada
Programação Estruturada Estruturas condicionais Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Comandos condicionais
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 maisProgramaçã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 maisPROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C
PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C 1 2 Condicional 1 Se 'C' é verdadeira Então?; 3 Condicional 1 Se 'C' é verdadeira Então? if (C)?; 4 Condicional 2 Se 'C' é verdadeira Então? Senão?? 5 Condicional
Leia maisCapítulo 3: Repetições. Pontifícia Universidade Católica Departamento de Informática
Capítulo 3: Repetições 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 numericamente por um computador
Leia maisAula prática 5. Funções Recursivas
Programação Funcional UFOP DECOM 2014.1 Aula prática 5 Funções Recursivas Resumo Definições recursivas são comuns na programação funcional. Nesta aula vamos aprender a definir funções recursivas. Sumário
Leia maisProgramação de Computadores II
Programação de Computadores II Aula de Revisão 01 Karina Mochetti 2019.1 Formato da Prova Questões teóricas. Escrever um programa do zero. Dar valores finais de variáveis. Completar um programa. Achar
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 maisAlgoritmos e Estruturas de Dados I 01/2013. Vetores e Recursividade. Pedro O.S. Vaz de Melo
Algoritmos e Estruturas de Dados I 01/2013 Vetores e Recursividade Pedro O.S. Vaz de Melo Problema 1 Implemente uma função que classifique os elementos de um vetor em ordem crescente usando o algoritmo
Leia maisPROTÓ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