Skip to content

Instantly share code, notes, and snippets.

@valdiney
Last active August 29, 2015 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save valdiney/9d2087b9da30ffb829ea to your computer and use it in GitHub Desktop.
Save valdiney/9d2087b9da30ffb829ea to your computer and use it in GitHub Desktop.
Passo1: Construa um algoritmo que receba o sexo e a altura de N pessoas, armazenem esses dados em estruturas temporárias. Passo2: Calcule a altura média de todas as pessoas cadastradas. Passo3: Encontre a maior altura cadastrada. Passo4: Calcule a altura média das mulheres e a altura média dos homens. Passo5: Descubra a quantidade de mulheres ca…
<meta charset="utf-8">
<script>
window.onload = function() {
"use strict"
var masculino = [],
feminino = [],
todosOsDados = [],
sexo = 0,
altura = 0;
function recolheOsDados() {
while(sexo != 'fim' || sexo != 'Fim' || sexo != 'FIM') {
sexo = prompt('Qual é o seu sexo?'),
altura = prompt('Qual é a sua altura?');
if (sexo === 'M' || sexo === 'm') {
masculino.push(altura);
}
else if (sexo === 'F' || sexo === 'f') {
feminino.push(altura);
}
else {
console.log('Sexo indefinido');
break;
}
}
}
function TodasAsAlturas() {
for (var cont = 0; cont < masculino.length; cont++) {
todosOsDados.push(masculino[cont]);
}
for (var cont = 0; cont < feminino.length; cont++) {
todosOsDados.push(feminino[cont]);
}
}
function alturaMediaGeral() {
var soma = 0,
media = 0;
for (var cont = 0; cont < todosOsDados.length; cont++) {
soma += Number(todosOsDados[cont]);
}
media = soma / 100;
return Number(media.toFixed(3));
}
function maiorAlturaEncontrada() {
var maior = todosOsDados[0];
for (var cont = 0; cont < todosOsDados.length; cont++) {
if (maior < todosOsDados[cont]) {
maior = todosOsDados[cont];
}
}
return Number(maior);
}
function alturaMediaFeminina() {
var soma = 0,
media = 0;
for (var cont = 0; cont < feminino.length; cont++) {
soma += Number(feminino[cont]);
}
media = soma / 100;
return Number(media.toFixed(3));
}
function alturaMediaMasculina() {
var soma = 0,
media = 0;
for (var cont = 0; cont < masculino.length; cont++) {
soma += Number(masculino[cont]);
}
media = soma / 100;
return Number(media.toFixed(3));
}
function quantidadeDeHomens() {
return masculino.length;
}
function quantidadeDeMulheres() {
return feminino.length;
}
function mostraResultados() {
recolheOsDados();
TodasAsAlturas();
console.log('Media das alturas cadastradas ' + alturaMediaGeral());
console.log('Maior altura encontrada' + maiorAlturaEncontrada());
console.log('Altura media das mulheres ' + alturaMediaFeminina());
console.log('Altura media dos homens' + alturaMediaMasculina());
console.log('Quantidade de homens cadastrados ' + quantidadeDeHomens());
console.log('Quantidade de mulheres cadastradas ' + quantidadeDeMulheres());
}
mostraResultados();
}
</script>
/////////////////////////////////////////////////////////
/*
Função para testes unitários.
Com está função é possível testar cada função do programa separadamente
Os testes são:
-> Comparação de valores retornados
-> Comparação de tipo de dados retornado
*/
////////////////////////////////////////////////////////
function testeUnitario(valorEsperado,retorno,tipoDedado) {
if (retorno != valorEsperado) {
console.log('(Erro) é esperado ' + valorEsperado + ' mas retornou ' + retorno);
}
else {
console.log('Passou no teste de comparação de valores, é esperado ' + valorEsperado + ' e retornou ' + retorno);
}
if (typeof(retorno) !== tipoDedado) {
console.log('(Erro) é esperado ' + tipoDedado + ' mas retornou ' + typeof(retorno));
}
else {
console.log('Passou no teste de tipos, é esperado ' + tipoDedado + ' e retornou ' + typeof(retorno));
}
}
testeUnitario(0.066, alturaMediaFeminina(), "number");
////////////////////////////////////////////////////////
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment