Informatica

JavaScript

Eu to tentando fazer um codigo em js para pedir que o usuario digite 5 numeros pares e dai fazer a media desses numeros e aparecer um alert com essa media e caso a pessoa digite algum numero impar, aparece vc digitou um numero impar, dai fiz assim, mas nao consigo fazer ele pedir para digitar o 5 numeros e depois dazer a media, ele ta fazendo de um numero somente. O codigo e esse. var num = 0 var media = 0 for(i=0;i<10;i++){ num = window.prompt("Digite um número") if(num % 2 == 0){ media = num/2 window.alert("A média dos números é" + media) } else window.alert(" Voce digitou um numero Ímpar") }

Foto de Gigi A.
Gigi perguntou há 4 anos

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
2 respostas
0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Paulo R.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 4 anos

Olá Gigi, tudo bem?

Ao final dessa resposta vou pontuar algumas coisas na solução que estou enviando. 

Bom acredito que o que você queira alcançar esteja no código abaixo:

 

const TOTAL = 5; // constante que se refere ao total de números pares a serem digitados.
let num = 0;
let acumulador = 0;
let media = 0;
let stringTotal = "";
let i = 0;

/* Enquanto você não tiver 5 números pares repita */
while(i < TOTAL) {
num = window.prompt("Digite um número");
if (num % 2 == 0) {
acumulador += parseInt(num); // Acumula os pares.
stringTotal = stringTotal + (i !== TOTAL ? num + " + " : num);
i++; //Seu incremento só será feito quando um número for par
} else {
window.alert(" Voce digitou um numero Ímpar");
}
}

media = acumulador / TOTAL;
window.alert("A soma é: " + stringTotal + " = " + acumulador);
window.alert("A média dos números é " + media);

 
OBS: CASO QUEIRA VER O CÓDIGO ACIMA RODANDO ONLINE, ACESSE O MEU repl.it que fiz dele: https://repl.it/join/twwxaxwv-paulo_raoni
 
 
PONTOS A SEREM NOTADOS:
 
1- PERIGO! Evite ao máximo usar VAR, sempre prefira LET ou CONST para declaração de variáveis. Digo isso porque a palavra reservada VAR gera diversos efeitos colaterais e está sujeito ao hoisting que é algo que se você não conhecer pode causar grandes malefícios ao seu código.

2- No código acima, que já está comentado devidamente, basicamente eu estou utilizando o loop WHILE ao invés de FOR (da sua solução original) porque ao meu ver ele se encaixa melhor no seu problema, pois você só vai poder sair do loop quando tiver 5 números pares (ou seja, TOTAL que é a constante declarada). 

3- Outra coisa que eu fiz foi, primeiro criar uma variável para acumular os valores (acumulador), e depois foi tirar o cálculo de média de dentro do loop, pois essa média só será calculada ao final da soma.

4- Um bônus que eu fiz e você vai reparar, é ir concatenando os números digitados em uma string para simular uma expressão matemática. Visualmente fica bastante interessante. 

5- Por fim, caso queira saber mais, você pode entrar em contato comigo, ou assistir as minhas aulas no meu canal no YouTube, onde eu ensino tudo isso que eu falei e mais: https://www.youtube.com/braziliandev


Então é isso. Espero ter te ajudado, e qualquer dúvida não exite em me contatar pra trocarmos uma ideia.
 
Um abraço.

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Lucas M.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 4 anos
let num = 1 ;
let acm = 0;
let media;
let i = 0
const TOTAL = 5;
while(i <= TOTAL){ // enquanto i < total que é 5
num = prompt("informe 5 números: ") // entrada de dados de 5 números

 

if(num % 2 ===0){  // verifica se é par
acm += num;   // guarda o número no acumulador
i++; // contagem incremento i++
 
}else{
alert("O número informado é ímpar") // caso contrário é ímpar
}
 
}
media = acm / TOTAL;// faz o cálculo da média
alert("A média dos números pares é " +media)// exibi a media
 
 
 
 
seguindo os paradigmas programação estruturada nesse exercício: 
 
- Use let em vez de var, pois ai você está usando o ecmascript 6.
- const são constantes que não durante a execucação do código.
- Use while para fazer a comparação, pois ela é necessária nesse exemplo.
- Cuidados com os erros de syntax
 

Professores particulares de JavaScript

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 150 / h
Paulo R.
Rio de Janeiro / RJ
Paulo R.
4,3 (6 avaliações)
Horas de aulas particulares ministradas 7 horas de aula
Tarefas resolvidas 4 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
JavaScript - Estrutura Condicional e operadores lógicos. Expressões lógicas. JavaScript - Back-End JavaScript Básico
Graduação: Análise e Desenvolvimento de Sistemas (UNICARIOCA)
Desenvolvedor de Sistemas Fullstack. Aulas de JavaScript/Nodejs, Programação, Informática Geral, HTML, CSS.
R$ 70 / h
Vinícius B.
Santo André / SP
Vinícius B.
5,0 (13 avaliações)
Horas de aulas particulares ministradas 21 horas de aula
Tarefas resolvidas 5 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
JavaScript - Estrutura Condicional e operadores lógicos. Expressões lógicas. JavaScript - Estrutura de Repetição Condicional JavaScript - Back-End
MBA: Business Intelligence (Faculdade Descomplica)
Te ensino a programar. Professor de programação, com 5 anos de atuação em .net, sql, entity framework, scrum etc.
R$ 50 / h
Gustavo A.
Campina Grande / PB
Gustavo A.
5,0 (2 avaliações)
Horas de aulas particulares ministradas 7 horas de aula
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
JavaScript - Estrutura Condicional e operadores lógicos. Expressões lógicas. JavaScript Básico JavaScript - CSS
Graduação: Engenharia da Computação (IFPB - Campus Campina Grande )
Desenvolvedor web python e javascript. Acompanhamento particular em python, html,css e javascript