Algoritmo é uma sequência finita de passos para resolver um problema ou realizar uma tarefa. Cada passo precisa ser claro o bastante para ser executado sem interpretação, os passos precisam estar em ordem e a sequência precisa terminar. É isso — não tem nada de computador na definição, e é por isso que você já executa dezenas de algoritmos por dia sem chamar eles assim.
A palavra assusta porque soa técnica, mas o conceito é anterior à informática em vários séculos. Uma receita é um algoritmo. O manual de troca de pneu que vem no porta-luvas é um algoritmo. As instruções da máquina de lavar são um algoritmo. Quando você aprende a programar, o que você aprende de fato é a escrever esses passos com uma precisão que uma máquina consiga seguir.
Neste guia a gente vai partir de três algoritmos que você já conhece, transformar um deles em passo a passo escrito, depois em pseudocódigo e por fim em código PHP de verdade — o mesmo algoritmo, três roupas diferentes.
Três algoritmos que você executa sem perceber
Fazer brigadeiro. Misture o leite condensado, o chocolate em pó e a manteiga na panela. Leve ao fogo baixo. Mexa sem parar até desgrudar do fundo. Desligue. Espere esfriar. Enrole. Passe no granulado. Repare que a ordem manda: enrolar antes de cozinhar não dá brigadeiro, dá sujeira.
Sacar dinheiro no caixa eletrônico. Insira o cartão. Digite a senha. Escolha "saque". Informe o valor. Confirme. Retire o cartão. Retire o dinheiro. Aqui aparece uma coisa nova: o caixa toma decisões no meio do caminho. Se a senha estiver errada, ele volta para o passo da senha. Se o saldo não cobrir, ele nem chega a liberar a cédula. Decisão dentro do algoritmo é o que a gente vai chamar de condição quando escrever código.
Trocar um pneu. Estacione em lugar plano. Puxe o freio de mão. Pegue o macaco e a chave de roda no porta-malas. Solte os parafusos meia volta com o carro ainda no chão. Levante o carro com o macaco. Retire os parafusos. Troque a roda. Aperte os parafusos à mão. Abaixe o carro. Aperte de vez. Esse aqui é o melhor exemplo de por que a ordem importa: quem levanta o carro antes de afrouxar os parafusos fica rodando a roda no ar e não sai do lugar.
Do português para o pseudocódigo
Vamos pegar um problema pequeno e levar ele até o fim: calcular a média de duas notas e dizer se o aluno passou. Primeiro, em português puro:
- Pegue a primeira nota.
- Pegue a segunda nota.
- Some as duas.
- Divida o resultado por 2. Esse é a média.
- Se a média for 6 ou mais, o aluno está aprovado.
- Se não for, o aluno está de recuperação.
Agora o mesmo algoritmo em pseudocódigo — que é só o passo a passo escrito num formato mais enxuto, com nomes para os valores. Pseudocódigo não roda em lugar nenhum; ele existe para você pensar sem se preocupar com vírgula e ponto e vírgula:
notaUm recebe 7,5
notaDois recebe 5,0
media recebe (notaUm + notaDois) / 2
escreva "Média: ", media
se media >= 6 entao
escreva "Aprovado"
senao
escreva "Recuperação"
fim se
Já dá para conferir a lógica só de ler: 7,5 mais 5,0 dá 12,5; dividido por 2 dá 6,25; 6,25 é maior que 6, então sai "Aprovado". Note que você validou o algoritmo sem ligar computador nenhum.
O mesmo algoritmo em PHP
A tradução para uma linguagem real muda a aparência, não o raciocínio:
<?php
$notaUm = 7.5;
$notaDois = 5.0;
$media = ($notaUm + $notaDois) / 2;
echo "Média: " . $media . "\n";
if ($media >= 6) {
echo "Aprovado\n";
} else {
echo "Recuperação\n";
}
Saída:
Média: 6.25
Aprovado
Três detalhes que mudaram na tradução e que costumam confundir quem vem do pseudocódigo. O separador decimal vira ponto: escreve-se 7.5, não 7,5. Toda instrução termina em ponto e vírgula. E o "então/fim se" vira um bloco delimitado por chaves — a chave que abre inicia o bloco e o fechamento, a chave que fecha, encerra ele. Fora isso, é o mesmo algoritmo que você escreveu em português seis parágrafos atrás.
O que faz um algoritmo ser um algoritmo
Nem toda lista de instruções passa no teste. Um algoritmo de verdade tem quatro características, e cada uma delas corresponde a um erro clássico de iniciante:
- A ordem importa. Trocar dois passos de lugar muda o resultado ou quebra tudo. "Enxágue o cabelo. Aplique o xampu." é uma lista de instruções válida e um algoritmo ruim.
- Precisa terminar. Um algoritmo tem fim previsível. "Continue mexendo" sem dizer até quando é um problema — no código, isso vira o famoso laço infinito, o programa que fica rodando para sempre e trava a máquina.
- Não pode ser ambíguo. "Coloque sal a gosto" funciona com uma pessoa e não funciona com uma máquina. Cada passo tem que ter uma leitura só.
- Precisa ser executável. "Adivinhe a senha do cliente" não é um passo; é um desejo. Todo passo precisa ser algo que quem executa consegue de fato fazer.
Quando um programa seu der resultado errado, volte nessas quatro. Na esmagadora maioria das vezes o erro não está na linguagem: está num passo fora de ordem, num passo faltando ou numa condição que você escreveu de um jeito e entendeu de outro.
Algoritmo, programa e linguagem não são a mesma coisa
Essa confusão atrapalha muito no começo, e a diferença é simples:
| Termo | O que é | Exemplo |
|---|---|---|
| Algoritmo | A ideia: a sequência de passos que resolve o problema | Somar duas notas e dividir por dois |
| Linguagem | O idioma em que você escreve os passos para a máquina | PHP, Python, JavaScript |
| Programa | O algoritmo já escrito numa linguagem e pronto para rodar | O arquivo com o código da média |
Um algoritmo pode virar programa em qualquer linguagem. É por isso que quem já programa em uma linguagem aprende a segunda muito mais rápido: os algoritmos vão junto, só o idioma muda. E é por isso também que copiar código pronto sem entender o algoritmo por trás não faz ninguém aprender — você fica com o programa e continua sem a ideia.
Por que todo curso começa por aqui
Porque algoritmo é a única parte do curso que serve para tudo o que vem depois. Banco de dados, site, aplicativo, automação de planilha: em todos os casos, o que você faz é descrever passos para uma máquina executar. Quem tem esse músculo forte aprende ferramenta nova lendo documentação; quem não tem fica dependendo de tutorial para sempre.
Na prática, o treino é sempre o mesmo: pegar um problema, escrever os passos, rodar, errar, ajustar e rodar de novo. É o ciclo que a gente usa em sala — o professor posta o exercício, o aluno resolve, envia, recebe a devolutiva e refaz quando precisa. No Aulab, esse ciclo é o coração do produto: o exercício pode ser resolvido num editor de PHP que roda no navegador, sem instalar nada, e o professor devolve com comentário em vez de simplesmente dar nota. Errar e refazer com alguém olhando é o que transforma passo a passo em raciocínio de programador.
Se você chegou aqui procurando o começo do caminho, dois próximos passos fazem sentido: entender o que é pensamento computacional, que é a habilidade maior da qual algoritmo é uma das partes, e depois seguir o roteiro de por onde começar em lógica de programação.
Perguntas frequentes
O que é um algoritmo em palavras simples?
É uma sequência finita de passos, em ordem, que resolve um problema ou realiza uma tarefa. Uma receita de bolo e o manual de troca de pneu são algoritmos: cada passo é claro, a ordem importa e existe um fim.
Qual a diferença entre algoritmo e programa?
O algoritmo é a ideia, a sequência de passos. O programa é esse algoritmo já escrito numa linguagem de programação e pronto para rodar no computador. O mesmo algoritmo pode virar programa em PHP, Python ou qualquer outra linguagem.
Preciso de computador para aprender algoritmos?
Não para começar. Os primeiros exercícios funcionam melhor no papel: escrever o passo a passo de uma tarefa cotidiana e pedir para alguém seguir ao pé da letra revela na hora os passos fora de ordem e os passos ambíguos. O computador entra quando você traduz esse passo a passo para uma linguagem.
O que é pseudocódigo?
É o algoritmo escrito num formato enxuto, com nomes para os valores, mas sem as regras rígidas de uma linguagem de verdade. Ele não roda em lugar nenhum; serve para você raciocinar sobre a lógica sem se preocupar com ponto e vírgula e sintaxe.
Todo algoritmo precisa terminar?
Sim. Uma das características que definem algoritmo é ter fim previsível. Quando um programa não termina, normalmente é porque uma repetição ficou sem condição de parada — o chamado laço infinito, que fica rodando para sempre.