Algoritmos (ADS) – Aula 04

ALGORITMOS – AULA 04 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 03 – Diagrama de blocos I: símbolos e fluxo sequencial
Próxima aula Aula 05 – Resolução de problemas: entrada, processamento, saída e teste de mesa

1 Objetivos da aula

  1. Reconhecer os padrões básicos com que todo programa é construído.
  2. Escrever condições com operadores relacionais (=, ≠, >, <, ≥, ≤).
  3. Representar decisões simples, compostas e encadeadas no diagrama de blocos.
  4. Representar repetições com contador e explicar por que um laço precisa terminar.

2 Roteiro da aula

Tempo Momento Atividade
0–5 min Retomada Como mostrar “Aprovado” ou “Não aprovado” (tarefa da Aula 03).
5–22 min Exposição dialogada Padrões de construção; condições; decisão simples, composta e encadeada; repetição.
22–38 min Prática guiada Três diagramas com decisão e repetição, em papel, simulados em duplas.
38–42 min Demonstração Os diagramas da média e da contagem em Python.
42–45 min Síntese e ponte Resumo e tarefa para a Aula 05.

3 Conhecimentos prévios

Aula 03: símbolos de terminal, entrada manual, processamento, exibição, conector e linha de fluxo; construção e simulação de diagramas sequenciais.

4 Conteúdo

4.1 Os blocos de construção de qualquer programa

Os programas, em qualquer linguagem, são montados a partir de poucos padrões. A lista abaixo é adaptada de Severance (2020, cap. 1, seção “A construção de blocos de programas”):

Padrão O que faz Onde aparece nesta disciplina
Entrada Obtém dados do mundo externo: teclado, arquivo, sensor. Aula 03 (símbolo de entrada manual)
Saída Mostra ou guarda resultados: tela, arquivo, alto-falante. Aula 03 (símbolo de exibição)
Execução sequencial Executa as instruções uma após a outra, na ordem escrita. Aula 03
Execução condicional Verifica uma condição e executa ou pula um conjunto de instruções. Esta aula: decisão
Execução repetida Executa um conjunto de instruções várias vezes, geralmente com alguma variação. Esta aula: repetição
Reuso Dá um nome a um conjunto de instruções para usá-lo de novo. Unidade 2: funções

Severance resume: parece simples demais, e de fato a arte de programar está em combinar esses elementos muitas vezes para produzir algo útil. Hoje vamos acrescentar ao diagrama de blocos a execução condicional e a execução repetida.

4.2 Condições

Uma condição é uma pergunta cuja resposta é verdadeiro ou falso. No diagrama de blocos, ela é escrita dentro do símbolo de decisão, usando operadores relacionais:

Operador Significado Exemplo Resultado com idade = 17
= igual a idade = 18 falso
≠ diferente de idade ≠ 18 verdadeiro
> maior que idade > 16 verdadeiro
< menor que idade < 18 verdadeiro
≥ maior ou igual a idade ≥ 18 falso
≤ menor ou igual a idade ≤ 17 verdadeiro

Atenção

No diagrama usamos =, ≠, ≥ e ≤, como na matemática. Em Python a escrita é outra: == para igualdade, != para diferença, >= e <=. Isso será visto na Aula 17.

4.3 Decisão simples

Na decisão simples, uma ação só é executada se a condição for verdadeira; se for falsa, nada de diferente acontece. Exemplo: uma loja dá 10% de desconto em compras a partir de R$ 200,00 (Figura 1). O losango tem duas saídas, rotuladas Sim e Não, e os dois caminhos se reencontram no conector.

Figura 1 – Decisão simples: desconto de 10% em compras a partir de R$ 200,00

Simulando: com valor 250, a condição 250 ≥ 200 é verdadeira, o valor passa a 250 × 0,9 = 225 e a exibição mostra 225. Com valor 150, a condição é falsa, o processamento é pulado e a exibição mostra 150.

4.4 Decisão composta

Na decisão composta, há uma ação para o caso verdadeiro e outra para o caso falso: exatamente um dos dois caminhos é executado. A Figura 2 responde à tarefa da Aula 03.

Figura 2 – Decisão composta: aprovado ou não aprovado

4.5 Decisões encadeadas

Quando há mais de duas possibilidades, uma decisão pode levar a outra. Pela regra desta disciplina, quem tem média a partir de 7,0 é aprovado; quem tem média a partir de 2,0 (e abaixo de 7,0) faz a prova final; abaixo de 2,0, o estudante é reprovado. A Figura 3 representa essa regra (sem considerar a frequência).

Figura 3 – Decisões encadeadas: aprovado, prova final ou reprovado

Repare que a segunda decisão só é testada quando a primeira é falsa. Por isso basta perguntar “media ≥ 2”: quando chegamos ali, já sabemos que a média é menor que 7.

4.6 Repetição

Para exibir os números de 1 a 5, poderíamos desenhar cinco símbolos de exibição. Mas e se fossem 1.000? A repetição (ou laço) executa o mesmo trecho várias vezes enquanto uma condição for verdadeira. No diagrama, ela aparece como uma decisão com uma seta que volta para antes do teste (Figura 4).

Figura 4 – Repetição: exibir os números de 1 a 5

A variável cont é um contador: começa em 1 e aumenta de 1 em 1 a cada volta. A condição é testada antes de cada volta; quando cont chega a 6, o teste dá falso e o algoritmo segue para o Fim.

