ALGORITMOS – AULA 02 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 |
| Aula anterior | Aula 01 – O que é um programa |
| Próxima aula | Aula 03 – Diagrama de blocos I: símbolos e fluxo sequencial |
1 Objetivos da aula
- Definir algoritmo e diferenciá-lo de programa.
- Reconhecer as propriedades de um algoritmo: entrada, saída, finitude, definição, efetividade e correção.
- Analisar algoritmos do cotidiano, encontrando ambiguidades, passos faltantes e erros de ordem.
- Escrever um algoritmo simples em passos curtos e numerados.
2 Roteiro da aula
| Tempo | Momento | Atividade |
|---|---|---|
| 0–5 min | Retomada | Comparação, em duplas, das instruções para trocar uma lâmpada (tarefa da Aula 01). |
| 5–20 min | Exposição dialogada | Conceito de algoritmo, algoritmo e programa, propriedades de um algoritmo. |
| 20–32 min | Atividade em duplas | Revisão do algoritmo da lâmpada com base nas propriedades. |
| 32–41 min | Exemplo computacional | Algoritmo da média: entradas, saídas e passos elementares. |
| 41–45 min | Síntese e ponte | Resumo da aula e apresentação da tarefa para a Aula 03. |
3 Conhecimentos prévios
Aula 01: o que é um programa, o modelo entrada, processamento e saída e a atividade do desenho por instruções, que mostrou por que as instruções para um computador precisam ser precisas.
4 Conteúdo
4.1 Retomando a tarefa: trocar uma lâmpada
Na Aula 01 você escreveu instruções para trocar uma lâmpada queimada. Compare a sua resposta com a de um colega. É provável que vocês encontrem problemas como estes:
- Ambiguidade: “pegue uma lâmpada” (qualquer uma? de que potência e tipo de rosca?).
- Passo faltando: ninguém mandou desligar o interruptor, e esse passo é uma questão de segurança.
- Ordem errada: “coloque a lâmpada nova” antes de “retire a lâmpada queimada”.
- Fim indefinido: as instruções não dizem quando a tarefa termina (e se a lâmpada nova também não acender?).
Esses problemas não são detalhes. Uma pessoa resolve sozinha boa parte deles, porque tem bom senso. Um computador não tem: ele faz exatamente o que está escrito. Por isso precisamos de uma ideia mais rigorosa de “passo a passo”: o algoritmo.
4.2 O que é um algoritmo
Definição
Algoritmo é uma sequência finita de passos bem definidos que, executados na ordem indicada, resolvem um problema ou realizam uma tarefa.
Repare em três partes da definição: sequência finita (os passos têm ordem e acabam), passos bem definidos (cada passo tem um único significado e pode ser executado) e resolve um problema (o algoritmo existe para chegar a um resultado).
Algoritmos não são exclusivos da computação. Uma receita de bolo, as instruções de montagem de um móvel e o procedimento para sacar dinheiro num caixa eletrônico são algoritmos escritos para pessoas. A palavra vem do nome do matemático persa al-Khwarizmi (século IX), cujos textos sobre cálculo com algarismos indo-arábicos se espalharam pela Europa.
Algoritmo e programa
Algoritmo e programa estão ligados, mas não são a mesma coisa. O algoritmo é a ideia da solução: os passos, independentemente da linguagem em que forem escritos. O programa é um algoritmo escrito em uma linguagem de programação, pronto para o computador executar. Um mesmo algoritmo pode virar programas em Python, Java ou C, assim como uma receita pode ser escrita em português ou em inglês sem mudar o bolo.
| Aspecto | Algoritmo | Programa |
|---|---|---|
| O que é | A solução, em passos | A solução escrita numa linguagem de programação |
| Para quem | Pessoas (e, depois, programadores) | O computador |
| Forma | Linguagem natural, diagrama de blocos, pseudocódigo | Código em Python, Java, C etc. |
| Depende da linguagem? | Não | Sim |
4.3 Propriedades de um algoritmo
Para que uma sequência de passos seja um algoritmo de verdade, e não apenas uma lista de sugestões, ela precisa ter as propriedades da tabela abaixo. Elas aparecem na literatura com nomes um pouco diferentes. A tabela segue Souza et al. (2019, seção 3.3), separando em duas propriedades (definição e efetividade) a exigência de passos elementares e sem ambiguidade.
| Propriedade | O que significa | Exemplo de falha |
|---|---|---|
| Entrada | Recebe zero, um ou mais dados para trabalhar. | Calcular a média sem dizer de onde vêm as notas. |
| Saída | Produz pelo menos um resultado. | Calcular a média e não mostrar nem guardar o valor. |
| Finitude | Termina depois de um número finito de passos. | “Repita: mexa a panela” (sem condição de parada). |
| Definição | Cada passo tem um único significado, sem ambiguidade. | “Coloque um pouco de sal”. |
| Efetividade | Cada passo é simples o bastante para ser executado. | “Descubra a senha do cofre” como um único passo. |
| Correção | Para entradas válidas, produz o resultado esperado. | Média de 8 e 6 dando 11. |
Atenção
O que é um “passo simples” depende de quem executa. “Ferva a água” é simples para uma pessoa; para um computador, os passos precisam ser operações elementares como ler um valor, fazer uma conta, comparar dois valores ou mostrar um resultado.
4.4 Um algoritmo do cotidiano, revisado
Veja uma versão do algoritmo da lâmpada que respeita as propriedades. Note que ele usa duas ideias que você vai estudar em detalhe nas próximas aulas: decisão (“se”) e repetição (“enquanto”).
- Desligar o interruptor da lâmpada.
- Se a lâmpada estiver fora de alcance, posicionar uma escada firme sob ela.
- Esperar a lâmpada esfriar.
- Girar a lâmpada queimada no sentido anti-horário até soltá-la e retirá-la.
- Pegar uma lâmpada nova com o mesmo tipo de rosca e a mesma tensão (V).
- Rosquear a lâmpada nova no sentido horário até ficar firme.
- Ligar o interruptor.
- Enquanto a lâmpada não acender e houver lâmpada nova disponível: desligar o interruptor, repetir os passos 4 a 7 com outra lâmpada.
- Se a lâmpada acendeu, guardar a escada; senão, chamar um eletricista.
Entradas: a lâmpada nova e as condições do local. Saída: lâmpada funcionando (ou o aviso para chamar um eletricista). O passo 8 garante a finitude: a repetição para quando a lâmpada acende ou quando as lâmpadas acabam.
4.5 Um algoritmo computacional: a média da Aula 01
Agora um algoritmo pensado para o computador. Ele é a base do programa que o professor executou na Aula 01.
- Ler a primeira nota e guardá-la como nota1.
- Ler a segunda nota e guardá-la como nota2.
- Calcular media = (nota1 + nota2) / 2.
- Mostrar a media.
- Se media for maior ou igual a 7, mostrar “Aprovado”; senão, mostrar “Precisa de recuperação ou prova final”.
| Propriedade | Onde aparece no algoritmo da média |
|---|---|
| Entrada | Passos 1 e 2: duas notas. |
| Saída | Passos 4 e 5: a média e a situação. |
| Finitude | Cinco passos, sem repetição: sempre termina. |
| Definição | Cada passo tem um único significado; “maior ou igual a 7” não deixa dúvida. |
| Efetividade | Só há leitura, soma, divisão, comparação e exibição. |
| Correção | Com 8 e 6, a média é 7 e a situação é “Aprovado”, como esperado. |
4.6 Formas de representar um algoritmo
A linguagem natural é cômoda, mas ambígua. Por isso existem outras formas de representar algoritmos. Nesta disciplina você vai usar três:
| Forma | Como é | Quando usaremos |
|---|---|---|
| Linguagem natural | Passos numerados em português, como nesta aula. | Aulas 01 e 02, para pensar a solução. |
| Diagrama de blocos | Símbolos gráficos padronizados ligados por setas. | Aulas 03 a 05 e sempre que um conceito novo pedir. |
| Linguagem de programação | Código em Python, que o computador executa. | A partir da Aula 07. |
Existe ainda o pseudocódigo (ou português estruturado), uma escrita intermediária entre o português e uma linguagem de programação. Ele aparece em vários livros, mas nesta disciplina passaremos direto do diagrama de blocos para o Python.
5 Atividade em sala
Revisão do algoritmo da lâmpada (em duplas, 12 minutos).
- Juntem as duas versões que vocês trouxeram e escrevam uma única versão melhorada, em passos curtos e numerados.
- Troquem a folha com outra dupla.
- A outra dupla lê o algoritmo como se fosse um computador: marca cada passo ambíguo, cada passo faltante e qualquer ponto em que a execução poderia não terminar.
- Devolvam a folha e corrijam o que foi marcado.
Para discutir
- Qual propriedade foi violada com mais frequência na turma?
- Algum passo era simples para uma pessoa, mas impossível de executar sem mais detalhes?
- O algoritmo de vocês ficou correto para o caso em que a lâmpada nova também está queimada?
6 Síntese
- Algoritmo é uma sequência finita de passos bem definidos que resolve um problema; programa é um algoritmo escrito numa linguagem de programação.
- Um algoritmo tem entrada, saída, finitude, definição, efetividade e correção.
- A linguagem natural é ambígua; por isso usaremos diagramas de blocos e, depois, Python.
7 Exercícios de fixação
- Explique, com suas palavras, a diferença entre algoritmo e programa. Dê um exemplo.
- Indique a propriedade violada em cada caso: (a) “Misture os ingredientes até ficar bom.” (b) “Repita: some 1 ao contador.” (c) Um algoritmo calcula a área de um retângulo e não mostra o resultado. (d) “Resolva a equação.”
- Escreva um algoritmo, em passos numerados, para preparar um copo de suco a partir de suco concentrado e água.
- Escreva um algoritmo, em passos numerados, que leia dois números e mostre o maior deles. O que o seu algoritmo faz se os dois números forem iguais?
- Identifique as entradas e as saídas de um algoritmo que calcula o valor de uma conta de luz a partir do consumo do mês (em kWh) e do preço do kWh.
- Um mesmo algoritmo pode dar origem a programas diferentes? Justifique.
8 Para a próxima aula
Aula 03 – Diagrama de blocos I: símbolos e fluxo sequencial. Vamos representar algoritmos com símbolos gráficos padronizados, começando pelos que não têm decisão nem repetição.
- Tarefa: escreva, em passos numerados, um algoritmo que leia a quantidade comprada de um produto e o preço unitário e mostre o valor total da compra. Ele será transformado em diagrama de blocos na Aula 03.
- Leitura recomendada: SEVERANCE (2020), Python para Todos, capítulo 1, seções “Entendendo programação” e “O que é um programa?”. Download gratuito: http://do1.dr-chuck.com/pythonlearn/PT_br/pythonlearn.pdf.
- Leitura complementar: SOUZA et al. (2019), capítulo 3, seções 3.1 a 3.4; MANZANO e OLIVEIRA (2019), capítulo 2, seções 2.1 e 2.2; LOPES e GARCIA (2002), capítulo 1.
Referências
- LOPES, Anita; GARCIA, Guto. Introdução à programação: 500 algoritmos resolvidos. Rio de Janeiro: Elsevier, 2002.
- 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.
- 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.
