Variáveis, Tipos e Condicionais em JS
Todos os exercícios abaixo pedem os dados com prompt() e mostram o resultado com alert(). Lembre-se: prompt() sempre devolve uma string, então valores numéricos precisam ser convertidos com Number(...) antes de qualquer cálculo ou comparação.
Exercício 1: Calculadora de IMC
Arquivo: imc.html
Crie um programa que pergunte ao usuário o peso (kg) e a altura (m), calcule o Índice de Massa Corporal (peso / altura²) e informe a classificação correspondente: abaixo do peso (IMC menor que 18.5), peso normal (18.5 a 24.9), sobrepeso (25 a 29.9) ou obesidade (30 ou mais).
Resultado esperado (peso 70, altura 1.75):
IMC: 22.857142857142858 - Peso normal
Exercício 2: Verificador de Triângulo
Arquivo: triangulo.html
Crie um programa que pergunte três medidas de lados de um triângulo. O programa deve avisar se as medidas não formam um triângulo válido (quando algum lado é maior ou igual à soma dos outros dois) e, caso formem, dizer se o triângulo é equilátero (os três lados iguais), isósceles (dois lados iguais) ou escaleno (todos diferentes).
Resultado esperado (lados 4, 5, 6):
Escaleno
Teste também com: 2, 2, 10 (deve dar “Não forma um triângulo”) e 5, 5, 5 (deve dar “Equilátero”).
Exercício 3: Desconto Progressivo
Arquivo: desconto.html
Crie um programa de uma loja online que pergunte o valor da compra e calcule o valor final já com desconto, seguindo a tabela: compras de R$500 ou mais têm 20% de desconto, de R$200 a R$499,99 têm 10%, de R$100 a R$199,99 têm 5%, e abaixo disso não há desconto. O programa deve exibir o percentual aplicado e o valor final.
Resultado esperado (valor da compra 300):
Desconto: 10% - Valor final: R$ 270
Exercício 4: Ano Bissexto
Arquivo: bissexto.html
Crie um programa que pergunte um ano e diga se ele é bissexto, seguindo a regra oficial do calendário: um ano é bissexto se for divisível por 4, exceto se também for divisível por 100 — a menos que seja divisível por 400 também.
Resultado esperado (ano 2000):
2000 é bissexto
Teste também com: 1900 (não é bissexto, mesmo divisível por 4) e 2024 (é bissexto).
Exercício 5: Sistema de Login
Arquivo: login.html
Crie um programa que tenha um usuário e uma senha corretos fixados no código (defina os valores você mesmo, ex: "admin" e "1234"). O programa deve perguntar o usuário e a senha digitados e informar exatamente qual foi o problema, quando houver: se o usuário estiver errado, diga que o usuário não foi encontrado; se o usuário estiver certo mas a senha errada, diga que a senha está incorreta; se os dois estiverem certos, libere o acesso.
Resultado esperado (usuário admin, senha 1234, sendo esses os valores corretos):
Acesso permitido
Teste também com: um usuário errado (deve dar “Usuário não encontrado”) e o usuário certo com senha errada (deve dar “Senha incorreta”).
Exercício 6: Adivinhe o Número
Arquivo: adivinhe-numero.html
Até aqui, cada prompt() foi feito uma única vez. Para repetir uma pergunta até que uma condição pare de ser verdadeira, o JavaScript tem o laço while:
let contador = 0;
while (contador < 3) {
console.log(contador);
contador++;
}
// imprime 0, 1 e 2, parando quando contador deixa de ser menor que 3
Pense num número secreto de 1 a 10 e deixe-o fixo no código. Usando um while, crie um programa que repita a pergunta do palpite até o usuário acertar: a cada tentativa errada, avise com alert() se o palpite foi maior ou menor que o número secreto. Quando o usuário acertar, mostre uma mensagem de vitória informando quantas tentativas foram usadas.
Resultado esperado (número secreto 7, palpites digitados em sequência: 3, 9, 7):
Muito baixo! Tente um número maior.
Muito alto! Tente um número menor.
Você acertou em 3 tentativas!