3
respostas

Código com erro na formulação.

Pessoal, gostaria de apontar um erro. Do jeito que o código está formulado, o retorno dele será o número 8, quando na verdade deveria ser, 7.888888888888889.

Da maneira que o código foi estruturado, ele estaria fazendo a seguinte conta

var conta1 = 10/4; var conta2 = 6.5/4; var conta3 = 8/4; var conta4 = 7.5/4; var conta5 = 9/3; var conta6 = 2* (6/3); var conta7 = 8.5/2; var conta8 = 9.5/2;

var mediaErrada = (conta1 + conta2 + conta3 + conta4 + conta5 + conta6 + conta7 + conta8)/3

Para que o código retorne o valor correto, deveria ter sido estruturado da seguinte maneira:

const notas1 = [10 , 6.5, 8 ,7.5];
const notas2 = [9  , 6  , 6];
const notas3 = [8.5, 9.5];
const notasGerais = [notas1, notas2, notas3];
let somaTudo = 0
let tamanhoFinal = 0

for (i = 0 ; i < notasGerais.length ; i++) {

    tamanhoFinal = tamanhoFinal + notasGerais [i].length;

    for (j = 0 ; j < notasGerais [i].length ; j++) {

        somaTudo = somaTudo + notasGerais [i][j];

    }

}

const media = somaTudo/tamanhoFinal;

console.log (media);

Espero ter ajudado!

3 respostas

Boa tarde Enzo, o objetivo deste código, não é tirar uma media simples de todos os números dos arrays, mas fazer uma media de cada array individualmente e depois tirar a media das medias, então temos as contas como:

media simples de cada array:
(10 + 6.5 + 8 + 7.5)/4 = 8
(9 + 6 + 6)/3 = 7
(8.5 + 9.5)/2 = 9

Media das medias:
(8 + 7 + 9)/3 = 8

Espero que tenha entendido, o seu código é valido, porem nesse caso o objetivo é um pouco diferente, por isso a diferença de resultados. Continue se esforçando e bons estudos.

Estava com o mesmo pensamento do Enzo, porém ao chegar no tópico e ler a resposta do Leonardo as coisas ficaram mais claras! Obrigado!

E eu achando que eu era especial por ter notado isso... ;-;