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 ?
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 ?
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.