01 - O que é algoritmo
[1]Copyright © 2026 Alyce Suza.
1 - O que é Algoritmo?
Pensamento Computacional, Fluxogramas e Algoritmo Narrativo
1.1 O que é um Computador?
Um computador é uma máquina que executa instruções. Apenas isso. Ele não pensa, não sente, não improvisa e não tem bom senso. Se você não disser exatamente o que ele deve fazer, ele não vai adivinhar.
Você não pode pedir "faça um bolo" - ele não sabe o que é bolo.
Você precisa explicar cada passo: pegue os ingredientes, meça as quantidades, misture nesta ordem...
Isso é programar: dar instruções precisas para quem não sabe nada além do que você explica.
1.2 Definição Formal de Algoritmo
- Finita: tem começo e fim. Não pode durar para sempre.
- Ordenada: a sequência importa. Trocar a ordem muda o resultado.
- Sem ambiguidade: cada instrução tem um único significado possível.
- Resolve um problema: sempre produz um resultado definido.
— Cormen, T. H. et al. Introduction to Algorithms. 3. ed. MIT Press, 2009.
1.3 Algoritmos no Cotidiano
Você usa algoritmos todos os dias, mesmo sem perceber. Veja alguns exemplos:
Exemplo 1 - Algoritmo para fazer café
- Vá até a cozinha.
- Pegue a chaleira e encha com água filtrada.
- Ligue a chaleira na tomada e acione o botão.
- Aguarde a água ferver (indicador luminoso apagar).
- Pegue uma xícara limpa e posicione o suporte de filtro.
- Encaixe um filtro de papel no suporte.
- Coloque uma colher de sopa de café moído no filtro.
- Despeje lentamente a água quente sobre o café.
- Aguarde o café coar completamente (cerca de 2 minutos).
- Retire o suporte com o filtro usado.
- Adoce conforme preferência (0 colheres = sem açúcar; 1 colher = pouco doce; 2 = médio).
- Beba enquanto quente.
Computadores não têm "preferências" - precisam de valores exatos.
Versão precisa: "Se gosta de café doce, adicione 2 colheres de açúcar. Caso contrário, não adicione."
Esta reformulação já usa uma estrutura de DECISÃO - conceito que você aprenderá no Capítulo 6.
Exemplo 2 - Algoritmo para verificar se um número é par
- Início.
- Receber o número do usuário.
- Dividir o número por 2 e verificar o RESTO da divisão.
- Se o RESTO for zero: o número é par.
- Se o RESTO for diferente de zero: o número é ímpar.
- Exibir o resultado.
- Fim.
Note como o Exemplo 2 é mais preciso que o Exemplo 1. "Verificar o RESTO da divisão" é uma instrução exata, não ambígua.
Exemplo 3 - Algoritmo para calcular média de duas notas
- Início.
- Pedir ao usuário a primeira nota e armazenar como
Nota1. - Pedir ao usuário a segunda nota e armazenar como
Nota2. - Calcular:
Media = (Nota1 + Nota2) / 2. - Exibir: "A média é: [valor calculado]"
- Se
Mediafor maior ou igual a 6: exibir "Aprovado". - Caso contrário: exibir "Reprovado".
- Fim.
1.4 Pensamento Computacional - os 4 Pilares
O Pensamento Computacional, formalizado por Wing (2006), é a habilidade de resolver problemas da forma que um computador processa. Não é pensar como uma máquina — é aprender a decompor e estruturar soluções.
| Pilar | Definição | Exemplo |
|---|---|---|
| Decomposição | Dividir o problema em partes menores. | Pizza = massa + molho + montagem + assar |
| Reconhecimento | Identificar padrões e repetições. | Somar N números é sempre o mesmo processo. |
| Abstração | Focar no essencial, ignorar o irrelevante. | Área do quarto: irrelevante a cor da parede. |
| Algoritmo | Criar os passos exatos da solução. | Com os 3 pilares anteriores, montar o procedimento. |
1.5 Fluxogramas - Algoritmos Visuais
Um fluxograma é a representação gráfica de um algoritmo. Em vez de texto, usamos formas geométricas e setas. É especialmente útil para visualizar decisões e repetições antes de escrever código.
| Forma | Significado |
|---|---|
| Oval (arredondado) | INÍCIO e FIM do programa - sempre presente. |
| Retângulo | Ação/processamento: calcular, armazenar, exibir. |
| Losango | DECISÃO: pergunta de sim ou não. Tem duas saídas. |
| Paralelogramo | ENTRADA (leia) ou SAÍDA (escreva) de dados. |
| Seta | FLUXO: direção da execução entre os elementos. |
- SEMPRE começar com INÍCIO e terminar com FIM.
- O losango (decisão) SEMPRE tem DUAS saídas: SIM e NÃO.
- As setas nunca ficam soltas - cada elemento se conecta ao próximo.
- Não existe fluxo sem término - todo caminho leva ao FIM.
1.6 Algoritmo Narrativo - Escrevendo antes de Codificar
O algoritmo narrativo é escrito em linguagem natural, como se você estivesse explicando para um colega. É o PRIMEIRO passo antes de qualquer código. Permite identificar lacunas lógicas antes de escrever uma única linha de programa.
Boas práticas para escrever algoritmos narrativos:
- Use verbos no imperativo: "Leia", "Calcule", "Exiba", "Verifique".
- Seja específico: "Leia a idade do usuário" é melhor que "Pega a idade".
- Numere os passos para deixar a sequência clara.
- Explicite todas as condições: "Se X, então Y; caso contrário, Z."
- Revise: consegue alguém que não conhece o problema seguir seus passos?
Exemplo 4 - Narrativo para verificar maioridade
- Início.
- Solicitar ao usuário: "Qual é a sua idade?"
- Receber e armazenar a idade informada.
- Verificar: a idade é maior ou igual a 18?
- Se SIM: exibir "Você é maior de idade."
- Se NÃO: exibir "Você é menor de idade."
- Fim.
Exemplo 5 - Narrativo para classificar nota escolar
- Início.
- Solicitar ao usuário a nota do aluno (valor de 0 a 10).
- Receber e armazenar a nota.
- Verificar: nota é maior ou igual a 9?
- Se SIM: exibir "Conceito: Excelente" e ir ao passo 9.
- Se NÃO: verificar se nota é maior ou igual a 7.
- Se SIM: exibir "Conceito: Bom" e ir ao passo 9.
- Se NÃO: verificar se nota é maior ou igual a 5.
- Se SIM: exibir "Conceito: Regular". Se NÃO: exibir "Conceito: Insuficiente".
- Fim.
1.7 Primeiro Contato com o Portugol.dev
Acesse https://portugol.dev. Você verá um editor (esquerda) e um console de saída (direita). Todo programa em Portugol tem a seguinte estrutura obrigatória:
// Comentário: o computador ignora tudo após duas barras
// Use para documentar seu código
programa
{
funcao inicio()
{
// Todo o seu código fica AQUI, dentro destas chaves
}
}
programa- palavra que inicia o programa.{ }- delimitam blocos. Todo o conteúdo do bloco fica entre as chaves.funcao inicio()- ponto de partida. A execução SEMPRE começa aqui.//- comentário. O computador ignora, mas ajuda humanos a entender.- Indentação (espaços) - não obrigatória, mas ESSENCIAL para legibilidade.
Exemplo: Olá, Mundo!
programa
{
funcao inicio()
{
escreva("Ola, Mundo!")
}
}
Execute com F5 ou clicando em Executar. A saída Ola, Mundo! aparecerá no console.
Exemplo: exibindo múltiplas linhas
programa
{
funcao inicio()
{
escreva("Linha 1\n")
escreva("Linha 2\n")
escreva("Linha 3\n")
}
}
O \n dentro das aspas é um caractere de nova linha - faz o cursor pular para a próxima linha.
Sua obra "Kitab al-mukhtasar fi hisab al-jabr wal-muqabala" introduziu no ocidente o conceito de procedimento sistemático.
A formalização matemática veio com Alan Turing (1936): "On Computable Numbers" demonstrou que qualquer algoritmo pode ser executado por uma máquina abstrata finita.
Hoje, tudo que um computador faz - de jogos a inteligência artificial - é, em essência, um algoritmo.
1.8 Exercícios do Capítulo 1
O gabarito está reunido ao final do livro, na seção GABARITO.
Anote suas tentativas - comparar seu raciocínio com a solução é fundamental para aprender.
Considere: ferramentas necessárias, segurança, sequência de remoção e instalação.
Pense em tudo que pode dar errado se a ordem for trocada.
Dica: Pense em fases: segurança → ferramentas → remoção → instalação → finalização.
Dados: valor total da compra e valor entregue pelo cliente.
Considere: o que acontece se o valor entregue for menor que o total?
Dica: O troco só pode existir quando o valor pago é MAIOR que o total.
- Linha 1: Seu nome completo
- Linha 2: Sua cidade e estado
- Linha 3: Seu curso
Use o \n para quebrar as linhas.
Dica: Troque apenas o texto dentro das aspas no comando escreva().
Copyright © 2026 Alyce Suza. Todos os direitos reservados nos termos da Lei 9.610/98. O conteúdo publicado no site https://wiki.suzacybersecurity.com/ é protegido pelas diretrizes brasileiras de propriedade intelectual e a sua autoria é reconhecida desde o momento da criação técnica. O compartilhamento, a reprodução e a distribuição deste material são permitidos e incentivados apenas para finalidades educacionais, acadêmicas ou de consulta técnica, sendo estritamente vedado qualquer tipo de uso comercial. Para que a replicação seja validada e legal, você deve obrigatoriamente atribuir os devidos créditos a Alyce Suza e fornecer um link direto e acessível para a publicação original. A utilização deste material para obter lucro, monetização, venda de materiais ou qualquer vantagem financeira constitui violação de direitos autorais e está sujeita às sanções legais cabíveis, assim como alterações que modifiquem o sentido original das explicações sobre segurança da informação. Para eventuais dúvidas sobre permissões de uso, parcerias ou para reportar replicações indevidas, envie um e-mail para alycesuza@gmail.com. ↩︎