Pular para o conteúdo
Cursos

DevClub

LógicaFront-endBack-endMobile

IA Club

IA na prática
Estudar programaçãoEstudar IA

Guia completo

Lógica de programação: o guia para começar do zero

O que é lógica de programação, por que ela vem antes da linguagem e a ordem de estudo completa, da noção de algoritmo aos exercícios clássicos.

13 lições em trilha15 artigos no guiaAtualizado em agosto de 2026

Lógica de programação é a capacidade de transformar um problema em passos definidos, dados, decisões e repetições que produzem uma saída verificável. Ela vem antes da linguagem porque sintaxe escreve o plano; não decide qual plano resolve o problema.

Você não precisa esperar “entender tudo” para abrir o Node. O método deste guia alterna papel e execução: primeiro você prevê, depois o computador confere. A linguagem de apoio é JavaScript no Node v26.3.0, mas o raciocínio atravessa Python, Java, C#, bancos e ferramentas que você ainda vai conhecer.

Lógica é decidir passos, não decorar comandos

Considere calcular o troco de uma compra. Memorizar console.log não diz quais dados entram, em que unidade o dinheiro será guardado, o que acontece quando o pagamento é menor nem qual saída prova a resposta. A lógica responde essas perguntas antes da primeira chave.

Um algoritmo mínimo em pseudocódigo fica assim:

text
RECEBER total da compra em centavos
RECEBER valor pago em centavos
SE valor pago for menor que total
  INFORMAR pagamento insuficiente
SENÃO
  CALCULAR troco como valor pago menos total
  INFORMAR troco
FIM SE

O texto não pertence a uma linguagem executável. Mesmo assim, já pode ser revisado por outra pessoa: há duas entradas, uma decisão, uma conta e saída em ambos os caminhos. Esse é o trabalho da lógica.

Pense numa receita com um cozinheiro literal. Ingredientes são entradas, técnicas são processos e o prato é saída. A analogia ajuda a lembrar ordem e precisão. O limite é que programas mantêm estado, reagem a eventos e podem executar tarefas concorrentes; não tente explicar toda arquitetura como receita.

Comandos são vocabulário. Lógica é a estrutura da frase. Você consulta como escrever um laço, mas precisa decidir por que ele começa ali, quando termina e qual estado muda em cada volta. Quem treina somente sintaxe reconhece exemplos prontos e trava diante de uma variação pequena.

Por que a linguagem vem depois — sem deixar a execução para depois

“Depois” não significa passar meses só no papel. Significa resolver cada problema em duas etapas. Na primeira, escreva entrada, saída esperada e passos. Na segunda, traduza para uma linguagem e confronte a previsão com a execução.

Começar direto pelo código mistura dois tipos de erro. Você pode ter um plano correto com sintaxe inválida ou sintaxe perfeita com regra errada. Separar as etapas permite perguntar: o problema está no raciocínio ou na tradução?

Veja o algoritmo de troco traduzido sem alterar a regra:

js
function calcularTroco(total, pago) {
  if (pago < total) return 'pagamento insuficiente';
  return `troco: ${pago - total} centavos`;
}

console.log(calcularTroco(3740, 5000));
console.log(calcularTroco(3740, 3000));
troco: 1260 centavos pagamento insuficiente

O Node confirmou dois caminhos. Se o segundo não existisse no pseudocódigo, acrescentar um if copiado de tutorial não resolveria a decisão de produto. Primeiro vem a política; depois vem a forma de escrevê-la.

O extremo oposto também atrasa: desenhar por semanas sem executar permite que uma ideia vaga pareça correta. Resultado observável fecha o ciclo. Você prevê, roda, compara, explica a diferença e faz uma mudança controlada.

Quando quiser aprofundar sintaxe depois da base, a trilha de JavaScript assume esse papel. Não use falta de sintaxe como prova de falta de raciocínio nem use código que compila como prova de algoritmo correto.

As seis peças que reaparecem em qualquer linguagem

