GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Ajuda - Função Incompleta

Olá,
Boa noite!

Estou no seguinte enunciado tentando completar:
“Ah, mas isso não acaba aqui” - disse Ana “Eu quero saber em quantos meses houve lucro, ou seja, o saldo foi maior que zero” .
Complete a função quantidadeDeMesesComLucro.

Exemplo:
function quantidadeDeMesesComLucro(umPeriodo) {
let quantidade= ???;
for (let mes=0; mes< umPeriodo.length; mes++) {
???
}
return quantidade;
}


**E fiz o seguinte código:**

function quantidadeDeMesesComLucro(umPeriodo) {
  let quantidade= 0;
  for (let mes=0; mes< umPeriodo.length; mes++) {
    quantidade = quantidade + 1;
  }
  return quantidade;

E aparece os seguintes erros informando que a solução não passou completamente: 
quantidadeDeMesesComLucro([0, 0, 0]) é 0 
3 deepEqual 0

quantidadeDeMesesComLucro([10, -10, 2, 100]) é 3 
4 deepEqual 3

quantidadeDeMesesComLucro([-1, -2, -3]) é 0
3 deepEqual 0

Alguém pode me ajudar?
Grata!

Você não está fazendo a verificação, ou seja, se o mês do período é menor que zero (prejuízo), mas tão simplesmente incrementando uma unidade à variável quantidade a cada iteração do laço for. Que tal assim?

function quantidadeDeMesesComLucro(umPeriodo){
	let quantidade = 0;
	
	for(let mes = 0; mes < umPeriodo.length; mes++){
		if(umPeriodo[mes] < 0)
			quantidade += 1;
	}
	
	return quantidade;
}

Olá,
Desta forma a plataforma voltou com os seguintes erros:

  • quantidadeDeMesesComLucro([1]) é 1
    0 deepEqual 1

  • quantidadeDeMesesComLucro([2, 20, 20]) é 3
    0 deepEqual 3

  • quantidadeDeMesesComLucro([10, -10, 2, 100]) é 3
    1 deepEqual 3

  • quantidadeDeMesesComLucro([-1, -2, -3]) é 0
    3 deepEqual 0

Verdade, por um lapso, eu troquei o lado da comparação, ou seja, é para calcular (contar) o lucro e não o prejuízo. O certo é:

umPeriodo[mes] > 0

1 curtida

Oi, você conseguiu responder todas? Estou presa em 3 questões pra poder acabar.

Exercício 18: Contagens

“Ah, mas isso não acaba aqui” - disse Ana “Eu quero saber em quantos meses houve lucro, ou seja, o saldo foi maior que zero” .

Complete a função quantidadeDeMesesComLucro . Se você prestar atenção, notará que tem uma estrutura semelhante ao problema anterior

Exemplo:

function quantidadeDeMesesComLucro(umPeriodo) {
  let quantidade= ????;
  for (let mes=0; mes< umPeriodo.length; mes++) {
    ????
  }
  return quantidade;
}

Exercício 19: Mais contagens

Ana, vendo que somos tão produtivos, nos perguntou algo mais: agora ela quer saber quantos meses de um período houve perda.

Dizemos que há uma perda em um período em que o saldo é menor que zero.

Escreva a função quantidadeDeMesesComPerda . A estrutura da função é semelhante às que temos feito, vamos lá!

Escreva a função quantidadeDeMesesComPerda . A estrutura da função é semelhante às que temos feito, vamos lá!

function quantidadeDeMesesComPerda(umPeriodo) {
let quantidade= 1;
for (let mes=0; mes< umPeriodo.length; mes++) {
}
return quantidade;
}


Exercício 20: Filtrados

Bem na hora! , Ana nos deixou com um problema mais interessante: quer saber o saldo dos meses com lucro .

 saldosDeMesesComLucro([100, 20, 0, -10, 10])
[100, 20, 10]

Complete a função saldoDeMesesComLucro . Novamente tem uma estrutura similar com os problemas anteriores, porém não tão rápido! Esta função precisa retornar um array .

18)
function quantidadeDeMesesComLucro(umPeriodo){
let quantidade = 0;
for(let mes = 0; mes < umPeriodo.length; mes++){
if(umPeriodo[mes] > 0)
quantidade += 1;
}
return quantidade;
}
19)
function quantidadeDeMesesComPerda(umPeriodo)
{
return umPeriodo.reduce((acumulador,valorAtual)=>
{return (valorAtual <0)? acumulador +1:acumulador;},0);
}

20)
function saldoDeMesesComLucro(umPeriodo)
{
var arrayMesesLucro = [];
var filtro = umPeriodo.filter(positivo);
for (let mes=0; mes< umPeriodo.length; mes++)
{arrayMesesLucro[mes] = filtro[mes];}
return filtro;
}

function positivo(valor) {return valor > 0;}

//