Gostou do nosso conteúdo? Te ajudou?
Nos ajude também! Faça um PIX, de qualquer valor:
programacao.progressiva@gmail.com

Exercícios de Laços e Loops em JavaScript

Lista de Exercícios usando Laços em JavaScript
  1. Faça um programa que peça uma nota, entre zero e dez. Mostre uma mensagem caso o valor seja inválido e continue pedindo até que o usuário informe um valor válido. 
  2. Faça um programa que leia um nome de usuário e a sua senha e não aceite a senha igual ao nome do usuário, mostrando uma mensagem de erro e voltando a pedir as informações. 
  3. Faça um programa que leia e valide as seguintes informações:
    1. Nome: maior que 3 caracteres;
    2. Idade: entre 0 e 150;
    3. Salário: maior que zero;
    4. Sexo: 'f' ou 'm';
    5. Estado Civil: 's', 'c', 'v', 'd';
    Dica: se sua variável é texto, o tamanho dela está armazenado em: texto.length

    1. Supondo que a população de um país A seja da ordem de 80000 habitantes com uma taxa anual de crescimento de 3% e que a população de B seja 200000 habitantes com uma taxa de crescimento de 1.5%. Faça um programa que calcule e escreva o número de anos necessários para que a população do país A ultrapasse ou iguale a população do país B, mantidas as taxas de crescimento.
    2. Altere o programa anterior permitindo ao usuário informar as populações e as taxas de crescimento iniciais. Valide a entrada e permita repetir a operação.
    3. Faça um programa que imprima na tela os números de 1 a 20, um abaixo do outro. Depois modifique o programa para que ele mostre os números um ao lado do outro.
    4. Faça um programa que leia 5 números e informe o maior número.
    5. Faça um programa que leia 5 números e informe a soma e a média dos números. 
    6. Faça um programa que imprima na tela apenas os números ímpares entre 1 e 50.
    7. Faça um programa que receba dois números inteiros e gere os números inteiros que estão no intervalo compreendido por eles.
    8. Altere o programa anterior para mostrar no final a soma dos números.
    9. Desenvolva um gerador de tabuada, capaz de gerar a tabuada de qualquer número inteiro entre 1 a 10. O usuário deve informar de qual numero ele deseja ver a tabuada. A saída deve ser conforme o exemplo abaixo:
      • Faça um programa que peça dois números, base e expoente, calcule e mostre o primeiro número elevado ao segundo número. Não utilize a função de potência da linguagem. 
      • Faça um programa que peça 10 números inteiros, calcule e mostre a quantidade de números pares e a quantidade de números ímpares.
      • A série de Fibonacci é formada pela sequência 1,1,2,3,5,8,13,21,34,55,... Faça um programa capaz de gerar a série até o n−ésimo termo.
        Sequência de Fibonacci com laços
      • A série de Fibonacci é formada pela sequência 0,1,1,2,3,5,8,13,21,34,55,... Faça um programa que gere a série até que o valor seja maior que 500.
      • Faça um programa que calcule o fatorial de um número inteiro fornecido pelo usuário. Ex.: 5!=5.4.3.2.1=120
        Calcular fatorial com laços
      • Faça um programa que, dado um conjunto de N números, determine o menor valor, o maior valor e a soma dos valores.
      • Altere o programa anterior para que ele aceite apenas números entre 0 e 1000.
      • Altere o programa de cálculo do fatorial, permitindo ao usuário calcular o fatorial várias vezes e limitando o fatorial a números inteiros positivos e menores que 16.
      • Faça um programa que peça um número inteiro e determine se ele é ou não um número primo. Um número primo é aquele que é divisível somente por ele mesmo e por 1.
        Números primos com laços
      • Altere o programa de cálculo dos números primos, informando, caso o número não seja primo, por quais número ele é divisível.
      • Faça um programa que mostre todos os primos entre 1 e N sendo N um número inteiro fornecido pelo usuário. O programa deverá mostrar também o número de divisões que ele executou para encontrar os números primos. Serão avaliados o funcionamento, o estilo e o número de testes (divisões) executados.
      • Faça um programa que calcule o mostre a média aritmética de N notas.
      • Faça um programa que peça para n pessoas a sua idade, ao final o programa devera verificar se a média de idade da turma varia entre 0 e 25,26 e 60 e maior que 60; e então, dizer se a turma é jovem, adulta ou idosa, conforme a média calculada.
      • Numa eleição existem três candidatos. Faça um programa que peça o número total de eleitores. Peça para cada eleitor votar e ao final mostrar o número de votos de cada candidato.
      • Faça um programa que calcule o número médio de alunos por turma. Para isto, peça a quantidade de turmas e a quantidade de alunos para cada turma. As turmas não podem ter mais de 40 alunos.
      • Faça um programa que calcule o valor total investido por um colecionador em sua coleção de CDs e o valor médio gasto em cada um deles. O usuário deverá informar a quantidade de CDs e o valor para em cada um.
      • O Sr. Manoel Joaquim possui uma grande loja de artigos de R$ 1,99, com cerca de 10 caixas. Para agilizar o cálculo de quanto cada cliente deve pagar ele desenvolveu um tabela que contém o número de itens que o cliente comprou e ao lado o valor da conta. Desta forma a atendente do caixa precisa apenas contar quantos itens o cliente está levando e olhar na tabela de preços. Você foi contratado para desenvolver o programa que monta esta tabela de preços, que conterá os preços de 1 até 50 produtos, conforme o exemplo abaixo:
        • Lojas Quase Dois - Tabela de preços
          1 - R$ 1.99
          2 - R$ 3.98
          ...
          50 - R$ 99.50
      • O Sr. Manoel Joaquim acaba de adquirir uma panificadora e pretende implantar a metodologia da tabelinha, que já é um sucesso na sua loja de 1,99. Você foi contratado para desenvolver o programa que monta a tabela de preços de pães, de 1 até 50 pães, a partir do preço do pão informado pelo usuário, conforme o exemplo abaixo:
        • Preço do pão: R$ 0.18
          Panificadora Pão de Ontem - Tabela de preços
          1 - R$ 0.18
          2 - R$ 0.36
          ...
          50 - R$ 9.00
      • O Sr. Manoel Joaquim expandiu seus negócios para além dos negócios de 1,99 e agora possui uma loja de conveniências. Faça um programa que implemente uma caixa registradora rudimentar. O programa deverá receber um número desconhecido de valores referentes aos preços das mercadorias. Um valor zero deve ser informado pelo operador para indicar o final da compra. O programa deve então mostrar o total da compra e perguntar o valor em dinheiro que o cliente forneceu, para então calcular e mostrar o valor do troco. Após esta operação, o programa deverá voltar ao ponto inicial, para registrar a próxima compra. A saída deve ser conforme o exemplo abaixo:
        • Lojas Tabajara 
          Produto 1: R$ 2.20
          Produto 2: R$ 5.80
          Produto 3: R$ 0
          Total: R$ 9.00
          Dinheiro: R$ 20.00
          Troco: R$ 11.00
          ...
      • O Departamento Estadual de Meteorologia lhe contratou para desenvolver um programa que leia as um conjunto indeterminado de temperaturas, e informe ao final a menor e a maior temperaturas informadas, bem como a média das temperaturas.
      • Os números primos possuem várias aplicações dentro da Computação, por exemplo na Criptografia. Um número primo é aquele que é divisível apenas por um e por ele mesmo. Faça um programa que peça um número inteiro e determine se ele é ou não um número primo.
      • Encontrar números primos é uma tarefa difícil. Faça um programa que gera uma lista dos números primos existentes entre 1 e um número inteiro informado pelo usuário.
      • Desenvolva um programa que faça a tabuada de um número qualquer inteiro que será digitado pelo usuário, mas a tabuada não deve necessariamente iniciar em 1 e terminar em 10, o valor inicial e final devem ser informados também pelo usuário, conforme exemplo abaixo:
        • Montar a tabuada de: 5
          Começar por: 4
          Terminar em: 7
          
          Vou montar a tabuada de 5 começando em 4 e terminando em 7:
          5 X 4 = 20
          5 X 5 = 25
          5 X 6 = 30
          5 X 7 = 35
          Obs: Você deve verificar se o usuário não digitou o final menor que o inicial.
      • Uma academia deseja fazer um senso entre seus clientes para descobrir o mais alto, o mais baixo, a mais gordo e o mais magro, para isto você deve fazer um programa que pergunte a cada um dos clientes da academia seu código, sua altura e seu peso. O final da digitação de dados deve ser dada quando o usuário digitar 0 (zero) no campo código. Ao encerrar o programa também deve ser informados os códigos e valores do clente mais alto, do mais baixo, do mais gordo e do mais magro, além da média das alturas e dos pesos dos clientes
      • Um funcionário de uma empresa recebe aumento salarial anualmente: Sabe-se que:
        1. Esse funcionário foi contratado em 1995, com salário inicial de R$ 1.000,00;
        2. Em 1996 recebeu aumento de 1,5% sobre seu salário inicial;
        3. A partir de 1997 (inclusive), os aumentos salariais sempre correspondem ao dobro do percentual do ano anterior. Faça um programa que determine o salário atual desse funcionário. Após concluir isto, altere o programa permitindo que o usuário digite o salário inicial do funcionário.
      • Foi feita uma estatística em cinco cidades brasileiras para coletar dados sobre acidentes de trânsito. Foram obtidos os seguintes dados:
        1. Código da cidade;
        2. Número de veículos de passeio (em 1999);
        3. Número de acidentes de trânsito com vítimas (em 1999). Deseja-se saber:
        4. Qual o maior e menor índice de acidentes de transito e a que cidade pertence;
        5. Qual a média de veículos nas cinco cidades juntas;
        6. Qual a média de acidentes de trânsito nas cidades com menos de 2.000 veículos de passeio.
      • Faça um programa que receba o valor de uma dívida e mostre uma tabela com os seguintes dados: valor da dívida, valor dos juros, quantidade de parcelas e valor da parcela.
        • Os juros e a quantidade de parcelas seguem a tabela abaixo:
          Quantidade de Parcelas  % de Juros sobre o valor inicial da dívida
          1       0
          3       10
          6       15
          9       20
          12      25
          Exemplo de saída do programa:
          Valor da Dívida Valor dos Juros Quantidade de Parcelas  Valor da Parcela
          R$ 1.000,00     0               1                       R$  1.000,00
          R$ 1.100,00     100             3                       R$    366,00
          R$ 1.150,00     150             6                       R$    191,67
      • O cardápio de uma lanchonete é o seguinte:
        • Especificação   Código  Preço
          Cachorro Quente 100     R$ 1,20
          Bauru Simples   101     R$ 1,30
          Bauru com ovo   102     R$ 1,50
          Hambúrguer      103     R$ 1,20
          Cheeseburguer   104     R$ 1,30
          Refrigerante    105     R$ 1,00
          Faça um programa que leia o código dos itens pedidos e as quantidades desejadas. Calcule e mostre o valor a ser pago por item (preço * quantidade) e o total geral do pedido. Considere que o cliente deve informar quando o pedido deve ser encerrado.
      • Em uma eleição presidencial existem quatro candidatos. Os votos são informados por meio de código. Os códigos utilizados são:
        • 1 , 2, 3, 4  - Votos para os respectivos candidatos 
          (você deve montar a tabela ex: 1 - Jose/ 2- João/etc)
          5 - Voto Nulo
          6 - Voto em Branco
          Faça um programa que calcule e mostre:
        • O total de votos para cada candidato;
        • O total de votos nulos;
        • O total de votos em branco;
        • A percentagem de votos nulos sobre o total de votos;
        • A percentagem de votos em branco sobre o total de votos. Para finalizar o conjunto de votos tem-se o valor zero.
      • Desenvolver um programa para verificar a nota do aluno em uma prova com 10 questões, o programa deve perguntar ao aluno a resposta de cada questão e ao final comparar com o gabarito da prova e assim calcular o total de acertos e a nota (atribuir 1 ponto por resposta certa). Após cada aluno utilizar o sistema deve ser feita uma pergunta se outro aluno vai utilizar o sistema. Após todos os alunos terem respondido informar:
        1. Maior e Menor Acerto;
        2. Total de Alunos que utilizaram o sistema;
        3. A Média das Notas da Turma.
          Gabarito da Prova:
          
          01 - A
          02 - B
          03 - C
          04 - D
          05 - E
          06 - E
          07 - D
          08 - C
          09 - B
          10 - A
          Após concluir isto você poderia incrementar o programa permitindo que o professor digite o gabarito da prova antes dos alunos usarem o programa.
      • Em uma competição de salto em distância cada atleta tem direito a cinco saltos. No final da série de saltos de cada atleta, o melhor e o pior resultados são eliminados. O seu resultado fica sendo a média dos três valores restantes. Você deve fazer um programa que receba o nome e as cinco distâncias alcançadas pelo atleta em seus saltos e depois informe a média dos saltos conforme a descrição acima informada (retirar o melhor e o pior salto e depois calcular a média). Faça uso de uma lista para armazenar os saltos. Os saltos são informados na ordem da execução, portanto não são ordenados. O programa deve ser encerrado quando não for informado o nome do atleta. A saída do programa deve ser conforme o exemplo abaixo:
        Atleta: Rodrigo Curvêllo
        
        Primeiro Salto: 6.5 m
        Segundo Salto: 6.1 m
        Terceiro Salto: 6.2 m
        Quarto Salto: 5.4 m
        Quinto Salto: 5.3 m
        
        Melhor salto:  6.5 m
        Pior salto: 5.3 m
        Média dos demais saltos: 5.9 m
        
        Resultado final:
        Rodrigo Curvêllo: 5.9 m
      • Em uma competição de ginástica, cada atleta recebe votos de sete jurados. A melhor e a pior nota são eliminadas. A sua nota fica sendo a média dos votos restantes. Você deve fazer um programa que receba o nome do ginasta e as notas dos sete jurados alcançadas pelo atleta em sua apresentação e depois informe a sua média, conforme a descrição acima informada (retirar o melhor e o pior salto e depois calcular a média com as notas restantes). As notas não são informados ordenadas. Um exemplo de saída do programa deve ser conforme o exemplo abaixo:
        Atleta: Aparecido Parente
        Nota: 9.9
        Nota: 7.5
        Nota: 9.5
        Nota: 8.5
        Nota: 9.0
        Nota: 8.5
        Nota: 9.7
        
        Resultado final:
        Atleta: Aparecido Parente
        Melhor nota: 9.9
        Pior nota: 7.5
        Média: 9,04
      • Faça um programa que peça um numero inteiro positivo e em seguida mostre este numero invertido.
        • Exemplo:
            12376489
            => 98467321
      • Faça um programa que mostre os n termos da Série a seguir:
        •   S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + ... + n/m. 
          Imprima no final a soma da série.
      • Sendo H= 1 + 1/2 + 1/3 + 1/4 + ... + 1/N, Faça um programa que calcule o valor de H com N termos.
      • Faça um programa que mostre os n termos da Série a seguir:
        •   S = 1/1 + 2/3 + 3/5 + 4/7 + 5/9 + ... + n/m. 
          Imprima no final a soma da série.

      22 comentários:

      1. Olá,boa noite
        Na primeira questão de Laços de Repetição, não estou conseguindo sair do enquanto. Podem me ajudar?

        const nota = parseInt(prompt('Informe um número entre 0 e 10'))
        function validacao(n){
        while (n < 0 || n > 10) {
        parseInt(prompt('Nota inválida, Informe um número entre 0 e 10'))
        if (n >= 0 && n <= 10){
        console.log(`Sua nota = ${n}`)
        }
        }
        }
        validacao(nota)

        ResponderExcluir
        Respostas
        1. acho q é pq ta faltando um break

          Excluir
        2. Falta um retorn no fim da função

          Excluir
        3. Voce ja deve ter conseguido, porem caso alguem tenha duvidas no futuro, eu consegui a numero 1 assim:

          let nota1 = parseInt(prompt("Digite uma nota entre 0 e 10"))

          if (nota1 >=0 && nota1 <=10){
          alert("Obrigado")
          }

          while (nota1 < 0 || nota1 >10){
          prompt("Invalido, digite novamente");
          break;

          }

          Excluir
        4. Pow irmão, eu acho que nem precisava desse seu if, e o break quando você coloca e essa mais de 2 vezes o programa não pede novamente, ele já fecha, se tiver o break ele vai ficar rodando até ele der false e cair no fechamento do while.
          Veja aqui ↓↓↓↓
          let n1 = parseFloat(prompt("Digite uma nota entre zero e Dez: "))

          while (n1 <0 || n1 >10){
          alert('Nota Inválida')
          n1 = parseFloat(prompt("Digite uma nota entre zero e Dez: "))
          }
          alert("Nota válida " + n1)

          Excluir
        5. Eu resolvi o exercício 01 dessa forma:

          let n = parseInt(prompt("Informe uma nota entre 0 e 10"));
          while (n < 0 || n > 10) {
          alert("Valor inválido.");
          n = parseInt(prompt("Informe uma nota entre 0 e 10"));
          }
          if (n >= 0 || n <= 10) {
          alert(`Obrigado por atribuir a nota ${n}! `);
          }

          Excluir
        6. Não é necessário o uso do if, Thamara! Somente com o while conseguimos fazer a validação da expressão.

          let nota = prompt("Insira uma nota entre 0 e 10")

          while (nota < 0 || nota > 10) {
          alert('Valor inválido')
          nota = prompt('Insira um novo valor:')
          }
          alert("Nota registrada com sucesso!")

          Excluir
      2. Eu resolvi o exercício 1 da seguinte maneira:
        function nota(){
        var nota = prompt('Digite uma nota entre 0 e 10:')
        if(nota <=10 && nota > 0){
        alert(`A nota ${nota } foi armazenada`)
        }else{
        while(nota > 10 || nota < 0){
        var nota = prompt('Digite um valor válido:')
        }
        alert(`A nota ${nota } foi armazenada`)
        }


        }

        ResponderExcluir
      3. Eu fiz de uma outra maneira!

        function pedeNome(a){
        a = parseInt(prompt("Digite um numero entre 1 e 10 "));
        if(a > 10){
        console.log("Por favor digite um numero entre 1 e 10");
        pedeNome();
        } else {
        console.log("O numero informado e: "+a);

        }

        ResponderExcluir
      4. eu resolvi dessa maneira o exercicio numero 1
        function umao10()
        {

        var notas1ao10=parseInt(prompt("digite um valor entre 1 ao 10"));

        while(notas1ao10 > 10 || notas1ao10 < 0)
        {
        notas1ao10=parseInt(prompt("digite um valor entre 1 e 10 novamente"));
        }
        alert("o valor digitado é entre 1 e 10 e é o numero ="+notas1ao10);
        }

        ResponderExcluir
      5. Resposta da pergunta 1

        var n;
        var n = parseInt(prompt("Digite uma nota entre zero e dez"));
        if ((n<0) || (n>10))
        {console.log("Valor inválido");}
        while ((n<0) || (n>10))
        {var n = parseInt(prompt("Digite uma nota entre zero e dez"));
        if ((n<0) || (n>10))
        {console.log("Valor inválido");}
        else {}}
        console.log("Valor válido")
        console.log("Fim")

        ResponderExcluir
      6. Resposta da pergunta 1:

        var n;
        var n = parseInt(prompt("Digite uma nota entre zero e dez"));
        if ((n<0) || (n>10))
        {console.log("Valor inválido");}
        while ((n<0) || (n>10))
        {var n = parseInt(prompt("Digite uma nota entre zero e dez"));
        if ((n<0) || (n>10))
        {console.log("Valor inválido");}
        else {}}
        console.log("Valor válido")
        console.log("Fim")

        ResponderExcluir
      7. /*Faça um programa que imprima na tela apenas os números ímpares entre 1 e 50.*/

        let numeros = [];
        let loop = 1;
        while (loop <=50){
        if(loop % 2 != 0){
        var adicionar = numeros.push(loop)
        }
        loop++;
        }
        console.log(numeros)

        ResponderExcluir
      8. Preciso de ajuda no exercicio 30

        ResponderExcluir
        Respostas
        1. Fala ai sua dúvida, o que conseguiu fazer já...pra gente saber o que você tá em dúvida.

          Excluir
      9. 14-Faça um programa que peça 10 números inteiros, calcule e mostre a quantidade de números pares e a
        quantidade de números ímpares.

        let numeros = [];
        let valoresPar = [];
        let valoresImpar = [];
        let count = 1;

        while(numeros.length <10){
        var pedir = parseInt(prompt(`Digite o ${count}º número: `));
        numeros.push(pedir);
        count++;
        }

        for(var i = 0; i< numeros.length; i++){
        if(numeros[i] % 2 == 0){
        valoresPar.push(numeros[i]);
        }else{
        valoresImpar.push(numeros[i]);
        }
        }
        alert(`Os números digitados foram esses ${numeros} e nele tem esses números pares ${valoresPar} e os números Impares ${valoresImpar}`);

        ResponderExcluir
      10. Existe algum lugar onde consiga ver a resolução de todos os exerícios ou resolução somente para os que tem link mesmo?

        ResponderExcluir
      11. Alguem sabe como resolver o exercicio 5?

        ResponderExcluir
      12. Boa tarde. minha solução do primeiro exercício foi essa:

        let isValid = false;

        while (isValid !== true) {
        let nota = parseFloat(prompt('Digite a nota entre 0 e 10: '))

        if (nota >= 0 && nota <= 10) {
        alert('Sua nota foi de: ' + nota);
        isValid = true
        } else {
        alert('Digite um valor valido');
        }
        }

        ResponderExcluir
      13. 2- minha resolução ficou assim:


        let nome =prompt ("insira seu nome de usuario")
        let senha = prompt("insira sua senha de usuario")

        while( nome === senha){
        alert ("nome e senha iguais, por favor reescreva ambos diferentes!")
        nome = prompt("recreva o nome novamente")
        senha = prompt("escreva a senha novamente")

        }alert("cadastro feito com sucesso")

        ResponderExcluir
      14. 2- resolução da questão 2

        let nome =prompt ("insira seu nome de usuario")
        let senha = prompt("insira sua senha de usuario")

        while( nome === senha){
        alert ("nome e senha iguais, por favor reescreva ambos diferentes!")
        nome = prompt("recreva o nome novamente")
        senha = prompt("escreva a senha novamente")

        }alert("cadastro feito com sucesso")

        ResponderExcluir