A primeira peça é sequência: instruções acontecem numa ordem. Trocar duas linhas pode mudar o resultado. A segunda é entrada e saída: programas recebem algo e tornam uma resposta observável. A terceira é estado, guardado por variáveis e estruturas.

A quarta é expressão: valores são combinados em contas e comparações. A quinta é decisão: uma condição escolhe caminhos. A sexta é repetição: um trecho roda para itens ou enquanto um estado permite. Funções entram como forma de decompor e dar nome a combinações dessas peças.

Esses elementos mudam de roupa entre linguagens. se vira if; enquanto vira while; vetor pode virar array, lista ou slice. O nome técnico varia um pouco, mas as perguntas permanecem:

  • Qual é a entrada e em que formato ela chega?
  • Qual saída prova que o problema foi resolvido?
  • Que estado muda entre o começo e o fim?
  • Quais condições dividem caminhos?
  • Qual repetição termina e por quê?
  • Que parte merece nome e teste isolado?

Um iniciante costuma tentar decorar todos os operadores antes de construir algo. Inverta a prioridade: aprenda o operador necessário para expressar uma regra que você já consegue dizer em português claro. A documentação passa a responder uma pergunta específica.

A ordem de estudo em quatro etapas

Esta sequência não é uma grade acadêmica universal. É um mapa didático próprio para reduzir dependências: cada etapa exige uma prova antes de liberar a próxima.

Etapa 1: sequência, entrada e estado

Comece escrevendo tarefas cotidianas sem ambiguidade. Depois mapeie entrada, processamento e saída. Dê nomes e tipos aos dados. A prova é pegar um problema curto — troco, conversão de temperatura ou área — e explicar cada estado sem abrir o código.

Aprenda a diferença entre texto e número cedo. Muitos “bugs de lógica” são entradas de formulário concatenadas porque continuam como string. Quando você consegue prever 2 + 2 e '2' + '2', a base de tipos está funcionando.

Etapa 2: expressões e decisões

Combine valores com operadores aritméticos e relacionais. Avalie expressões em partes e use parênteses para representar a regra. Depois construa se, senão se e senão com valores de borda.

A prova é uma política com ao menos três caminhos e uma tabela de testes abaixo, igual e acima de cada limite. Se você só testa o meio da faixa, ainda não provou a fronteira.

Tabela verdade entra quando duas ou três condições se combinam. Ela impede que a frase “membro e cupom ou primeira compra” fique dependente da intuição. Nomeie proposições, adicione parênteses e enumere combinações.

Etapa 3: repetição e coleções

Todo laço responde onde começa, até quando continua e como avança. Primeiro conte voltas. Depois acumule valores e percorra vetores. Matrizes entram quando linha e coluna têm significado real.

A prova é prever primeiro valor, último valor e número de voltas, depois fazer a execução coincidir. Em acumuladores, explique por que soma começa em zero e produto em um. Em lista vazia, declare o resultado do contrato em vez de deixar NaN escapar.

Etapa 4: decomposição, custo e treino

Quebre problemas em funções com entradas e saídas. Só depois compare laço e recursão. Conte passos para diferentes tamanhos antes de medir desempenho. Finalize com exercícios variados, sempre com casos de borda.

A prova é resolver um problema de vinte a quarenta linhas sem uma função “faz tudo”, testar cada parte e explicar o custo dominante. Você não precisa dominar Big O formal; precisa reconhecer quando duplicar a entrada duplica ou quadruplica o trabalho.

Papel, Portugol ou JavaScript no Node

As três ferramentas resolvem trabalhos diferentes. A escolha depende do que está ocupando sua atenção agora.

ferramenta use quando resultado que precisa produzir limite que exige troca
papel ou quadro a ordem e os casos ainda estão confusos lista, tabela de estado ou fluxo revisável não executa nem captura erro do runtime
pseudocódigo livre você já conhece o fluxo, mas quer adiar a sintaxe passos estruturados com decisão e repetição não há padrão único nem verificação automática
Portugol no Visualg sintaxe da primeira linguagem consome toda a atenção algoritmo executável com vocabulário em português a notação da ferramenta não é a do mercado
JavaScript no Node você precisa confirmar tipos, saída e erro reais execução reproduzível no terminal sintaxe e comportamento da linguagem entram na carga mental

