Exercícios de Lógica de Programação para Iniciantes
Aprenda lógica de programação com esta lista completa de 10 exercícios progressivos, do básico ao intermediário. Cada exercício inclui enunciado, dica, pseudocódigo e solução comentada em JavaScript. Perfeito para quem está começando e quer praticar variáveis, condicionais, loops, funções e arrays. Bônus de boas-vindas até R$1.500
Por que praticar lógica de programação?
Antes de construir aplicações complexas, é fundamental dominar os fundamentos da lógica de programação. A lógica é a base de qualquer linguagem — seja JavaScript, Python ou PHP — e resolver exercícios é a forma mais eficaz de desenvolver o raciocínio computacional. Neste guia, você encontrará 10 exercícios progressivos, começando com conceitos simples como variáveis e operações, passando por condicionais e laços, até chegar a funções e arrays. Todos os exemplos são escritos em JavaScript, mas os conceitos podem ser aplicados em qualquer linguagem. Ao final, você estará mais preparado para enfrentar desafios reais de programação.
Estes exercícios complementam nossos todos os estudos de programação e são um ponto de partida para quem deseja aprender algoritmos em JavaScript ou explorar estruturas de dados em Python.
O que você vai aprender
- Variáveis e tipos de dados
- Estruturas condicionais (if/else)
- Laços de repetição (for, while)
- Funções
- Manipulação de strings e arrays
Esses tópicos são comuns em qualquer entrevista técnica e formam a espinha dorsal do desenvolvimento de software. Se você está começando agora, pratique na ordem sugerida para construir uma base sólida.
Lista de Exercícios
1. Soma de dois números
Enunciado: Faça um programa que solicite dois números ao usuário e exiba a soma deles.
Dica: Armazene os valores em variáveis e utilize o operador aritmético +.
Pseudocódigo:
Início
Escreva "Digite o primeiro número:"
Leia n1
Escreva "Digite o segundo número:"
Leia n2
soma <- n1 + n2
Escreva "Soma: ", soma
Fim
Solução em JavaScript:
// 1. Soma de dois números
let a = Number(prompt("Digite o primeiro número:"));
let b = Number(prompt("Digite o segundo número:"));
let soma = a + b;
alert("A soma é: " + soma);
2. Número par ou ímpar
Enunciado: Determine se um número fornecido pelo usuário é par ou ímpar.
Dica: O operador % (módulo) retorna o resto da divisão. Se o resto por 2 for 0, o número é par.
Pseudocódigo:
Início
Escreva "Digite um número:"
Leia num
Se num % 2 == 0 então
Escreva "O número é par."
Senão
Escreva "O número é ímpar."
Fim
Solução em JavaScript:
// 2. Par ou ímpar
let num = Number(prompt("Digite um número:"));
if (num % 2 === 0) {
alert(num + " é par.");
} else {
alert(num + " é ímpar.");
}
3. Tabuada de multiplicação
Enunciado: Exiba a tabuada de multiplicação de um número informado pelo usuário (de 1 a 10).
Dica: Use um laço for que varie de 1 a 10.
Pseudocódigo:
Início
Escreva "Digite um número para a tabuada:"
Leia n
Para i de 1 até 10 faça
Escreva n + " x " + i + " = " + (n * i)
Fim para
Fim
Solução em JavaScript:
// 3. Tabuada
let n = Number(prompt("Digite um número para a tabuada:"));
for (let i = 1; i <= 10; i++) {
console.log(n + " x " + i + " = " + (n * i));
// Use alert se preferir: alert(n + " x " + i + " = " + (n*i));
}
4. Fatorial
Enunciado: Escreva uma função que calcule o fatorial de um número inteiro não negativo n (n! = n × (n-1) × ... × 1).
Dica: Utilize recursão ou um laço de repetição. O fatorial de 0 é 1.
Pseudocódigo:
Função fatorial(n)
Se n <= 1 então
Retorne 1
Senão
Retorne n * fatorial(n - 1)
Fim função
Solução em JavaScript:
// 4. Fatorial (função recursiva)
function fatorial(n) {
if (n <= 1) return 1;
return n * fatorial(n - 1);
}
let num = Number(prompt("Digite um número para calcular o fatorial:"));
alert(num + "! = " + fatorial(num));
5. Palíndromo
Enunciado: Verifique se uma palavra (sem espaços) é um palíndromo, ou seja, se lida de trás para frente é igual.
Dica: Converta a string para minúsculas, remova espaços e compare com a versão invertida.
Pseudocódigo:
Início
Escreva "Digite uma palavra:"
Leia palavra
invertida <- ""
Para i de comprimento(palavra)-1 até 0 faça
invertida <- invertida + palavra[i]
Fim para
Se palavra == invertida então
Escreva "É palíndromo"
Senão
Escreva "Não é palíndromo"
Fim
Solução em JavaScript:
// 5. Palíndromo
let palavra = prompt("Digite uma palavra:").toLowerCase().replace(/\s/g, "");
let invertida = palavra.split('').reverse().join('');
if (palavra === invertida) {
alert("É palíndromo!");
} else {
alert("Não é palíndromo.");
}
6. Sequência de Fibonacci
Enunciado: Gere os primeiros N números da sequência de Fibonacci, onde cada termo é a soma dos dois anteriores: 0, 1, 1, 2, 3, 5, 8...
Dica: Use um array e um laço for; os dois primeiros termos são fixos (0 e 1).
Pseudocódigo:
Início
Escreva "Quantos termos da Fibonacci deseja?"
Leia N
fib[0] <- 0
fib[1] <- 1
Para i de 2 até N-1 faça
fib[i] <- fib[i-1] + fib[i-2]
Fim para
Escreva fib
Fim
Solução em JavaScript:
// 6. Fibonacci
let N = Number(prompt("Quantos termos da Fibonacci?"));
let fib = [0, 1];
for (let i = 2; i < N; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
alert("Sequência: " + fib.join(", "));
7. Média de três números
Enunciado: Calcule a média aritmética de três números fornecidos pelo usuário.
Dica: Some todos e divida por 3.
Pseudocódigo:
Início
Escreva "Digite três números:"
Leia a, b, c
media <- (a + b + c) / 3
Escreva "Média: ", media
Fim
Solução em JavaScript:
// 7. Média de três números
let x = Number(prompt("Primeiro número:"));
let y = Number(prompt("Segundo número:"));
let z = Number(prompt("Terceiro número:"));
let media = (x + y + z) / 3;
alert("Média: " + media.toFixed(2));
8. Maior de três números
Enunciado: Encontre e exiba o maior entre três números inteiros.
Dica: Use condicionais aninhadas ou operadores lógicos.
Pseudocódigo:
Início
Escreva "Digite três números:"
Leia a, b, c
Se a >= b e a >= c então
maior <- a
Senão se b >= a e b >= c então
maior <- b
Senão
maior <- c
Fim se
Escreva "Maior: ", maior
Fim
Solução em JavaScript:
// 8. Maior de três
let a = Number(prompt("Primeiro número:"));
let b = Number(prompt("Segundo número:"));
let c = Number(prompt("Terceiro número:"));
let maior;
if (a >= b && a >= c) {
maior = a;
} else if (b >= a && b >= c) {
maior = b;
} else {
maior = c;
}
alert("O maior número é: " + maior);
9. Inverter um array
Enunciado: Dado um array de números (ex: [1,2,3,4,5]), crie um novo array com os elementos na ordem inversa.
Dica: Percorra o array original de trás para frente e adicione ao novo array.
Pseudocódigo:
Início
arr <- [1, 2, 3, 4, 5]
invertido <- []
Para i de comprimento(arr)-1 até 0 passo -1 faça
adicionar arr[i] ao final de invertido
Fim para
Escreva invertido
Fim
Solução em JavaScript:
// 9. Inverter array
let original = [1, 2, 3, 4, 5];
let invertido = [];
for (let i = original.length - 1; i >= 0; i--) {
invertido.push(original[i]);
}
console.log("Original:", original);
console.log("Invertido:", invertido);
// Exiba com alert se preferir: alert("Invertido: " + invertido);
10. Contar vogais em uma string
Enunciado: Conte quantas vogais (a, e, i, o, u) existem em uma string fornecida pelo usuário (ignorando acentos).
Dica: Converta a string para minúsculo e percorra caractere por caractere verificando se pertence ao conjunto de vogais.
Pseudocódigo:
Início
Escreva "Digite uma string:"
Leia str
str <- minúsculo(str)
vogais <- 0
Para cada char em str faça
Se char in {'a','e','i','o','u'} então
vogais <- vogais + 1
Fim para
Escreva "Quantidade de vogais: ", vogais
Fim
Solução em JavaScript:
// 10. Contar vogais
let frase = prompt("Digite uma frase:").toLowerCase();
let vogais = 0;
for (let char of frase) {
if ('aeiou'.includes(char)) {
vogais++;
}
}
alert("A string contém " + vogais + " vogais.");
Perguntas Frequentes
Preciso saber JavaScript para fazer estes exercícios?
Não necessariamente. O foco é lógica de programação, e você pode usar qualquer linguagem. O JavaScript foi escolhido por sua popularidade e facilidade de teste no navegador. Se preferir, adapte os exemplos para Python, PHP ou outra linguagem.
Quanto tempo leva para completar todos?
Depende do seu ritmo, mas separar uma hora por dia durante uma semana é suficiente para absorver os conceitos. O importante é praticar com calma e entender cada solução.
Onde posso encontrar mais exercícios?
Confira nossos desafios de lógica resolvidos passo a passo e nossa coleção de estudos de lógica interativa. Também recomendamos as conversões matemáticas e programação para praticar com problemas do dia a dia.
Conclusão
Parabéns por completar os exercícios! A prática consistente é a chave para se tornar um bom programador. Lembre-se de revisitar os conceitos sempre que necessário. Para continuar seus estudos, recomendamos explorar algoritmos em JavaScript e estruturas de dados em Python. Se tiver dúvidas ou quiser um orçamento para um projeto web, entre em contato pelo WhatsApp. Bons estudos!