Volta cont antes do teste cont ≤ 5? Exibe
1 1 verdadeiro 1
2 2 verdadeiro 2
3 3 verdadeiro 3
4 4 verdadeiro 4
5 5 verdadeiro 5
– 6 falso (sai do laço)

O perigo do laço infinito

Se esquecermos o passo cont ← cont + 1, cont fica sempre igual a 1, o teste é sempre verdadeiro e o algoritmo nunca termina (Figura 5). Ele viola a propriedade de finitude vista na Aula 02. Todo laço precisa de algo que, a cada volta, aproxime a condição de ficar falsa.

Figura 5 – Laço infinito: falta atualizar o contador

Para saber mais

Manzano e Oliveira (2019) usam também o símbolo de preparação (hexágono) para laços com número fixo de voltas. Nesta disciplina representamos todos os laços com o símbolo de decisão, que mostra a condição de forma explícita.

5 Prática guiada

Desenhe no papel, em duplas, os diagramas abaixo (16 minutos). Simule cada um com pelo menos dois valores, um que faça a condição ser verdadeira e outro que a faça ser falsa.

  1. Ler dois números e mostrar o maior deles (decisão composta).
  2. Ler a idade de uma pessoa e mostrar “Pode votar” se ela tiver 16 anos ou mais, ou “Ainda não pode votar” caso contrário.
  3. Ler um número n e mostrar a tabuada de n, de n × 1 até n × 10 (repetição com contador).

Desafio: ler 5 números, um de cada vez, e mostrar a soma deles. Dica: além do contador, use uma variável soma que começa em 0 e recebe soma + número a cada volta.

6 Demonstração: decisão e repetição em Python

O professor vai executar o programa abaixo, que junta as Figuras 2 e 4. Compare cada trecho com o símbolo correspondente.

nota1 = float(input("Nota 1: "))
nota2 = float(input("Nota 2: "))
media = (nota1 + nota2) / 2
if media >= 7:                  # decisão
    print("Aprovado")
else:
    print("Não aprovado")
 
cont = 1
while cont <= 5:                # repetição
    print(cont)
    cont = cont + 1

Uma execução possível (os valores 8 e 5 foram digitados pelo usuário):

Nota 1: 8
Nota 2: 5
Não aprovado
1
2
3
4
5

Em Python, os comandos que ficam “dentro” da decisão ou do laço são escritos com recuo (quatro espaços). Esse recuo faz o papel das setas do diagrama. As decisões serão estudadas a partir da Aula 17 e as repetições a partir da Aula 23.

7 Síntese

  1. Programas combinam poucos padrões: entrada, saída, execução sequencial, condicional, repetida e reuso.
  2. A decisão (losango) testa uma condição e segue por Sim ou Não; pode ser simples, composta ou encadeada.
  3. A repetição volta para antes do teste; o laço precisa de algo que o leve ao fim, senão nunca termina.

8 Exercícios de fixação

  1. Classifique cada situação como sequência, decisão ou repetição: (a) calcular o IMC e mostrá-lo; (b) se chover, levar o guarda-chuva; (c) bater os ovos até a massa ficar homogênea; (d) conferir a presença de cada estudante da lista de chamada.
  2. Desenhe o diagrama de blocos que lê o valor de uma compra e mostra o valor a pagar, com 5% de desconto para compras a partir de R$ 100,00.
  3. Desenhe o diagrama de blocos que lê uma temperatura em °C e mostra “Frio” (abaixo de 15), “Agradável” (de 15 a 25) ou “Quente” (acima de 25).
  4. Desenhe o diagrama de blocos que mostra os números pares de 2 a 20.
  5. No diagrama da Figura 4, o que acontece se a condição for trocada por cont < 5? E se o contador começar em 0? Simule e responda.

9 Para a próxima aula

Aula 05 – Resolução de problemas: entrada, processamento, saída e teste de mesa. Vamos aprender um método para sair do enunciado e chegar ao algoritmo, e uma técnica para verificar se ele está certo.

  • Tarefa: traga o diagrama do exercício 4 (pares de 2 a 20). Vamos verificá-lo com teste de mesa.
  • Leitura recomendada: SEVERANCE (2020), Python para Todos, capítulo 1, seção “A construção de blocos de programas”. Download gratuito: http://do1.dr-chuck.com/pythonlearn/PT_br/pythonlearn.pdf.
  • Leitura complementar: SOUZA et al. (2019), capítulo 3, seções 3.5.3 e 3.5.4; MANZANO e OLIVEIRA (2019), capítulo 2, seção 2.3.3.

Referências

  1. MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para desenvolvimento de programação de computadores. 29. ed. São Paulo: Érica, 2019.
  2. 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.
  3. SOUZA, Marco Antonio Furlan de et al. Algoritmos e lógica de programação. 3. ed. São Paulo: Cengage Learning, 2019.

Licença

Esta aula adapta trechos marcados do livro Python para Todos (SEVERANCE, 2020), distribuído sob a licença Creative Commons Atribuição-NãoComercial-CompartilhaIgual 3.0 (CC BY-NC-SA 3.0). Por isso, esta aula também é distribuída sob a licença CC BY-NC-SA 3.0: pode ser copiada e adaptada para fins não comerciais, com citação da fonte e mantendo a mesma licença. Texto da licença: https://creativecommons.org/licenses/by-nc-sa/3.0/deed.pt-br.

Click to listen highlighted text!