Minha recomendação para o começo é híbrida: papel ou pseudocódigo por cinco minutos, Node por dez e explicação por cinco. Use Portugol quando a tradução para JavaScript estiver impedindo você de praticar decisão e laço. Volte ao Node assim que conseguir, porque mensagem real de erro também é conteúdo.

Não trate Portugol como “linguagem falsa”. Ele é uma notação didática com implementações concretas. Também não o confunda com padrão universal: Visualg possui vocabulário e regras que precisam ser consultados no projeto oficial.

No papel, não busque beleza. Um fluxograma torto com setas completas vale mais que um desenho perfeito sem caminho falso. Na execução, não aceite somente ausência de erro: escreva a saída prevista antes e compare caracteres, números e tipos.

Quanto tempo leva e qual é a prova de prontidão

Tempo de calendário não mede domínio. Uma pessoa pode passar três meses assistindo e não prever um laço; outra pode praticar trinta minutos por dia e construir o modelo em semanas. Use provas observáveis, não sensação.

Você está pronto para escolher a primeira linguagem como foco quando consegue:

  • transformar um enunciado em entradas, saídas e casos;
  • escrever pseudocódigo com ordem, condição e fim;
  • rastrear variáveis numa tabela sem executar;
  • prever quantas voltas um laço realiza;
  • tratar vazio e valores de borda;
  • dividir uma solução em funções com retorno;
  • consultar sintaxe sem copiar o algoritmo inteiro.

Errar uma questão não bloqueia avanço. O critério é diagnosticar a categoria do erro e corrigi-la. Se você diz “usei menor ou igual e criei uma volta extra”, houve aprendizado. Se apenas troca símbolos até o teste ficar verde, volte ao rastreio.

Faça ciclos curtos. No primeiro dia, escreva e rode. No segundo, refaça sem consultar. No terceiro, mude o requisito. Essa terceira etapa distingue memória de compreensão.

O mapa das 13 lições e o resultado de cada uma

As treze lições lineares formam quatro blocos contíguos. Conceitos complementares, como fluxograma e teste de mesa, entram entre os blocos sem ocupar a numeração da trilha.

ordem lição prova observável
1 O que é algoritmo outra pessoa executa os passos sem fazer pergunta
2 Entrada, processamento e saída você identifica fronteiras e muda a apresentação sem tocar no cálculo
3 Variável e tipo de dado você prevê valor e tipo depois de cada atribuição
4 Operadores e expressões o resultado do papel coincide com a precedência do Node
5 Estrutura condicional seis valores de borda caem nas faixas corretas
6 Tabela verdade todas as combinações de duas e três condições são cobertas
7 Laço e contador início, fim e total de voltas são previstos antes de rodar
8 Acumulador e média soma, quantidade e caso vazio têm contratos separados
9 Vetor e matriz índices e doze voltas da matriz são rastreados na ordem
10 Função e decomposição cada parte recebe entrada mínima e devolve resultado testável
11 Recursividade caso base, ida e volta são explicados sem executar
12 Complexidade o crescimento é previsto pela contagem antes do cronômetro
13 Exercícios resolvidos oito soluções passam casos normais, bordas e variações

O mapa não exige terminar um conteúdo para sempre. Se uma missão expõe lacuna de tipos, volte à ordem três e depois retome. Ordem pedagógica organiza dependências; não pune revisão.

Use a trilha de Lógica como índice navegável. Quando preferir percurso curricular com aulas, quiz e laboratórios, siga o curso gratuito de Lógica. Esses dois links completam os oito destinos internos deste guia; a tabela mantém os demais nomes localizáveis sem ultrapassar o contrato editorial de links.

Cinco problemas para saber se você já pode avançar

Resolva no papel antes de comparar com o gabarito executável:

  1. Troco: 5.000 centavos pagos para 3.740 cobrados.
  2. Faixa: desconto de 15% a partir de 2.000.
  3. Laço: números pares de 2 a 10, inclusive.
  4. Média: 7, 8, 9 e 8.
  5. Busca: posição de “Carla” em ['Ana', 'Bruno', 'Carla'].

