// aula 01 · Lógica de Programação
O que é lógica de programação
Lógica de programação é a capacidade de organizar o pensamento em uma sequência de passos que resolve um problema. Antes de escrever qualquer linha de código, você precisa saber o que fazer e em que ordem fazer.
É como uma receita de bolo: você não coloca o bolo no forno antes de misturar os ingredientes. Na programação também existe uma ordem — e essa ordem é a lógica.
Lógica não depende de linguagem. Você aprende uma vez e leva para Python, JavaScript, Java ou qualquer outra. A linguagem é só a forma de escrever — a lógica é o raciocínio por trás.
Uma receita tem ingredientes (dados de entrada), passos em ordem (processamento) e um bolo pronto (saída). Um programa funciona exatamente assim.
Entrada → Processamento → Saída
O GPS avalia condições em tempo real: se a rua está bloqueada, então recalcule a rota. Isso é exatamente o que um if/else faz no código.
Se condição → senão → outra ação
Uma breve história da lógica de programação
A lógica de programação não nasceu com os computadores. Ela tem raízes na matemática e na filosofia — e passou por séculos de evolução antes de chegar à tela do seu notebook.
Século IV a.C.
Aristóteles e a Lógica Formal
O filósofo grego criou a lógica dedutiva — um sistema de raciocínio baseado em premissas e conclusões. É a base de todo pensamento lógico que usamos até hoje: "Se A então B".
1843
Ada Lovelace — a primeira programadora
Ada escreveu o primeiro algoritmo destinado a ser processado por uma máquina — para o motor analítico de Charles Babbage. Ela é considerada a primeira programadora da história, um século antes dos computadores modernos.
1854
George Boole — Álgebra Booleana
Boole criou um sistema matemático baseado em verdadeiro e falso. Toda lógica condicional da programação moderna (True, False, and, or, not) vem diretamente dele.
1936
Alan Turing — a Máquina de Turing
Turing descreveu uma máquina teórica capaz de executar qualquer algoritmo — lendo, escrevendo e tomando decisões com base em regras. Esse modelo é a base teórica de todos os computadores modernos.
1950s–hoje
Linguagens de programação — da máquina ao Python
Saímos do código de máquina binário para o Assembly, depois para C, Java, e linguagens modernas como Python. A lógica permaneceu a mesma — só a forma de escrever ficou mais humana.
Os pilares da lógica de programação
É a receita. Um conjunto finito de instruções ordenadas que resolve um problema. Todo programa que existe começa com um algoritmo — às vezes na cabeça, às vezes no papel.
Um espaço na memória com um nome e um valor. Pode mudar ao longo do programa. Ex: idade = 25 guarda o número 25 com o nome "idade".
O programa avalia uma condição e age diferente dependendo do resultado. Se a senha estiver correta, entra. Senão, nega o acesso.
Quando você precisa executar o mesmo bloco de código múltiplas vezes. Em vez de repetir o código, usa um laço que repete automaticamente.
Um bloco de código com nome, que você escreve uma vez e chama várias vezes. Evita repetição e organiza o programa em pedaços menores.
Todo programa recebe dados (entrada) e devolve resultados (saída). Pode ser o teclado, um arquivo, uma API ou a tela do usuário.
Pseudocódigo — pensar antes de codificar
Pseudocódigo é uma forma de escrever a lógica do programa usando linguagem humana — sem se preocupar com a sintaxe de nenhuma linguagem. É o rascunho antes do código de verdade.
Profissionais experientes usam pseudocódigo para planejar soluções complexas. Não é coisa de iniciante — é hábito de quem pensa antes de digitar.
exemplo — verificar se um número é par (pseudocódigo → Python)
Pseudocódigo
INÍCIO receber número se número dividido por 2 tiver resto 0: exibir "é par" senão: exibir "é ímpar" FIM
Python
numero = int(input("Digite um número: ")) if numero % 2 == 0: print("É par") else: print("É ímpar")
Fluxograma — visualizar antes de programar
Um fluxograma é um diagrama que representa o fluxo de um algoritmo visualmente — com caixas, setas e símbolos padrão. Ajuda a enxergar os caminhos possíveis antes de escrever qualquer código.
Marca onde o algoritmo começa e onde termina.
Uma ação ou cálculo. Ex: calcular total, salvar dado.
Uma pergunta com resposta Sim/Não. Representa o if.
Leitura de dados (input) ou exibição (print).
💡 Dica prática: antes de começar qualquer projeto, tente desenhar o fluxo no papel ou numa ferramenta como Excalidraw ou Lucidchart. Você vai identificar problemas de lógica antes de escrever uma linha de código.
Como aprender e se aperfeiçoar em lógica
Lógica de programação é uma habilidade — e como toda habilidade, ela se desenvolve com prática constante. Não existe atalho, mas existe caminho certo.
Antes de abrir o editor, tente resolver o problema no papel. Escreva o pseudocódigo, desenhe um fluxograma. Programadores experientes passam mais tempo planejando do que codificando.
Sites como Beecrowd, HackerRank e LeetCode têm exercícios de lógica do nível mais básico ao avançado. 15 minutos por dia de prática consistente valem mais do que estudar 4 horas no final de semana.
GitHub está cheio de projetos abertos. Leia como outros resolveram problemas parecidos com os seus. Você vai perceber formas de pensar que nunca imaginou — e isso expande sua lógica.
Depois de resolver um exercício, tente resolver de novo usando uma abordagem diferente — com while em vez de for, com função em vez de código solto. Isso fortalece o raciocínio lógico.
Se você consegue explicar um algoritmo para outra pessoa usando palavras simples, significa que você realmente entendeu. Se travar na explicação, é sinal que a lógica ainda não está clara na sua cabeça.
Lógica na prática — exemplos em Python
sequência simples — calculadora de IMC
# Entrada peso = float(input("Peso (kg): ")) altura = float(input("Altura (m): ")) # Processamento imc = peso / (altura ** 2) # Saída com condicional if imc < 18.5: print("Abaixo do peso") elif imc < 25: print("Peso normal") elif imc < 30: print("Sobrepeso") else: print("Obesidade")
repetição — tabuada de qualquer número
n = int(input("Qual tabuada? ")) for i in range(1, 11): print(f'{n} x {i} = {n * i}') # → 7 x 1 = 7 # → 7 x 2 = 14 # → ...até 7 x 10 = 70
função — organizar e reaproveitar
def calcular_media(notas): # recebe uma lista de notas e retorna a média return sum(notas) / len(notas) def situacao(media): if media >= 7: return "Aprovado ✅" elif media >= 5: return "Recuperação ⚠️" else: return "Reprovado ❌" # Usando as funções notas_lucilia = [8, 7.5, 9, 6] media = calcular_media(notas_lucilia) print(f'Média: {media} — {situacao(media)}') # → Média: 7.625 — Aprovado ✅
Erros comuns de quem está começando
Abrir o editor sem entender o problema é o caminho mais rápido para se perder. Sempre entenda o que precisa ser feito antes de escrever a primeira linha.
Saber escrever for i in range(10) sem entender por que funciona não te torna programador. A sintaxe se aprende em minutos — a lógica leva meses.
Erro é parte do processo. Todo programador experiente passa horas depurando. A diferença entre iniciante e sênior não é não errar — é saber como encontrar e corrigir o erro.
Copiar do Stack Overflow ou do ChatGPT sem entender o que o código faz cria uma ilusão de progresso. Você vai travar na próxima variação do mesmo problema.
⚠️ Síndrome do impostor é real — mas não é permanente. Todo programador sente que não sabe o suficiente. O segredo é continuar mesmo assim. A sensação de "não estou pronto" vai diminuindo com cada problema que você resolve.