Jump to content
Fórum Script Brasil
  • 0

Ajuda para resolver exercício com funções, arrays e loops


Question

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 <= 0){
    resultado.push (alunosDia);}
    if (resultado.length >= quorum) {
    return true;}
    }
}
    
function aberturas (alunosDia, quorum){
    let resultadoArray = [];
    for (let i = 0; i < alunosDia.length; i++){
    resultadoArray.push(acontece(alunosDia, 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 ].

Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Da pra fazer assim

function acontece (alunosDia, quorum){
    let presentes = 0;
    for (let i = 0; i < alunosDia.length; i++){
      if (alunosDia[i] <= 0) presentes++; // Tem que usar o [i] para acessar o item dentro do array
      if (presentes >= quorum) return true;
    }
    return false; // Estava faltando era esse return
}
function aberturas (alunosDia, quorum){
    let resultadoArray = [];
    for (let i = 0; i < alunosDia.length; i++){
    	resultadoArray.push(acontece(alunosDia[i], quorum)); // Tem que usar o [i] para acessar o item dentro do array
    }
    return resultadoArray; // Estava faltando era esse return
}

Alterei pra um contador  em vez do array que você colocou, mas da pra manter do jeito que você fez mesmo

Link to post
Share on other sites
  • 0
Em 05/07/2019 em 17:28, camisbales disse:

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 <= 0){
    resultado.push (alunosDia);}
    if (resultado.length >= quorum) {
    return true;}
    }
}
    
function aberturas (alunosDia, quorum){
    let resultadoArray = [];
    for (let i = 0; i < alunosDia.length; i++){
    resultadoArray.push(acontece(alunosDia, 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 ].

amiga você pode me dizer o que significa quorum? fiquei confusa

Link to post
Share on other sites
  • 0
Em 22/05/2020 em 22:45, dev_iniciante disse:

amiga você pode me dizer o que significa quorum? fiquei confusa

Quantidade mínima necessária de pessoas para que uma meta seja atingida

Ex: A votação da lei XXXX foi adiada no congresso pois não havia quorum (quantidade mínima de deputados necessários para que uma lei seja votada).

Edited by TnToschi
erro de ortografia
Link to post
Share on other sites
  • 0
Em 05/07/2019 em 17:28, camisbales disse:

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á,

Mas em que parte do código esta condição se aplica?

return true;
    }
    return false;

esta parte também não entendi... alguém poderia me explicar?

P.S. Oi pessoal, tudo bem?

Sou iniciante nesta área de programação acabei de me cadastrar no fórum, exatamente para fazer estes questionamentos... Espero que alguém me responda...

Obrigado! 

Edited by Nelson de Vasconcelos
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148692
    • Total Posts
      644524
×
×
  • Create New...