Buscar

Prof Richard Fluxogramas de algoritmos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

DIM0436
32. Fluxogramas
20141125
DIM0436 20141125 1 / 19
Outline
1 Fluxograma
2 Exercícios
DIM0436 20141125 2 / 19
1 Fluxograma
2 Exercícios
DIM0436 20141125 3 / 19
Grafo
Definição
Um grafo é definido como um triplo
(V ,E , s)
V : conjunto de vértices
E : conjunto de arestas
s : E 7→ V × V : mapa que associa
uma aresta a 2 vertices, a fonte e o
alvo.
Exemplo
a
b
1
c
3
d
2 4
Detalhes
V = {a, b, c , d}
E = {1, 2, 3, 4}
s = {1 7→ (a, b), 2 7→ (b, d), 3 7→ (a, c), 4 7→ (c , d)}
DIM0436 20141125 4 / 19
O que é um fluxograma ?
Um fluxograma é uma representação do algoritmo em forma de grafo.
É uma vista alternativa do programa textual
É focada nas decisões do programa e mostra todos os caminhos possíveis de
execução.
Nós do fluxograma = instruções do programa
Setas / arestas = caminhos de controle duma instrução à proxima
DIM0436 20141125 5 / 19
Nós inicial/final
Todo módulo (função / procedimento / módulo principal) tem:
um nó de entrada
um nó de saída
I toda instrução retorne é ligada ao nó de saída
esses nós são estruturais e não fazem parte do programa original
Entrada
in_algoritmo
Saída
out_algoritmo
DIM0436 20141125 6 / 19
Instrução / comando básico
Nó retângulo
1 nó / 1 instrução
a <- x + 1
DIM0436 20141125 7 / 19
Entradas / saídas
Instruções de entrada e de saída tem nós especiais
Um é o simétrico geométrico do outro
Entradas
leia(x)
Saídas
escreval(x)
DIM0436 20141125 8 / 19
Decisão
Os nós de decisão usam o losango
Tem 2 nós alvos para uma única fonte, um para cada decisão possível
Código
1 se x > 1 entao
2 y <- x + 1
3 senao
4 y <- x * 2
5 fimse
Fluxograma
x > 1
y <- x + 1
verdadeiro
y <- x * 2
falso
DIM0436 20141125 9 / 19
Laços
1 algoritmo "Chamada"
2 var y, i: inteiro
3 v: vetor[1..8] de inteiro
4 achado: logico
5
6 inicio
7 escreva("Entre com um inteiro: ")
8 leia(y)
9 para i de 1 ate 8 faca
10 v[i] <- i * 2
11 fimpara
12 i <- 1
13 achado <- falso
14 enquanto i < 9 faca
15 se v[i] = y entao
16 achado <- verdadeiro
17 fimse
18 i <- i + 1
19 fimenquanto
20 escreval(achado)
21 fimalgoritmo
Laços são os únicos comandos
com arestas que “voltam” a uma
etapa anterior do algoritmo.
O último comando do corpo do
laço volta para a o nó de
decisão
O nó de decisão tem 2 nós
alvos:
I o primeiro comando do corpo
do laço
I a instrução que segue o corpo
do laço
DIM0436 20141125 10 / 19
Chamada de função
Código
1 algoritmo "Chamada"
2 var y: inteiro
3 funcao q(x: inteiro): inteiro
4 inicio
5 retorne x * x
6 fimfuncao
7
8 inicio
9 y <- q(3) + 1
10 escreval(y)
11 fimalgoritmo
DIM0436 20141125 11 / 19
Resumo
1 Fluxograma
2 Exercícios
DIM0436 20141125 12 / 19
Perguntas ?
http://dimap.ufrn.br/~richard/dim0320
DIM0436 20141125 13 / 19
1 Fluxograma
2 Exercícios
DIM0436 20141125 14 / 19
Fluxograma / escopo
1 algoritmo "foo"
2 var a: inteiro
3
4 funcao g(x: inteiro): inteiro
5 inicio
6 a <- 10
7 retorne 2 * x
8 fimfuncao
9
10 funcao f(x: inteiro): inteiro
11 var v: inteiro
12 inicio
13 v <- 1
14 retorne g(x) + v
15 fimfuncao
16
17 inicio
18 a <- 3
19 escreval(f(6) + a)
20 fimalgoritmo
1 Desenhe o fluxograma desse
programa
2 O que escreva o programa
abaixo ? Por que ?
DIM0436 20141125 15 / 19
Fluxograma
1 algoritmo "Soma de um vetor"
2 var a: vetor [1..10] de real
3 i, n :inteiro
4 soma : real
5 inicio
6 repita
7 leia(n)
8 ate (n > 0) e (n <= 10)
9 soma <- 0
10 para i de 1 ate n faca
11 soma <- soma + a[i]
12 fimpara
13 escreva(soma)
14 fimalgoritmo
Desenha o fluxograma desse
programa
DIM0436 20141125 16 / 19
Leitura/interpretação
Assunto
Dada a implementação:
1 funcao f(n: inteiro): inteiro
2 inicio
3 se n < 4 entao retorne (3 * n)
4 senao retorne (2 * f(n - 4) + 5)
5 fimse
6 fimfuncao
Escreva as árvores de chamada de função para f(3) e f(7) ? Quais são os
valores obtidos?
DIM0436 20141125 17 / 19
Elemento máximo de um vetor
Assunto
Implemente uma função recursiva max que retorne o maior valor de um vetor de n
números inteiros.
DIM0436 20141125 18 / 19
Combinações
Assunto
Considere a função comb(n, k), que representa o número de grupos distintos com
k pessoas que podem ser formados a partir de n pessoas. Por exemplo,
comb(4, 3) = 4, pois com 4 pessoas (A, B, C, D), é possível formar 4 diferentes
grupos: ABC, ABD, ACD e BCD. Sabe-se que:
comb(n, k) =

n k = 1
1 k = n
comb(n − 1, k − 1) + comb(n − 1, k) 1 < k < n
Implemente em portugol uma função recursiva para comb (n, k) e mostre o
diagrama de execução para chamada comb(5, 3).
Sabendo-se ainda comb(n, k) = n!/(k!(n− k)!), implemente uma função não
recursiva de comb(n, k).
DIM0436 20141125 19 / 19
	Fluxograma
	Exercícios

Continue navegando