image

Accede a bootcamps ilimitados y a más de 650 cursos para siempre

75
%OFF
Article image
Izaque
Izaque17/12/2025 23:25
Compartir

Lógica de Programação: A Fase Inevitável (E como sobreviver a ela)

    Introdução:

    Você já teve aquela sensação de olhar para uma tela preta cheia de letras coloridas, saber que precisa escrever um código, mas sua mente ficar completamente em branco? Ou pior: você copia um código da internet, ele funciona, mas se alguém te perguntar "por que funcionou?", você não faz a menor ideia?

    Se a resposta for "sim", respire fundo. Você não está sozinho. Eu estive exatamente nesse lugar até pouquíssimo tempo atrás.

    O Erro Clássico: Decorar Sintaxe vs. Aprender Lógica

    Quando comecei, cometi o erro que 90% dos iniciantes cometem: eu queria aprender a linguagem antes de aprender a pensar.

    Eu achava que o mais importante seria entender a sintaxe da linguagem, como ela se organizava. Mas, durante a faculdade, levei um choque de realidade. Acredite, percebi isso quando iniciou a matéria de POO (Programação Orientada a Objetos). É aí que as coisas começam a complicar, porque em POO temos muitos códigos e métodos que precisam ser bem definidos.

    Nesse momento, percebi o problema real: a minha base estava fraca.

    • Sintaxe é a gramática (onde vai o ponto e vírgula, chaves ou parênteses).
    • Lógica é a ideia (o que você quer que o computador faça).

    A sintaxe muda de linguagem para linguagem (Python é diferente de Java). A lógica é universal. Quando essa chave virou na minha cabeça, tudo mudou.

    O "Kit de Sobrevivência" da Lógica

    Para sair do travamento, precisei voltar duas casas e entender os blocos fundamentais. Não adianta querer construir um prédio (um sistema complexo) se você não sabe assentar os tijolos. Aqui está como organizei meu aprendizado:

    1. Variáveis: As Gavetas da Memória

    Tudo começa aqui. Imagine que a memória do computador é um armário gigante cheio de gavetas. Uma variável é simplesmente dar um nome para uma dessas gavetas e guardar algo dentro.

    Python

    # Criando as gavetas (Variáveis em Python)
    nome_do_aluno = "Carlos"
    idade = 25
    aprovado = True
    

    2. O Fluxo de Execução (De cima para baixo)

    O computador lê o código como nós lemos um livro: uma linha de cada vez, de cima para baixo. Entender essa sequencialidade é vital. Se você tentar usar uma variável na linha 1 que só foi criada na linha 10, vai dar erro. A organização mental precisa seguir essa ordem cronológica.

    3. Laços de Repetição (Loops): A Mágica da Automação

    Aqui é onde o computador brilha. Se você precisa fazer a mesma coisa 100 vezes, você não escreve o código 100 vezes. Você usa um Loop.

    Imagine que você precisa contar até 5. Antes de sair codando, visualize o fluxo lógico:

    image

    Imagem1: O fluxo de decisão de um laço de repetição)

    No Python, traduzimos esse desenho lógico para o comando for:

    Python

    # Exemplo: Contando de 0 a 4
    for i in range(5):
      print(f"O contador está em: {i}")
    

    4. Vetores e Matrizes: Organizando a Bagunça

    Logo percebi que guardar uma variável por vez era inviável. E se eu tiver que lidar com listas complexas onde um valor depende do outro?

    Vetores (Arrays)

    É uma gaveta com divisórias. Uma variável que guarda vários valores acessados por um índice (a posição).

    Para entender isso de verdade, precisei desenhar. Veja este Teste de Mesa que fiz para entender como dois vetores (I e J) interagem quando o valor atual depende do passado:

    image

    Imagem2: Teste de mesa mostrando dependência entre vetores e iterações anteriores

    Perceba na imagem acima, na coluna do meio ($k=2$): o computador soma o valor atual de $I$ (que é 6) com o valor anterior de $J$ (que é 5), resultando em 11.

    Aqui está o código Python que prova essa lógica exata da imagem:

    Python

    # Vetor I (Entrada com valores fixos)
    I = [2, 4, 6, 8]
    
    # Vetor J (Saída) - Iniciamos com zeros para reservar espaço
    J = [0, 0, 0, 0]
    
    # Definimos o valor inicial conforme o teste de mesa
    J[0] = 1 
    
    # O Loop percorre de k=1 até k=3
    # (No Python, o range vai até o número anterior ao limite, então usamos 4)
    for k in range(1, 4):
      # Lógica: O J atual é igual ao I atual + J anterior
      J[k] = I[k] + J[k-1]
      
      print(f"Rodada k={k}: I[{k}] ({I[k]}) + J[{k-1}] ({J[k-1]}) = {J[k]}")
    
    # Resultado final esperado: J = [1, 5, 11, 19]
    print(f"Vetor J Final: {J}")
    

    Matrizes (Tabelas)

    E se a complexidade aumentar? Se eu precisar de linhas e colunas, como uma planilha do Excel? Aí entram as Matrizes.

    Python

    # Exemplo de MATRIZ (Lista de Listas)
    # Imagine um boletim com notas de 3 bimestres para 2 alunos
    boletim = [
      [8.0, 7.5, 9.0],  # Notas do Aluno 0 (Linha 0)
      [6.5, 7.0, 8.0]   # Notas do Aluno 1 (Linha 1)
    ]
    
    # Acessando a nota do Aluno 1 (linha 1), no 3º bimestre (coluna 2)
    # Lembre-se: índices começam em 0!
    print(f"Nota específica: {boletim[1][2]}")
    

    5. Funções: Não se Repita

    Por fim, aprendi sobre Funções. Se eu tenho um trecho de lógica que uso toda hora (como calcular uma média), eu "empacoto" isso numa função. É como criar uma ferramenta personalizada para não repetir código.

    Python

    def calcular_media(nota1, nota2):
      return (nota1 + nota2) / 2
    
    # Usando a minha ferramenta
    minha_media = calcular_media(8, 9)
    print(minha_media)
    

    O Poder do Papel e Caneta (O Teste de Mesa "Raiz")

    Confesso a vocês que não tenho o hábito de escrever muito à mão, mas foi extremamente necessário no meu aprendizado. Fiz um curso de lógica onde tive a primeira experiência sem teclado, apenas papel e caneta.

    Foi aí que conheci o Teste de Mesa.

    O Teste de Mesa é você simular ser o computador. Você desenha uma tabela e vai anotando, linha por linha, como o valor de cada variável muda. Veja este exemplo clássico de acumulação de valores (soma de vetor):

    image

    Imagem3: Simulando o computador: passo a passo de um algoritmo de soma

    Perceba na imagem acima:

    1. Temos um vetor v com números [2, 3, 4, 5].
    2. Temos uma variável soma que começa com 0.
    3. A cada passo do loop, a soma acumula o valor anterior mais o novo, até chegar no resultado 14.

    Fazer isso no papel me fez entender de verdade o que acontece "por trás dos panos" de um loop for.

    Conclusão: Dividir para Conquistar

    Aprender lógica de programação não é sobre ser um gênio da matemática, é sobre treinar o cérebro para resolver problemas de forma estruturada.

    O grande segredo que levo comigo é: Dividir para Conquistar. Um problema complexo nada mais é do que vários problemas pequenos juntos. Em vez de tentar criar um sistema de banco inteiro, primeiro crie a variável do saldo. Depois a função de depositar. Depois a de sacar.

    Foi desafiador no início, mas a sensação de ver o código rodando sem erros pela primeira vez é impagável.

    E você, qual tem sido sua maior dificuldade com lógica de programação? O if/else te assusta ou o laço for é o seu vilão?

    Deixe aqui nos comentários! Se este artigo te ajudou, conecte-se comigo no https://www.linkedin.com/in/izaque-silva-11556330a.

    #LogicaDeProgramacao #Iniciante #DIOCampusExpert #DesenvolvimentoDeSoftware #Python

    Compartir
    Recomendado para ti
    Bradesco - GenAI & Dados
    GitHub Copilot - Código na Prática
    CI&T - Backend com Java & AWS
    Comentarios (0)