Algoritmos e lógica de programação são a base de qualquer código. Lógica de programação é a forma de organizar o raciocínio para resolver um problema em passos claros. Algoritmo é essa solução escrita como uma sequência finita e bem definida de instruções. Linguagens como Python, JavaScript ou Java são só a forma de expressar esse raciocínio para o computador.
Quem aprende primeiro a pensar em algoritmos troca de linguagem com muito mais facilidade. Neste guia você vai ver os conceitos essenciais (variáveis, condições, repetições, funções), exemplos em pseudocódigo e Python, as estruturas de dados mais usadas e um roteiro de estudo prático.
O que é um algoritmo, com um exemplo simples
Uma receita de bolo é o exemplo clássico: ingredientes (entradas), modo de preparo (processamento) e o bolo pronto (saída). Um bom algoritmo tem três características:
- Finitude: termina depois de um número limitado de passos.
- Definição: cada passo é claro, sem ambiguidade.
- Efetividade: cada passo pode realmente ser executado.
Exemplo em pseudocódigo para descobrir se um número é par:
INÍCIO
LEIA numero
SE numero MOD 2 = 0 ENTÃO
ESCREVA "par"
SENÃO
ESCREVA "ímpar"
FIM SE
FIM
O operador MOD devolve o resto da divisão, um conceito explicado em detalhe no texto sobre o algoritmo da divisão.
Os pilares da lógica de programação
Variáveis e tipos de dados
Variáveis são nomes que guardam valores. Os tipos mais comuns são inteiro, número real, texto (string) e lógico (verdadeiro ou falso). Saber o tipo evita erros como somar texto com número.
Operadores
Aritméticos (+, −, *, /), relacionais (>, <, ==) e lógicos (E, OU, NÃO). É com eles que você monta as condições.
Estruturas condicionais
Permitem que o programa tome decisões: SE isto, faça aquilo; SENÃO, faça outra coisa.
Estruturas de repetição
Laços como PARA e ENQUANTO executam um bloco várias vezes. São essenciais para percorrer listas e processar dados em volume.
Funções
Blocos reutilizáveis que recebem parâmetros e devolvem um resultado. Ajudam a dividir problemas grandes em partes menores.
Do pseudocódigo ao código real
O mesmo raciocínio pode ser escrito em qualquer linguagem. Veja um algoritmo que calcula a média de uma lista de notas e informa a situação do aluno, em Python:
def situacao(notas):
media = sum(notas) / len(notas)
if media >= 7:
return media, "aprovado"
elif media >= 5:
return media, "recuperação"
return media, "reprovado"
print(situacao([8, 6.5, 7])) # (7.166..., 'aprovado')
Repare nos pilares: variável (media), função (situacao), condição (if/elif) e uma repetição implícita dentro de sum.
Formas de representar um algoritmo
| Forma | Como é | Vantagem | Limitação |
|---|---|---|---|
| Descrição narrativa | Passos em linguagem comum | Fácil de entender | Pode ser ambígua |
| Fluxograma | Diagrama com símbolos padronizados | Visual, mostra o fluxo | Fica confuso em problemas grandes |
| Pseudocódigo (Portugol) | Estrutura de código em português | Próximo da programação real | Não executa diretamente, salvo em ferramentas específicas |
| Linguagem de programação | Código em Python, JavaScript etc. | Executável | Exige conhecer a sintaxe |
Técnicas que todo iniciante deve conhecer
- Decomposição: quebrar o problema em partes menores e resolvê-las separadamente.
- Reconhecimento de padrões: perceber que um problema novo se parece com outro já resolvido.
- Abstração: ignorar detalhes irrelevantes e focar no essencial.
- Teste de mesa: executar o algoritmo no papel, linha por linha, anotando o valor das variáveis.
- Recursão: resolver um problema chamando a própria função com uma versão menor dele. Veja o guia sobre algoritmo recursivo.
Complexidade, sem assustar
Dois algoritmos podem resolver o mesmo problema com eficiências muito diferentes. Procurar um nome em uma lista desordenada exige olhar item por item. Em uma lista ordenada, a busca binária descarta metade das opções a cada passo. Essa noção, chamada de complexidade, é o próximo degrau depois do básico.
def busca_binaria(lista, alvo):
ini, fim = 0, len(lista) - 1
while ini <= fim:
meio = (ini + fim) // 2
if lista[meio] == alvo:
return meio
if lista[meio] < alvo:
ini = meio + 1
else:
fim = meio - 1
return -1
Estruturas de dados básicas
- Vetores e listas: sequência de elementos acessados por índice.
- Matrizes: tabelas de linhas e colunas.
- Pilhas: o último a entrar é o primeiro a sair.
- Filas: o primeiro a entrar é o primeiro a sair.
- Dicionários (mapas): pares chave e valor, com busca rápida.
Escolher a estrutura certa costuma simplificar o algoritmo mais do que qualquer truque de código.
Como estudar algoritmos e lógica de programação
- Comece com pseudocódigo ou Portugol para focar no raciocínio.
- Passe para uma linguagem simples, como Python, assim que os conceitos fizerem sentido.
- Resolva exercícios curtos todos os dias em vez de maratonas esporádicas.
- Faça teste de mesa sempre que o resultado não for o esperado.
- Leia código de outras pessoas e tente reescrevê-lo de outro jeito.
- Monte pequenos projetos: calculadora, conversor de unidades, lista de tarefas.
Com a base firme, fica mais fácil avançar para web (veja o que é HTML) ou para áreas como inteligência artificial.
Erros de lógica mais comuns
- Laço infinito: a condição de parada nunca se torna falsa porque a variável de controle não muda.
- Erro de limite: percorrer uma posição a mais ou a menos em listas, conhecido como “off by one”.
- Condição invertida: usar maior onde deveria ser menor, ou E onde deveria ser OU.
- Variável não inicializada: somar em um acumulador que não começou com zero.
O teste de mesa pega a maior parte desses problemas antes mesmo de rodar o código.
Uma dica final de estudo: mantenha um caderno ou repositório com os exercícios resolvidos. Revisar soluções antigas algumas semanas depois mostra quanto o seu raciocínio evoluiu e ajuda a fixar os padrões que mais se repetem.
Perguntas frequentes
Preciso ser bom em matemática para aprender lógica de programação?
Não é necessário dominar matemática avançada. Raciocínio organizado e prática contam mais no início. Algumas áreas, como ciência de dados, exigem mais matemática depois.
Qual linguagem é melhor para começar?
Python é muito usada por ter sintaxe limpa. Portugol é útil nas primeiras semanas para quem quer focar só na lógica, em português.
Quanto tempo leva para aprender a base?
Com estudo regular, algumas semanas bastam para dominar variáveis, condições e laços. Estruturas de dados e complexidade levam mais tempo.
O que é teste de mesa?
É simular a execução do algoritmo no papel, anotando o valor de cada variável a cada passo. Ajuda a encontrar erros de lógica sem depender do computador.
Algoritmo e programa são a mesma coisa?
Não. O algoritmo é a solução em passos; o programa é esse algoritmo escrito em uma linguagem que o computador executa.
O que levar dessa leitura
Algoritmos e lógica de programação são a fundação de qualquer carreira em tecnologia. Domine variáveis, condições, repetições e funções, pratique com teste de mesa e escreva código todos os dias. A linguagem muda com o tempo; o raciocínio fica.

