Ficha 05 · Pseudocódigo, fluxograma e depuração
- Converter entre pseudocódigo e fluxograma
- Construir trace tables
- Identificar e corrigir erros típicos
- Aplicar programação defensiva
Parte I · Pseudocódigo ↔ Fluxograma
Exercício 1 · Identificar símbolos
Indica o nome (e símbolo) que representa cada um destes elementos do fluxograma:
a) Início ou fim do algoritmo. ___
b) Cálculo ou atribuição. ___
c) Decisão (pergunta com resposta V/F). ___
d) Entrada ou saída de dados. ___
e) Direção do fluxo entre símbolos. ___
Exercício 2 · Converter pseudocódigo em fluxograma
Considera o seguinte algoritmo. Desenha o fluxograma correspondente no espaço abaixo:
INICIO
LER nota
SE nota >= 10 ENTÃO
ESCREVER "Aprovado"
SENÃO
ESCREVER "Reprovado"
FIM SE
FIM
Exercício 3 · Converter fluxograma em pseudocódigo
Considera um fluxograma com:
- Terminal «INÍCIO»;
- Paralelogramo «LER n»;
- Processo «soma ← 0», «i ← 1»;
- Losango «i ≤ n ?»;
- Saída V → Processo «soma ← soma + i», «i ← i + 1», volta ao losango.
- Saída F → Paralelogramo «ESCREVER soma».
- Terminal «FIM».
Escreve o pseudocódigo equivalente.
Parte II · Trace Table
Exercício 4 · Trace table simples
Completa a trace table para o algoritmo abaixo, com entrada n = 6:
LER n
fact ← 1
i ← 1
ENQUANTO i <= n FAÇA
fact ← fact * i
i ← i + 1
FIM ENQUANTO
ESCREVER fact
| Iteração | n |
i (antes do teste) |
Condição i ≤ n |
fact (após operação) |
i (após incremento) |
|---|---|---|---|---|---|
| Inicial | 6 | 1 | V | 1 (1×1) | 2 |
| 2 | 6 | 2 | V | ||
| 3 | 6 | ||||
| 4 | 6 | ||||
| 5 | 6 | ||||
| 6 | 6 | ||||
| 7 | 6 | F | (nenhuma) | (nenhuma) |
Saída: ____
Parte III · Identificar e corrigir erros
Exercício 5 · Encontrar o erro
O algoritmo seguinte é suposto somar os primeiros n números pares. Identifica o(s) erro(s) e corrige:
LER n
soma ← 1 // (a)
PARA i DE 1 ATÉ n FAÇA // (b)
soma ← soma + i // (c)
FIM PARA
ESCREVER soma
Exercício 6 · Detetar ciclo infinito
Indica se cada algoritmo termina. Se não terminar, explica porquê.
(a)
i ← 0
ENQUANTO i < 10 FAÇA
i ← i + 2
FIM ENQUANTO
(b)
i ← 0
ENQUANTO i <> 10 FAÇA
i ← i + 3
FIM ENQUANTO
(c)
n ← 100
ENQUANTO n > 0 FAÇA
n ← n - 1
FIM ENQUANTO
Exercício 7 · Programação defensiva
O seguinte algoritmo calcula a média de notas, mas tem várias vulnerabilidades. Identifica-as e propõe melhorias.
LER n
soma ← 0
PARA i DE 1 ATÉ n FAÇA
LER nota
soma ← soma + nota
FIM PARA
media ← soma / n
ESCREVER media
Exercício 8 · Refactoring (legibilidade)
Reescreve o seguinte algoritmo de forma mais legível, mantendo o mesmo comportamento. Justifica pelo menos duas alterações.
INICIO
LER x
LER y
z ← x + y
IF z > 100 THEN
a ← z * 0.1
ESCREVER z - a
ELSE
ESCREVER z
FIM SE
FIM