# Lógica de programação: a habilidade que vem antes da linguagem, com exercícios e um mini-projeto

> Lógica de programação é a capacidade de dividir um problema em passos que um computador consiga executar. Veja variáveis, condições, repetições e funções em exemplos que rodam, como planejar em pseudocódigo, cinco exercícios e um mini-projeto de meta financeira, com vídeos em português verificados.

- Editoria: Carreira
- Autor: Redação PushTech
- Publicado em: 2026-10-24T21:28:00-03:00
- URL canônica: https://pushtech.tech/carreira/logica-de-programacao-a-habilidade-que-vem-antes-da-linguagem-com-exercicios

**Lógica de programação é a habilidade de transformar um problema em passos pequenos, claros e na ordem certa, de modo que um computador consiga segui-los.** Ela vem antes da linguagem: quem entende a lógica troca de Python para JavaScript sem começar do zero. Este é o segundo artigo da trilha "Quero virar dev em casa". Se você ainda não leu, comece por [por onde começar](/carreira/quero-virar-dev-em-casa-por-onde-comecar-de-verdade-com-plano-de-30-dias).

## Para quem é este artigo

Para quem nunca programou ou quer firmar a base antes de partir para HTML, CSS e JavaScript. **Pré-requisitos:** nenhum além de um computador e de um editor de texto. Tempo de estudo sugerido: de 2 a 4 horas ao longo de uma semana, entre leitura, vídeos e exercícios (estimativa da Redação).

## O que você vai aprender

1. O que é lógica de programação e por que ela importa mais do que decorar sintaxe.
2. Variáveis, condições, repetições e funções, com exemplos que rodam.
3. Como dividir um problema em etapas e planejar em pseudocódigo.
4. Cinco exercícios e um mini-projeto.

## O que é lógica de programação

Um computador faz exatamente o que o programa manda, na ordem em que manda. Ele não adivinha. Por isso, programar é, em boa parte, **descrever com precisão** o que deve acontecer. A lógica é essa capacidade de descrever: quais dados existem, que decisões precisam ser tomadas, o que se repete e o que pode virar um bloco reutilizável.

Pense em uma receita. "Faça um bolo" não é um programa. "Pré-aqueça o forno a 180 graus, misture os ovos, o açúcar e a farinha, despeje na forma, asse por 40 minutos" é. Um algoritmo é isso: uma sequência finita de passos que leva de uma entrada (os ingredientes) a um resultado (o bolo).

## Por que importa mais do que decorar sintaxe

A **sintaxe** é como se escreve em uma linguagem específica: pontuação, palavras reservadas, formato. A **lógica** é o raciocínio por trás. A sintaxe você consulta na documentação quantas vezes precisar. A lógica é o que você precisa ter na cabeça para saber o que consultar. Esta é uma observação da Redação, e é por isso que esta trilha põe a lógica antes de HTML, CSS e JavaScript.

## Os quatro blocos de construção

Os exemplos abaixo estão em **Python**, e cada um tem o equivalente em **JavaScript**. Todos foram executados pela Redação e produzem as saídas mostradas.

### 1. Variáveis: onde guardar um dado

O MDN define uma variável como **"um contêiner para um valor"** e destaca que variáveis não são os valores em si. Você dá um nome a um dado para usá-lo depois.

```python
ano_nascimento = 1995
ano_atual = 2026
idade = ano_atual - ano_nascimento
print("Você tem", idade, "anos")
```

Saída: `Você tem 31 anos`. (O cálculo usa só o ano, então é aproximado: ele não considera se o aniversário já passou.)

Em JavaScript, a variável se declara com `let` ou `const`. A página do MDN recomenda: **use `const` quando puder e `let` quando precisar.**

```javascript
const idade = 2026 - 1995;
console.log("Você tem", idade, "anos");
```

### 2. Condições: decidir entre caminhos

Uma condição executa um bloco só se algo for verdadeiro. O tutorial oficial de Python trata disso em `if`, `elif` e `else`.

```python
for numero in [4, 7]:
    if numero % 2 == 0:
        print(numero, "é par")
    else:
        print(numero, "é ímpar")
```

Saída: `4 é par` e `7 é ímpar`. O operador `%` devolve o resto da divisão: se o resto da divisão por 2 é zero, o número é par.

### 3. Repetições: fazer várias vezes

Um laço repete um bloco. O tutorial oficial de Python explica o `for` e o `range()`, que gera uma sequência de números.

