Foto de Gigi A.
Gigi há 4 anos
Enviada pelo
Site

Informatica

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") }

2 respostas
Professor Paulo R.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 4 anos
Contatar Paulo

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.

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Envie uma dúvida grátis
Resposta na hora da Minerva IA e de professores particulares
Enviar dúvida
Professor Lucas M.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 4 anos
Contatar Lucas
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
 

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Precisa de outra solução? Conheça
Aulas particulares Encontre um professor para combinar e agendar aulas particulares Buscar professor