1
resposta

nao entendi o exercicio

eu nao entendi a proposta do exercicio o porque do loop de repetiçao nos graficos, e tbm achei muito complicado tiver que recorrer ah soluçao eh me sentir frustado por nao ter conseguido fazer sozinho.

queria uma ajudar para entender melhor ?

1 resposta

Olá, Raí, como você está? Espero que esteja bem!

Obrigada pelo aguardo da resposta.

Nesse exercício, estamos lidando com o arrays pequenos, ambos com apenas quatro elementos, nós sabemos exatamente o valor de cada elemento correspondente ao seu índice, com isso, nós até poderíamos realizar a operação com verificação de condições, o que geraria mais linhas de códigos repetidas. Chegaríamos a mesma solução, porém levaríamos mais tempo e o nosso código não estaria “limpo”, pois teria várias linhas de código fazendo a mesma coisa. Por isso optamos, utilizar um laço.

Na função desenhaBarras, o nosso principal objetivo é desenhar barras uma acima da outra. Para isso, utilizaremos a função desenhaTexto que será o título, a função desenhaRetangulo que ira desenhar os retangulos a cada iteração do laço.

O nosso laço tem o objetivo de recuperar o valor da série(serie⁣[i]), que nada mais é do que a altura do retângulo. No nosso for, temos a variável de controle i=0, a condição de parada i<serie.length, que será todo o tamanho do array serie, e o iterador i++. Como na função desenhaRetangulo tem o parâmetro altura, e já que guardamos previamente esse valor na variável altura, ele receberá como argumento essa serie[i].

Segue o código com os comentários de cada operação feita :

function desenhaBarra(x, y, serie, cores, texto) {
    //Espera-se receber como argumento, o valor da posicao x, posicao y, um array serie(percentual), um array cores, um texto(ano)
    desenhaTexto(x, y - 10, texto); // chamando a função desenhaTexto, repare que o y-10 serve para o texto nao grudar na barra(ou seja eh apenas por estetica)

    //Nesse laco o objetivo eh recuperar o valor da serie, que corresponde a altura do retangulo
    var somaAltura = 0;           //Variável que será incrementada por altura em cada iteração
    for (var i = 0; i < serie.length; i++) {            //o laco pecorrera todo array serie, iterando uma unidade
        var altura = serie[i];                      //atribuindo a variavel altura, o elemento correspondente da posicao atual
        desenhaRetangulo(x, y + somaAltura, 50, altura, cores[i]);  //Desenha um retangulo a cada iteracao, e conforme a cor correspondente do iterador.
        somaAltura = somaAltura + altura;
    }
}

Sinto muito pela frustração, mas continue praticando que irá superar essa dificuldade.

Reforço que estarei a disposição para tirar dúvidas.

Abraços.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!