ALGORITMOS – AULA 05 DE 100
| Unidade | 1 – Fundamentos e estruturas de controle |
|---|---|
| Bloco | Algoritmos e lógica (aulas 1 a 6) |
| Duração e tipo | 45 minutos – teórica e prática |
| Aula anterior | Aula 04 – Diagrama de blocos II: decisão e repetição |
| Próxima aula | Aula 06 – Linguagens de programação: níveis, compilação, interpretação e Python |
1 Objetivos da aula
- Aplicar um método em etapas para ir do enunciado de um problema até o algoritmo.
- Identificar entradas, processamento e saídas a partir de um enunciado.
- Executar o teste de mesa de diagramas com decisão e repetição.
- Escolher casos de teste que revelem erros: típico, limite e inválido.
2 Roteiro da aula
| Tempo | Momento | Atividade |
|---|---|---|
| 0–5 min | Retomada | O diagrama dos pares de 2 a 20 (tarefa da Aula 04): como ter certeza de que está certo? |
| 5–20 min | Exposição dialogada | Método de resolução; entradas, processamento e saídas; teste de mesa; casos de teste. |
| 20–38 min | Prática guiada | Do enunciado ao diagrama, com teste de mesa, em duplas. |
| 38–42 min | Demonstração | O computador imprimindo o próprio teste de mesa. |
| 42–45 min | Síntese e ponte | Resumo e tarefa para a Aula 06. |
3 Conhecimentos prévios
Aulas 03 e 04: símbolos do diagrama de blocos, decisão e repetição com contador.
4 Conteúdo
4.1 Um método para resolver problemas
Diante de um enunciado, a tentação é começar a desenhar (ou, mais tarde, a programar) imediatamente. Um método em etapas evita retrabalho. O roteiro abaixo é inspirado no método de resolução de problemas do matemático George Pólya (compreender, planejar, executar e revisar), adaptado à programação:
- Entender o problema: ler o enunciado com atenção e reescrevê-lo com suas palavras.
- Identificar as entradas, o processamento e as saídas.
- Escolher exemplos cuja resposta você já conhece, calculando à mão.
- Desenhar o algoritmo (diagrama de blocos; depois, código).
- Testar o algoritmo com os exemplos, usando o teste de mesa.
- Corrigir o que o teste revelou e testar de novo.
4.2 Do enunciado às entradas, ao processamento e às saídas
O modelo entrada, processamento e saída da Aula 01 é a ferramenta da etapa 2. Uma dica: os substantivos que o enunciado fornece costumam ser entradas; o que ele pede é a saída; as regras e fórmulas descrevem o processamento.
| Enunciado | Entradas | Processamento | Saídas |
|---|---|---|---|
| Calcular o valor da conta de luz, dados o consumo do mês (kWh) e o preço do kWh. | consumo, preco | valor ← consumo × preco | valor |
| Calcular o troco de uma compra, dados o total e o valor pago. | total, pago | troco ← pago − total | troco |
| Informar se um estudante pode fazer a prova final, dada a média (de 2,0 até abaixo de 7,0). | media | media ≥ 2 e media < 7 | “Pode” ou “Não pode” |
| Somar todos os números inteiros de 1 até n. | n | repetir: soma ← soma + cont | soma |
4.3 Teste de mesa
Definição
Teste de mesa é a simulação manual de um algoritmo, passo a passo, anotando numa tabela o valor de cada variável depois de cada passo, para conferir se a saída é a esperada.
Souza et al. (2019, seção 3.5.5) chamam essa técnica de simulação de algoritmos. A tabela tem uma coluna para cada variável, uma para as condições testadas e uma para as saídas. Cada linha registra um momento da execução.
Exemplo com decisão
No diagrama da média da Aula 04 (Figura 2 daquela aula), três testes cobrem os caminhos possíveis:
| Teste | nota1 | nota2 | media | media ≥ 7? | Saída |
|---|---|---|---|---|---|
| 1 | 8 | 9 | 8,5 | V | Aprovado |
| 2 | 5 | 6 | 5,5 | F | Não aprovado |
| 3 | 7 | 7 | 7,0 | V | Aprovado |
Exemplo com repetição
A Figura 1 soma os números de 1 até n. Veja o teste de mesa com n = 4; a resposta esperada, calculada à mão, é 1 + 2 + 3 + 4 = 10.

Figura 1 – Soma dos números de 1 a n
| Momento | n | soma | cont | cont ≤ n? | Saída |
|---|---|---|---|---|---|
| Início | 4 | – | – | – | – |
| Inicialização | 4 | 0 | 1 | – | – |
| Volta 1 | 4 | 1 | 2 | 1 ≤ 4: V | – |
| Volta 2 | 4 | 3 | 3 | 2 ≤ 4: V | – |
| Volta 3 | 4 | 6 | 4 | 3 ≤ 4: V | – |
| Volta 4 | 4 | 10 | 5 | 4 ≤ 4: V | – |
| Saída do laço | 4 | 10 | 5 | 5 ≤ 4: F | 10 |
Cada linha “Volta” mostra os valores depois de executar soma ← soma + cont e cont ← cont + 1. O teste de mesa confirma a saída 10. Note que a condição é testada uma vez a mais do que o número de voltas: é a última verificação, falsa, que encerra o laço.
4.4 Escolhendo casos de teste
Um teste só revela um erro se passar pelo trecho errado. Por isso, escolha casos de três tipos:
| Tipo de caso | O que testa | Exemplo no algoritmo da média |
|---|---|---|
| Típico | Um valor comum, no meio da faixa. | Notas 8 e 9 (média 8,5) |
| Limite | Os valores exatamente na fronteira de uma condição. | Notas 7 e 7 (média 7,0): aprovado? |
| Inválido | Um valor fora do que o problema admite. | Nota 11 ou −2: o algoritmo deveria aceitar? |
O caso limite é o que mais revela erros: trocar ≥ por > muda apenas o resultado da média exatamente 7,0, como você viu no exercício 4 da Aula 01. Casos inválidos mostram que o algoritmo ainda não se protege de entradas erradas; a validação de entrada será estudada na Aula 24.
4.5 Encontrando um erro com o teste de mesa
A Figura 2 é quase igual à Figura 1, mas tem um erro. Faça o teste de mesa com n = 4 antes de ler a resposta.

