Article image
Marcos Silva
Marcos Silva30/07/2025 21:22
Compartilhe

Desafios de Código: Aprimore Sua Lógica e Pensamento Computacional

    No universo tech, a habilidade mais valiosa não é saber a linguagem do momento, mas saber pensar como um desenvolvedor. Fortalecer sua base lógica, independente da linguagem.

    E se você acha que lógica é só “teoria chata”, calma lá! Vamos aplicar conceitos com exemplos reais, resolvendo os mesmos desafios em Java, C#, Python e JavaScript.

    🧠 O que é Pensamento Computacional?

    É a habilidade de resolver problemas de forma estruturada, dividindo em partes menores, analisando padrões e criando soluções passo a passo – exatamente como um computador faria, só que com o toque humano de criatividade.

    ⚙️ Desafio 1 – Par ou Ímpar

    🎯 Objetivo:

    Receber um número inteiro e imprimir se ele é Par ou Ímpar.

    💻 Java

    java
    CopiarEditar
    import java.util.Scanner;
    
    public class ParOuImpar {
      public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          int numero = sc.nextInt();
    
          if (numero % 2 == 0) {
              System.out.println("Par");
          } else {
              System.out.println("Ímpar");
          }
      }
    }
    

    💻 C#

    csharp
    CopiarEditar
    using System;
    
    class Program {
      static void Main() {
          int numero = int.Parse(Console.ReadLine());
    
          if (numero % 2 == 0) {
              Console.WriteLine("Par");
          } else {
              Console.WriteLine("Ímpar");
          }
      }
    }
    

    💻 Python

    python
    CopiarEditar
    numero = int(input())
    
    if numero % 2 == 0:
      print("Par")
    else:
      print("Ímpar")
    

    💻 JavaScript

    javascript
    CopiarEditar
    const numero = parseInt(prompt("Digite um número:"));
    
    if (numero % 2 === 0) {
      console.log("Par");
    } else {
      console.log("Ímpar");
    }
    

    ⚙️ Desafio 2 – Soma dos Elementos de um Array

    🎯 Objetivo:

    Receber um array de inteiros e retornar a soma total dos elementos.

    💻 Java

    java
    CopiarEditar
    public class SomaArray {
      public static void main(String[] args) {
          int[] numeros = {10, 20, 30, 40};
          int soma = 0;
    
          for (int n : numeros) {
              soma += n;
          }
    
          System.out.println("Soma: " + soma);
      }
    }
    

    💻 C#

    csharp
    CopiarEditar
    using System;
    
    class Program {
      static void Main() {
          int[] numeros = {10, 20, 30, 40};
          int soma = 0;
    
          foreach (int n in numeros) {
              soma += n;
          }
    
          Console.WriteLine("Soma: " + soma);
      }
    }
    

    💻 Python

    python
    CopiarEditar
    numeros = [10, 20, 30, 40]
    soma = sum(numeros)
    
    print(f"Soma: {soma}")
    

    💻 JavaScript

    javascript
    CopiarEditar
    const numeros = [10, 20, 30, 40];
    const soma = numeros.reduce((acc, val) => acc + val, 0);
    
    console.log("Soma:", soma);
    

    ⚙️ Desafio 3 – FizzBuzz

    🎯 Objetivo:

    Para números de 1 a 20:

    • Se for múltiplo de 3: imprimir "Fizz"
    • Se for múltiplo de 5: imprimir "Buzz"
    • Se for múltiplo de ambos: "FizzBuzz"
    • Senão, imprimir o número

    💻 Java

    java
    CopiarEditar
    public class FizzBuzz {
      public static void main(String[] args) {
          for (int i = 1; i <= 20; i++) {
              if (i % 3 == 0 && i % 5 == 0) {
                  System.out.println("FizzBuzz");
              } else if (i % 3 == 0) {
                  System.out.println("Fizz");
              } else if (i % 5 == 0) {
                  System.out.println("Buzz");
              } else {
                  System.out.println(i);
              }
          }
      }
    }
    

    💻 C#

    csharp
    CopiarEditar
    using System;
    
    class Program {
      static void Main() {
          for (int i = 1; i <= 20; i++) {
              if (i % 3 == 0 && i % 5 == 0)
                  Console.WriteLine("FizzBuzz");
              else if (i % 3 == 0)
                  Console.WriteLine("Fizz");
              else if (i % 5 == 0)
                  Console.WriteLine("Buzz");
              else
                  Console.WriteLine(i);
          }
      }
    }
    

    💻 Python

    python
    CopiarEditar
    for i in range(1, 21):
      if i % 3 == 0 and i % 5 == 0:
          print("FizzBuzz")
      elif i % 3 == 0:
          print("Fizz")
      elif i % 5 == 0:
          print("Buzz")
      else:
          print(i)
    

    💻 JavaScript

    javascript
    CopiarEditar
    for (let i = 1; i <= 20; i++) {
      if (i % 3 === 0 && i % 5 === 0) {
          console.log("FizzBuzz");
      } else if (i % 3 === 0) {
          console.log("Fizz");
      } else if (i % 5 === 0) {
          console.log("Buzz");
      } else {
          console.log(i);
      }
    }
    

    💬 Conclusão

    Treinar lógica e pensamento computacional é o equivalente a construir o alicerce de um prédio. Pode parecer básico, mas sem isso tudo desaba.

    A beleza dos desafios de código está justamente na sua simplicidade que engana. Quanto mais você pratica, mais você domina a arte de transformar problemas complexos em soluções elegantes.

    E o melhor: a lógica é universal. Os exemplos acima provam que, independentemente da linguagem, o raciocínio é o mesmo.

    🙌 Gratidão

    Um agradecimento especial ao professor Venilton Flavio Jr. pela didática objetiva e aos colegas da comunidade DIO pela troca de conhecimento.

    🧠 Bora praticar?

    Se quiser melhorar sua lógica, escolha um desafio, tente resolver em várias linguagens diferentes e compare os resultados. É assim que o cérebro cresce no modo dev ninja! 💪

    🔗 #DIO #PensamentoComputacional #LogicaDeProgramacao #Java #CSharp #Python #JavaScript #Desenvolvimento #DesafioDeCodigo #MarcosAugusto

    Compartilhe
    Comentários (2)
    Marcos Silva
    Marcos Silva - 31/07/2025 17:05

    🥇 O desafio que mais ajuda iniciantes a "virarem a chave" no raciocínio lógico é o FizzBuzz.

    🔍 Por quê?

    1. Força o pensamento em múltiplas condições

    Você precisa analisar várias regras ao mesmo tempo (múltiplos de 3, 5, ambos ou nenhum). Isso obriga o cérebro a sair da linha reta do if simples e começar a entender encadeamentos lógicos.

    2. Introduz ordem de verificação

    A ordem das condições afeta o resultado. Se você inverter os ifs, tudo dá errado. Isso desperta uma percepção fundamental: não basta saber a lógica, tem que saber aplicá-la com estratégia.

    3. Tem padrão, mas não é trivial

    É um desafio com padrão claro, mas que não pode ser resolvido só com “intuição”. O iniciante precisa raciocinar passo a passo, e isso treina exatamente o que chamamos de pensamento computacional.

    4. É um clássico do mercado

    Vários recrutadores ainda usam o FizzBuzz como filtro de quem sabe programar de verdade. E não é por preguiça, é porque ele realmente mostra se o dev entende controle de fluxo, condições compostas e estrutura de repetição.

    Comparando com os outros:

    • Par ou Ímpar: Excelente para dar os primeiros passos, mas é muito direto. Ajuda a aprender if, % e else. Ideal como primeiro contato, mas não exige raciocínio elaborado.
    • Soma dos Elementos: Ótimo para treinar loops e acumuladores. Serve como ponte entre lógica básica e manipulação de estruturas (arrays). Mas ainda segue um caminho linear.
    • 🔥 FizzBuzz: É o primeiro desafio que “dá um nó leve na cabeça” — e é exatamente isso que faz a lógica começar a fazer sentido.

    🧠 Em resumo:

    Quer iniciar alguém em lógica? Comece com Par ou Ímpar. Quer ajudar a virar a chave? Manda um FizzBuzz sem dó.


    DIO Community
    DIO Community - 31/07/2025 09:29

    Excelente artigo, Marcos. Você trouxe uma visão prática e motivadora sobre como desafios de código podem fortalecer a lógica e o pensamento computacional, deixando claro que a linguagem é apenas uma ferramenta. Os exemplos em múltiplas linguagens mostram exatamente como a base lógica é universal, o que torna o aprendizado ainda mais valioso.

    Na DIO acreditamos que a lógica é o alicerce de qualquer carreira em tecnologia, e textos como o seu mostram que praticar esses fundamentos não é só útil, mas essencial para evoluir como desenvolvedor.

    Qual dos desafios que você apresentou você acha que mais ajuda os iniciantes a “virarem a chave” no raciocínio lógico: o FizzBuzz, o Par ou Ímpar ou a Soma de Elementos?