Algoritmo é uma sequência finita de passos bem definidos que resolve um problema. Não precisa ser sobre computadores: quando você segue uma receita de bolo ou o roteiro para trocar um pneu, está executando um algoritmo. A palavra assusta, mas a ideia é simples e você já usa o tempo todo. Este guia explica do zero o que é um algoritmo, as suas propriedades, como escrever um e por que ele vem antes do código. Para aprender a montar algoritmos na prática, com exercícios no navegador e certificado, use o curso de Lógica de Programação, gratuito.
Resposta rápida
- Algoritmo é uma sequência finita de passos bem definidos que resolve um problema.
- Todo algoritmo tem entrada, passos claros, um fim e uma saída.
- Você o descreve em linguagem natural, pseudocódigo ou fluxograma.
- Três blocos montam quase tudo: sequência, decisão e repetição.
Um exemplo que você já conhece
Pense na receita de um bolo. Ela lista os ingredientes (a entrada) e diz o que fazer, passo a passo: bater os ovos, misturar a farinha, levar ao forno por quarenta minutos. Você segue a ordem, cada passo é claro o bastante para não ficar em dúvida, e em algum momento a receita termina. No fim, sai o bolo (a saída). Trocar um pneu é igual: erguer o carro, soltar os parafusos, tirar o pneu furado, colocar o estepe, apertar os parafusos, abaixar o carro. Um algoritmo é exatamente isso, só que pensado para resolver um problema qualquer, muitas vezes com a ajuda de um computador.
As propriedades de um algoritmo
Nem toda lista de instruções é um bom algoritmo. Para valer o nome, ele precisa respeitar algumas propriedades. Elas parecem óbvias na receita, mas são fáceis de esquecer quando o problema fica complicado.
- Entrada. Recebe zero ou mais dados para trabalhar. Na receita, são os ingredientes; num algoritmo de média, são as notas.
- Passos bem definidos. Cada instrução é clara e sem ambiguidade. "Bata um pouco" é vago; "bata por dois minutos" é definido. O computador não adivinha o que você quis dizer.
- Finitude. O algoritmo termina depois de um número finito de passos. Se ele nunca acaba, virou um problema, não uma solução.
- Saída. Produz ao menos um resultado. Sem saída, não dá para saber se o algoritmo fez alguma coisa útil.
Como se representa um algoritmo
Antes de virar código, o algoritmo mora numa forma mais solta. Existem três jeitos comuns de escrevê-lo, e cada um serve a um momento.
| Forma | Como é e quando usar |
|---|---|
| Linguagem natural | Os passos escritos em português comum. Boa para explicar a ideia para alguém, mas pode ficar ambígua. |
| Pseudocódigo | Uma escrita quase de programa, com "se", "enquanto" e "leia", mas sem regras rígidas de linguagem. Ótima para organizar a lógica antes de codar. |
| Fluxograma | Um desenho com caixas e setas. Ajuda a enxergar decisões e laços, útil para explicar visualmente. |
Os três blocos que montam quase tudo
Por mais complexo que pareça, quase todo algoritmo se resume a combinar três blocos de construção. Aprender a encaixá-los é a base da lógica de programação.
- Sequência. Executar um passo depois do outro, na ordem em que aparecem. É o bloco mais simples: leia, calcule, mostre.
- Decisão. Escolher um caminho conforme uma condição, o "se isto, então aquilo; senão, outra coisa". É o que dá inteligência ao algoritmo: reagir de forma diferente conforme os dados.
- Repetição. Repetir passos enquanto uma condição valer, os laços. Em vez de escrever cem vezes a mesma coisa, você manda repetir cem vezes.
Um algoritmo passo a passo: a média de três notas
Vamos montar um algoritmo que lê três notas, calcula a média e diz se o aluno passou ou não. Ele usa os três blocos: sequência para ler e calcular, decisão para o veredito. Em pseudocódigo fica assim:
Algoritmo MediaDeNotas
leia nota1
leia nota2
leia nota3
media <- (nota1 + nota2 + nota3) / 3
escreva "Media:", media
se media >= 6 entao
escreva "Aprovado"
senao
escreva "Reprovado"
fim se
FimRepare que os passos estão em ordem (sequência), que a média é calculada uma vez e guardada numa variável, e que a última parte escolhe entre "Aprovado" e "Reprovado" conforme a condição (decisão). Esse pseudocódigo não roda em nenhum computador ainda, mas descreve a lógica sem depender de linguagem. Traduzir isso para Python, JavaScript ou qualquer outra linguagem é quase mecânico depois que a lógica está clara.
Um problema, vários algoritmos: a ideia de eficiência
O mesmo problema costuma ter mais de uma solução, e nem toda solução gasta o mesmo trabalho. Suponha que você precise achar um nome numa lista. Se a lista está embaralhada, não há jeito: você olha item por item até achar, e no pior caso percorre a lista inteira. Se a lista está em ordem alfabética, dá para abrir no meio, ver se o nome procurado vem antes ou depois e descartar metade da lista de uma vez, repetindo até sobrar um item. Essa segunda ideia é a busca binária.
Com dez nomes a diferença mal aparece. Com um milhão, a busca item por item pode olhar um milhão de vezes, enquanto a busca binária resolve em cerca de vinte passos. É por isso que a eficiência importa: ela mede quantos passos e quanta memória o algoritmo gasta conforme os dados crescem. Escolher um algoritmo mais eficiente é o que faz um programa responder rápido em vez de travar. No começo, não se preocupe em otimizar tudo; primeiro faça funcionar, depois aprenda a comparar soluções.
Do algoritmo ao programa
Algoritmo e programa não são a mesma coisa. O algoritmo é a solução pensada, os passos que você rascunhou no papel ou no pseudocódigo. O programa é esse algoritmo escrito numa linguagem que o computador executa. Um único algoritmo pode virar programa em Python, em JavaScript ou em C, com pequenas diferenças de escrita, mas a mesma lógica por baixo. Por isso a ordem certa de aprender é lógica primeiro, linguagem depois: quem entende de algoritmo troca de linguagem sem sofrer, porque o raciocínio é o mesmo.
O curso de Lógica de Programação ensina a pensar em passos, usar decisão e repetição e montar pseudocódigo, tudo no navegador e sem custo. Quando quiser transformar esses algoritmos em código que roda de verdade, siga para o curso de Python do zero. Primeiro a lógica, depois a linguagem.
Erros comuns de quem está começando
- Pular a lógica e ir direto para a linguagem. Sem entender o algoritmo, o código vira tentativa e erro.
- Escrever passos vagos. "Verifique se está tudo certo" não é um passo definido; diga exatamente o que verificar.
- Esquecer o fim. Um laço sem condição de parada roda para sempre e trava o programa.
- Achar que existe só uma resposta certa. Quase sempre há vários algoritmos para o mesmo problema; o bom é aquele que resolve e é fácil de entender.
Fontes
- Ministério da Ciência, Tecnologia e Inovação: referência institucional sobre educação e pensamento computacional no Brasil.
- MDN Web Docs: aprender desenvolvimento: material de introdução à lógica e à programação, mantido pela Mozilla.
- Documentação do Python: controle de fluxo: mostra decisão e repetição em código, o passo seguinte ao pseudocódigo.
Conclusão
Um algoritmo é uma sequência finita de passos bem definidos que resolve um problema, com entrada, passos claros, fim e saída. Você o rascunha em linguagem natural, pseudocódigo ou fluxograma, e o monta com três blocos: sequência, decisão e repetição. Depois traduz para uma linguagem e ele vira um programa. A melhor forma de fixar é praticar montando os seus próprios algoritmos. Comece pelo curso de Lógica de Programação, transforme o que aprender em código no curso de Python do zero e conheça todos os cursos gratuitos do ValorFinal.