URGENTE - Ajuda com exercício (funções, loops e arrays)

1. URGENTE - Ajuda com exercício (funções, loops e arrays)

Perfil removido
removido

(usa Nenhuma)

Enviado em 05/07/2019 - 16:59h

Olá,

preciso resolver o seguinte exercício:

Uma professora de programação, cansada de que os estudantes cheguem tarde, decidiu que vai cancelar a aula se há poucos presentes.

Ela representa a entrada dos estudantes como um array de tempos de chegada tarde, em minutos. Por exemplo, se um estudante chegou 10 minutos atrasado, outro 5 minutos antes da hora, outro com 3 minutos de atraso, e outro pontual, poderá representar assim:

var alunosDaSegunda = [10, -5, 3, 0];

Com essa informação e a quantidade mínima de estudantes para que suceda o curso, a professora quer saber se a aula acontecerá. Por exemplo, supondo que a quantidade mínima de estudantes para que a aula aconteça é de 2 alunos, então o curso da segunda-feira se realizará, porque houve um estudante que foi pontual e um estudante que chegou cedo.

acontece(alunosDaSegunda, 2)
true

Mas se a quantidade mínima fosse 3, a aula não aconteceria:

acontece(alunosDaSegunda, 3)
false

Escreva as seguintes funções: 1. acontece, que diz se a aula sucederá de acordo com o array dos estudantes que entraram. 2. aberturas, que utiliza um array com os arrays dos estudantes que entraram nos outros dias, e a quantidade mínima de estudantes, e diga quais os dias em que as aulas aconteceram e quais não. Por exemplo:

aberturas([alunosDaSegunda, alunosDaTerça, alunosDaQuarta], 2)
[true, false, false]

A seguir o código que eu escrevi e os erros apresentados:

function acontece (alunosDia, quorum){
let resultado = [];
for (let i = 0; i < alunosDia.length; i++){
if (alunosDia [i] <= 0){
resultado.push (alunosDia[i]);}
if (resultado.length >= quorum) {
return true;}
}
}

function aberturas (alunosDia, quorum){
let resultadoArray = [];
for (let i = 0; i < alunosDia.length; i++){
resultadoArray.push(acontece(alunosDia[i], quorum));
}
}

ERROS

acontece([10, -5, 3, 0], 4) - deveria retornar false;
acontece([10, -5, 3, 0], 3 - deveria retornar false;

aberturas([[0, 0, 3, 0], [1, 2, 4, 5], [0, 0, -1]], 3) - undefined deepEqual [ true, false, true ];
aberturas([[0, 0, -3, 0], [1, 2, 4, 5], [0, 0, -1]], 4) - undefined deepEqual [ true, false, false ].



  


2. Re: URGENTE - Ajuda com exercício (funções, loops e arrays)

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 05/07/2019 - 18:58h

Boa noite.
Segue sugestão:
<!DOCTYPE html>
<html>
<body>
<button onclick="calcula()">RESULTADO</button>
<p id="saida"></p>
<script>
function calcula() {
var sgd = [10, -5, 3, 0], n=0, alunos=0, stt="", MinAln=2;
alunos=sgd.length;
for(n=0;n<sgd.length;n++){
(sgd[n]>0?alunos--:alunos=alunos)
}
stt=(alunos>=2) ? "Tem aula":"Não tem aula";
document.getElementById("saida").innerHTML ="Status: "+stt;
}
</script>
</body>
</html>

Importante => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


3. Re: URGENTE - Ajuda com exercício (funções, loops e arrays)

Paulo
paulo1205

(usa Ubuntu)

Enviado em 05/07/2019 - 19:24h

Você esqueceu de retornar os resultados em alguns casos.

Mas dá para simplificar mais essas funções que você fez.

function acontece(alunosDia, quorum){
var pontuais=0;
for(var i=0; i<alunosDia.length; i++)
if(alunosDia[i]<=0)
++pontuais;
return pontuais>=quorum;
}

function aberturas(alunosDia, quorum){
var resultado=[];
for(var i=0; i<alunosDia.length; i++)
resultado.push(acontece(alunosDia[i], quorum));
return resultado;
}



... “Principium sapientiae timor Domini, et scientia sanctorum prudentia.” (Proverbia 9:10)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts