Skip to content

Instantly share code, notes, and snippets.

@gabrielleme00
Created May 27, 2019 02:36
Show Gist options
  • Save gabrielleme00/cd031ee02984a9d39069dc860820fd80 to your computer and use it in GitHub Desktop.
Save gabrielleme00/cd031ee02984a9d39069dc860820fd80 to your computer and use it in GitHub Desktop.
Exercício 22 - Peso médio por faixa etária
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Ex22</title>
</head>
<body>
<h1>Peso médio por faixa etária</h1>
<button id="btn-gerar">Gerar Nova População</button>
<br><br>
<div id="resultado"></div>
<script
src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
crossorigin="anonymous"></script>
<script>
const output = $('#resultado');
// Retorna um array de objetos com idade e peso aleatórios
function gerarPopulacao(quantidade) {
let array = [];
// Para o quantidade de pessoas
for (let i = 0; i < quantidade; i++) {
// Cria um novo objeto com idade e peso
array.push({idade: 0, peso: 0});
// Atribui idade e pesos aleatórios
array[i].idade = Math.ceil(Math.random() * 50 );
array[i].peso = Math.ceil(Math.random() * 100) + 50;
}
return array;
}
// Retorna o peso médio da faixa etária de uma população
function pesoMedio(populacao, idadeMin, idadeMax) {
let media = 0;
let quantidade = 0;
// Para cada pessoa no array
populacao.forEach(pessoa => {
// Se a pessoa se encaixa na faixa etária
if (pessoa.idade >= idadeMin && pessoa.idade <= idadeMax) {
// Contabiliza a idade
media += pessoa.idade;
quantidade++;
}
});
// Divide a soma pela quantidade e faz a média
media /= quantidade;
// Se não houve divisão por 0, retorna o resultado. Senão, retorna 0
if (!isNaN(media))
return media;
else
return 0;
}
$('#btn-gerar').click(function() {
// Gera uma nova população
const pessoas = gerarPopulacao(15);
// Logs
console.log("Nova população de " + pessoas.length + " pessoas gerada...");
console.log(pessoas);
// Limpar output
output.text('');
// Mostrar os resultados
output.append("<b>De 01 a 10 anos:</b> " + pesoMedio(pessoas, 1, 10) + "<br>");
output.append("<b>De 11 a 20 anos:</b> " + pesoMedio(pessoas, 11, 20) + "<br>");
output.append("<b>De 21 a 30 anos:</b> " + pesoMedio(pessoas, 21, 30) + "<br>");
output.append("<b>De 31 a 99 anos:</b> " + pesoMedio(pessoas, 31, 99) + "<br>");
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment