Partilhar: WhatsApp
aulify
UC UC00245 · T. Desenv. Software, T. Multimédia, T. Inform. Gestão, T. Eletrónica, T. Produção de Conteúdos I, T. Instalações Elétricas, T. Eletrónica e Comunicaçõ, T. Militar Naval

Ficha 05 · Pseudocódigo, fluxograma e depuração

Conversão entre representações · trace tables · identificação de erros
Versão · Aluno
Tempo · 60 minutos
Cotação · 100 pontos
Aluno(a)
Turma
Data
Objectivos da ficha

Parte I · Pseudocódigo ↔ Fluxograma

Exercício 1 · Identificar símbolos

Indique 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) Direcção do fluxo entre símbolos. ___

Exercício 2 · Converter pseudocódigo em fluxograma

Considere o seguinte algoritmo. Desenhe 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

Considere 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».

Escreva o pseudocódigo equivalente.

Parte II · Trace Table

Exercício 4 · Trace table simples

Complete 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

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. Identifique o(s) erro(s) e corrija:

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 · Detectar ciclo infinito

Indique se cada algoritmo termina. Se não terminar, explique 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. Identifique-as e proponha 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)

Reescreva o seguinte algoritmo de forma mais legível, mantendo o mesmo comportamento. Justifique 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