```python
total = 0
for mes in range(1, 4):
    total = total + 100
    print("Mês", mes, "- guardado:", total)
```

Saída: `Mês 1 - guardado: 100`, `Mês 2 - guardado: 200` e `Mês 3 - guardado: 300`. Atenção: `range(1, 4)` vai de 1 até 3, e o 4 fica de fora. É um erro clássico de iniciante.

### 4. Funções: dar nome a um bloco e reaproveitá-lo

Uma função recebe dados, faz uma tarefa e devolve um resultado. O tutorial oficial de Python mostra como defini-las.

```python
def total_guardado(valor_mensal, meses):
    return valor_mensal * meses

print(total_guardado(200, 12))
```

Saída: `2400`. Em JavaScript:

```javascript
function totalGuardado(valorMensal, meses) {
  return valorMensal * meses;
}
console.log(totalGuardado(200, 12));
```

## Como quebrar um problema em etapas

Problema grande assusta, e o remédio é dividi-lo, como um quebra-cabeça que se monta por regiões. Uma rotina simples, da Redação:

1. **Diga o problema com suas palavras.** "Quero saber em quantos meses chego à minha meta."
2. **Liste as entradas.** A meta e o valor guardado por mês.
3. **Liste a saída.** O número de meses.
4. **Resolva um caso pequeno à mão.** Meta de R$ 1.000, R$ 250 por mês: 4 meses.
5. **Descreva os passos em pseudocódigo.**
6. **Só então escreva o código**, começando pelo passo mais simples.
7. **Teste com casos normais e com casos esquisitos**, como valor mensal igual a zero.

## Pseudocódigo: planejar antes de programar

Pseudocódigo é um rascunho em português, sem regras de sintaxe, que descreve o raciocínio:

```text
receber a meta
receber o valor guardado por mês
se o valor por mês for zero ou menos:
    avisar que não dá para calcular
senão:
    meses = meta dividida pelo valor por mês, arredondada para cima
    mostrar os meses
```

O mesmo raciocínio em Python, já testado:

```python
import math

def meses_para_meta(meta, valor_mensal):
    if valor_mensal <= 0:
        return None
    return math.ceil(meta / valor_mensal)

print(meses_para_meta(5000, 300))  # 17
print(meses_para_meta(5000, 0))    # None
```

Saídas: `17` e `None`. Repare que o caso esquisito (valor mensal igual a zero) foi pensado antes do código. É essa a vantagem do pseudocódigo.

## Vídeos para estudar

Os quatro vídeos foram verificados quanto ao título, ao canal, à duração, à data e à possibilidade de incorporação. A Redação não os assistiu na íntegra nem verificou o que dizem.

_Vídeo: LÓGICA DE PROGRAMAÇÃO - Tudo que Você Precisa Saber (Do Zero) (Sharpax)_

_Vídeo: O que é pseudocódigo? - Lógica de programação ilustrada (Código Ilustrado)_

_Vídeo: Curso Lógica de Programação 2026 – Aprenda em 3 Horas (De Verdade!) (Dev Aprender)_