O programa a seguir não ensina a solução; ele materializa o gabarito para você conferir depois de escrever seus passos:

js
const troco = 5000 - 3740;
const desconto = 2000 >= 2000 ? 15 : 0;
const pares = [];
for (let n = 2; n <= 10; n += 2) pares.push(n);
const notas = [7, 8, 9, 8];
const media = notas.reduce((soma, nota) => soma + nota, 0) / notas.length;
const posicao = ['Ana', 'Bruno', 'Carla'].indexOf('Carla');

console.log({ troco, desconto, pares, media, posicao });
{ troco: 1260, desconto: 15, pares: [ 2, 4, 6, 8, 10 ], media: 8, posicao: 2 }

Você pode avançar quando chega às cinco saídas e explica os limites: centavos evitam ponto flutuante, 2.000 pertence à faixa, dez entra no laço, média divide por quatro e índice começa em zero. Se acertou por coincidência, uma variação revela: troque pagamento, limite, passo, quantidade de notas e alvo ausente.

Quatro tropeços que derrubam a primeira semana

O primeiro é consumir aulas sem produzir previsão. Assistir cria reconhecimento, mas resolver exige recuperação ativa. Pause antes da saída e escreva o que espera ver.

O segundo é copiar código com nomes que não pertencem ao problema. Reescreva o enunciado com um domínio concreto — boletim, estoque, agenda — e escolha nomes desse domínio. x e foo escondem o estado que você precisa raciocinar.

O terceiro é tratar erro como reprovação. Mensagem de runtime informa tipo, operação e ponto da falha. Leia o nome, reproduza com entrada mínima, corrija uma coisa e rode de novo. Erro lógico sem mensagem pede tabela de estado e casos de borda.

O quarto é começar por problemas grandes. Um sistema de banco envolve autenticação, concorrência, dados e interface antes de você dominar condição. Reduza a tarefa até uma função com entrada e saída. Depois componha.

Também evite otimização prematura. Uma solução clara que percorre vinte itens é melhor que uma estrutura sofisticada sem teste. Conte passos quando o tamanho cresce e meça depois que houver problema observável.

Uma revisão semanal que mede domínio

Ao fim de cada semana, escolha um problema já resolvido e reconstrua sem consulta. Comece pelo enunciado, escreva três casos e só então o pseudocódigo. Cronômetro pode ajudar a reservar foco, mas velocidade não entra no critério de acerto.

Use uma ficha simples para registrar evidências:

js
const revisao = {
  problema: 'média com lista vazia',
  previuSaidas: true,
  escreveuPseudocodigo: true,
  testouBordas: ['uma nota', 'quatro notas', 'lista vazia'],
  explicouErro: 'divisão zero por zero produz NaN',
};

console.log(Object.values(revisao).every((valor) => Array.isArray(valor) ? valor.length > 0 : Boolean(valor)));
true

O booleano final não é nota automática; ele confirma que os campos foram preenchidos. Leia a explicação e confira se ela cita a regra, não apenas a correção. “Adicionei um if” descreve ação; “lista vazia tornava o divisor zero” demonstra diagnóstico.

Compare a solução atual com a anterior. Procure nomes mais específicos, menos estado compartilhado e casos que agora você escolhe sem ajuda. Não reescreva apenas para encurtar. Uma solução um pouco maior com contrato e bordas explícitos representa avanço.

Mantenha uma lista de dúvidas separada de erros. Dúvida de sintaxe pede documentação; erro de raciocínio pede papel e rastreio; requisito ambíguo pede pergunta a quem definiu o problema. Classificar a trava impede passar uma hora trocando operadores quando a política nem foi decidida.

Por fim, ensine a solução em voz alta. Explique entrada, estado, condição, laço e saída para alguém ou grave dois minutos. Toda frase que depende de “aí ele faz isso” revela um passo que merece nome. Ensinar não é performance: é um teste de compressão do modelo mental.