Figura 2 – Soma de 1 a n com um erro escondido
| Momento | soma | cont | cont < n? | Saída |
|---|---|---|---|---|
| Inicialização | 0 | 1 | – | – |
| Volta 1 | 1 | 2 | 1 < 4: V | – |
| Volta 2 | 3 | 3 | 2 < 4: V | – |
| Volta 3 | 6 | 4 | 3 < 4: V | – |
| Saída do laço | 6 | 4 | 4 < 4: F | 6 |
A saída é 6, mas o esperado é 10: o número 4 nunca é somado, porque a condição cont < n fica falsa quando cont chega a 4. A correção é usar cont ≤ n. Esse tipo de erro, em que o laço executa uma vez a menos (ou a mais) do que deveria, é tão comum que tem nome em inglês: off-by-one.
5 Prática guiada
Para cada problema, em duplas (18 minutos): (a) identifique entradas, processamento e saídas; (b) escolha dois casos de teste e calcule a resposta à mão; (c) desenhe o diagrama de blocos; (d) faça o teste de mesa.
- Ler o total de uma compra e o valor pago e mostrar o troco. Se o valor pago for menor que o total, mostrar “Valor insuficiente”.
- Ler a média de um estudante e mostrar “Aprovado”, “Prova final” ou “Reprovado”, pela regra da disciplina. Inclua os casos limite 7,0 e 2,0.
- Desafio: ler 5 números e mostrar quantos são positivos.
6 Demonstração: o computador fazendo o teste de mesa
O professor vai executar o programa abaixo, que segue a Figura 1 e imprime uma linha a cada volta, como no teste de mesa. Mais adiante, nas aulas de depuração (16, 29 e 65), você vai acompanhar os valores das variáveis com uma ferramenta do VS Code, sem precisar desses print.
n = int(input("n: "))
soma = 0
cont = 1
print("cont | cont <= n | soma")
while cont <= n:
soma = soma + cont
print(f"{cont:4} | {'V':>9} | {soma:4}")
cont = cont + 1
print(f"{cont:4} | {'F':>9} | {soma:4}")
print("Soma:", soma)
Uma execução possível (o valor 4 foi digitado pelo usuário):
n: 4
cont | cont <= n | soma
1 | V | 1
2 | V | 3
3 | V | 6
4 | V | 10
5 | F | 10
Soma: 10
Atenção: o programa imprime o valor de cont antes de atualizá-lo, por isso a coluna cont aparece deslocada em relação ao teste de mesa da seção 4.3, que registra os valores depois de cada volta. Os valores de soma são os mesmos.
7 Síntese
- Resolver problemas em etapas: entender, identificar entradas, processamento e saídas, escolher exemplos, desenhar, testar e corrigir.
- O teste de mesa simula o algoritmo à mão, registrando os valores das variáveis a cada passo.
- Bons casos de teste incluem valores típicos, limites e inválidos; o caso limite revela os erros mais comuns.
8 Exercícios de fixação
- Identifique entradas, processamento e saídas: (a) calcular o IMC (peso dividido pelo quadrado da altura); (b) converter um valor em reais para dólares, dada a cotação; (c) informar se um ano tem mais de 365 dias.
- Faça o teste de mesa da Figura 1 com n = 1 e com n = 0. As saídas fazem sentido?
- Faça o teste de mesa da Figura 3 com n = 5 e com n = 6. O que muda na última volta?
- Escolha três casos de teste (típico, limite e inválido) para o diagrama do maior de dois números (Figura 4). Faça o teste de mesa e diga o que o diagrama mostra quando os números são iguais.
- Faça o teste de mesa do diagrama dos pares de 2 a 20 que você trouxe como tarefa. Ele exibe exatamente dez números?

Figura 3 – Contagem regressiva (exercício 3)

Figura 4 – Maior de dois números (exercício 4)
9 Para a próxima aula
Aula 06 – Linguagens de programação: níveis, compilação, interpretação e Python. Até aqui os algoritmos foram executados por nós. Na próxima aula veremos como um algoritmo vira algo que o computador executa.
- Tarefa: pesquise o nome de três linguagens de programação e para que cada uma é usada. Use sites ou livros, sem IA, e anote a fonte de cada informação.
- Leitura recomendada: SEVERANCE (2020), Python para Todos, capítulo 1, seções “Arquitetura de hardware de computadores” e “Terminologia: interpretador e compilador”. Download gratuito: http://do1.dr-chuck.com/pythonlearn/PT_br/pythonlearn.pdf.
- Leitura complementar: SOUZA et al. (2019), capítulo 3, seção 3.5.5.
Referências
- SEVERANCE, Charles R. Python para todos: explorando dados com Python 3. Tradução: Yuri Loia et al. [S. l.: s. n.], 2020. Licença CC BY-NC-SA 3.0. Disponível em: http://do1.dr-chuck.com/pythonlearn/PT_br/pythonlearn.pdf. Acesso em: 9 out. 2026.
- SOUZA, Marco Antonio Furlan de et al. Algoritmos e lógica de programação. 3. ed. São Paulo: Cengage Learning, 2019.