[[VIDEO_YOUTUBE | url: https://www.youtube.com/watch?v=rfscVS0vtbw | titulo: Learn Python - Full Course for Beginners [Tutorial] | canal: freeCodeCamp.org | inicio: | contexto: Em inglês, com cerca de 4 horas e 27 minutos, publicado em 11 de julho de 2018. A descrição informa que há faixa de áudio dublada em português; é preciso trocá-la nas configurações do vídeo. Tem mais de oito anos, então confira a documentação atual em caso de diferença. Nível: iniciante.]]

Para uma base de computação mais ampla, a Aula 0 do CS50x trata de Scratch e está em [CS50x em Português](https://www.youtube.com/watch?v=GHZzYAy4NKA), como vimos no artigo anterior.

## Exercícios práticos

Faça cada um em Python ou em JavaScript, **sem copiar a resposta pronta**. Se travar, escreva o pseudocódigo primeiro.

1. **Idade:** peça o ano de nascimento e mostre a idade aproximada.
2. **Par ou ímpar:** peça um número e diga se ele é par ou ímpar.
3. **Calculadora simples:** peça dois números e uma operação (soma, subtração, multiplicação ou divisão) e mostre o resultado. Trate a divisão por zero.
4. **Adivinhação:** o programa escolhe um número de 1 a 10 e você tem três tentativas. Dica: pesquise "número aleatório" na documentação da linguagem.
5. **Conversor de moedas:** peça um valor em reais e uma cotação digitada por você, e mostre o valor convertido. (Não use cotação "de verdade" automática por enquanto; isso fica para o artigo de JavaScript e APIs.)

## Mini-projeto: calculadora de metas financeiras

O usuário informa **quanto quer guardar**, **quanto consegue guardar por mês** e o programa mostra **em quantos meses chega lá** e **quanto terá guardado depois de 12 meses**.

Etapas sugeridas:

1. Escreva o pseudocódigo (use o exemplo acima como ponto de partida).
2. Implemente `meses_para_meta`.
3. Implemente `total_guardado`.
4. Trate os casos esquisitos: valor mensal zero, negativo ou meta negativa.
5. Teste com pelo menos cinco combinações de números, calculando a resposta certa à mão antes.

**Resultado esperado:** um programa pequeno e útil que usa variáveis, condição e função, e que você consegue explicar linha a linha.

## Erros comuns de iniciantes

- **Copiar o código sem entender.** Antes de rodar, explique em voz alta o que cada linha faz.
- **Começar a digitar sem planejar.** Dois minutos de pseudocódigo evitam uma hora de confusão.
- **Esquecer o caso de borda:** zero, vazio, valor negativo, número muito grande.
- **Errar por um:** `range(1, 4)` não inclui o 4.
- **Misturar `=` e `==`:** o primeiro guarda um valor, o segundo compara.
- **Ler a mensagem de erro pela metade.** Ela costuma dizer a linha e o motivo.
- **Pular o teste.** Rode, falhe, corrija. É o processo normal.

## Checklist de conclusão

- [ ] Sei explicar, com minhas palavras, o que é um algoritmo.
- [ ] Usei variável, condição, repetição e função em código que rodou.
- [ ] Escrevi pseudocódigo antes de programar pelo menos um exercício.
- [ ] Fiz os cinco exercícios.
- [ ] Terminei a calculadora de metas e testei casos esquisitos.

## Próximo passo da trilha

Com a lógica na mão, o próximo artigo leva você a **HTML e CSS**, para criar sua primeira página de verdade. Se ainda não publicou sua página pessoal do artigo 1, esse é o momento.

## Perguntas frequentes

### O que é lógica de programação?
É a capacidade de dividir um problema em passos claros, na ordem certa, que um computador consiga executar. Ela vale em qualquer linguagem.

### Preciso ser bom em matemática para programar?
Para começar, o necessário é a aritmética básica e o raciocínio passo a passo, como nos exemplos acima. Áreas específicas, como ciência de dados, pedem mais matemática depois. Esta é uma observação da Redação.

### Qual a diferença entre lógica e sintaxe?
Sintaxe é como se escreve em uma linguagem específica. Lógica é o raciocínio por trás, e vale para todas. A sintaxe se consulta; a lógica você precisa ter.

### O que é pseudocódigo?
É um rascunho em português, sem regras de sintaxe, que descreve os passos de um programa antes de escrevê-lo.

### Qual linguagem usar para aprender lógica: Python ou JavaScript?
As duas servem. Python costuma ter uma sintaxe mais enxuta para estudar lógica, e JavaScript é a linguagem da web, que vem na sequência da trilha. Esta é uma observação da Redação. Escolha uma e termine os exercícios.

### Quanto tempo leva para aprender lógica de programação?
Não há prazo oficial, e a Redação não o inventa. Meça o progresso por evidência: você consegue resolver os cinco exercícios sem copiar a resposta e explicar o código linha a linha?

### Posso usar IA para estudar lógica?
Pode, como tutora: para explicar um erro ou revisar um trecho. Não use para escrever os exercícios por você, porque o aprendizado está em tentar, errar e corrigir.

## Fontes

- [More Control Flow Tools (Python Tutorial)](https://docs.python.org/3/tutorial/controlflow.html), Python Software Foundation
- [Storing the information you need: Variables](https://developer.mozilla.org/en-US/docs/Learn_web_development/Core/Scripting/Variables), MDN Web Docs (Mozilla)
- [CS50x: Introduction to Computer Science](https://cs50.harvard.edu/x/), Harvard CS50
- [Quero virar dev em casa: por onde começar de verdade](https://pushtech.tech/carreira/quero-virar-dev-em-casa-por-onde-comecar-de-verdade-com-plano-de-30-dias), PushTech