Organize a revisão em ciclos de quatro semanas. Na primeira, concentre sequência e tipos; na segunda, decisões; na terceira, laços e listas; na quarta, decomposição e projeto. Ao final, escolha uma missão de cada bloco e resolva em sessão única. O objetivo não é evitar consulta de sintaxe, mas preservar o algoritmo quando o vocabulário muda.

Registre somente evidência verificável: casos escritos antes, saída capturada, erro explicado e variação concluída. “Assisti três horas” mede consumo; “previ quatro combinações e corrigi a condição de borda” mede aprendizagem. Essa troca de métrica protege contra a sensação de avanço sem prática.

Se duas semanas seguidas produzem a mesma trava, reduza o problema. Volte de matriz para vetor, de condição composta para duas proposições ou de projeto para uma função. Reduzir escopo preserva continuidade e revela o pré-requisito exato; recomeçar o curso inteiro costuma apenas repetir partes já dominadas.

Depois da lógica: escolha uma linguagem e preserve o método

Ao escolher JavaScript, Python ou outra linguagem, mantenha o ciclo: problema, pseudocódigo, previsão, tradução, execução, diferença, variação. A sintaxe aumenta, mas a forma de aprender não muda.

JavaScript é uma escolha prática para web e Node. Python reduz sinais visuais e aparece em automação e dados. A primeira linguagem não precisa ser perfeita; precisa permitir prática frequente e projetos alinhados ao seu objetivo.

Seu próximo passo concreto é fazer o teste de cinco problemas sem olhar o gabarito. Se explicar as cinco respostas, abra a primeira missão do curso e construa o projeto final com entrada, decisão, repetição e teste de mesa. Se uma parte travar, retorne à linha correspondente do mapa, não ao começo inteiro.

Trilha

Lógica de Programação

Antes de qualquer linguagem: variável, condição, laço e algoritmo, com exercícios que treinam o raciocínio.

Ver a trilha
  1. 01O que é algoritmo: a receita que o computador segue
  2. 02Entrada, processamento e saída: o desenho de todo programa
  3. 03Variável e tipo de dado: o que o programa guarda
  4. 04Operadores e expressões: a ordem em que a conta acontece
  5. 05Estrutura condicional: se, senão e senão se no algoritmo
  6. 06Tabela verdade: E, OU e NÃO em condições compostas
  7. 07Laço de repetição e contador: repetir sem copiar código
  8. 08Acumulador e média: somar valores dentro do laço
  9. 09Vetor e matriz: listas e tabelas dentro do programa
  10. 10Função e parâmetro: quebrar o problema em partes
  11. 11Recursividade: a função que chama ela mesma
  12. 12Complexidade de algoritmo sem matemática pesada
  13. 13Exercícios de lógica de programação: 8 resolvidos

fluxograma

teste de mesa

Perguntas frequentes

Quanto tempo leva para aprender lógica de programação?
O calendário varia, mas o critério não: você está pronto para avançar quando consegue decompor problemas pequenos, prever saídas e corrigir casos de borda sem copiar a solução.
É melhor começar lógica com Portugol ou JavaScript?
Use papel ou pseudocódigo para formar o raciocínio e uma linguagem real para conferir. JavaScript no Node dá feedback imediato; Portugol reduz sintaxe quando ela ainda ocupa atenção demais.
Preciso saber matemática avançada para aprender lógica?
Não. A base usa ordem, comparação, operações aritméticas e reconhecimento de padrões. Matemática específica entra depois, conforme o domínio do programa.
Como saber se estou praticando em vez de decorar?
Troque entradas, explique cada estado e resolva uma variação sem olhar. Se pequenas mudanças derrubam a solução, volte ao pseudocódigo e ao teste de mesa.

O código deste guia foi executado em Node v26.3.0, e as saídas exibidas são as reais — como produzimos este conteúdo.

Fontes consultadas

  1. ECMAScript — Algorithm Conventions — tc39.es
  2. Node.js — Running JavaScript with Node.js — nodejs.org
  3. Design Líquido — implementação do dialeto VisuAlg — github.com