Ajuda for each

4 respostas
akumaldo

Olá pessoal do fórum!:smiley:

meu…não to entedendo como funciona esses dois metodos…POR FAVOR ALGUÉM ME EXPLICAAAA :shock:

é um código que lista as notas dos alunos em uma tabelinha…

int [][] gradeNotas = {{88,83,84},{32,45,87},{100,67,89}};


public void saidaBarraGrade()
	{
		System.out.println("Distribuição da grade: ");
		
		int frequencia[] = new int[ 11 ];
	
		for(int interator[]: gradeNotas)
		{
			
			for(int grade : interator)
			{
			++frequencia[ grade/10 ];//NOSSA O QUE É ISSO??
			}
		}
		
		for( int count = 0; count < frequencia.length;count++)
		{
			if (count == 10)
				System.out.printf("%5d: ", 100);
			else
				System.out.printf("%02d-%02d: ",
				 count*10,count * 10 + 9);
			
		for (int aster = 0; aster< frequencia[count];aster++)
			System.out.print("*"); //COMO DA CERTO ISSO??COMO??
		
		System.out.println("");
			
		}
	}



public void saidaGrade()
	{
		System.out.println("As grades são:\n");
		System.out.print("              ");
		
		for(int test=0;test< gradeNotas[0].length;test++)
			System.out.printf("Test %d ", test+1);
		
		System.out.println("Media");
		
		for(int estudante=0;estudante<gradeNotas.length;estudante++)
		{
			System.out.printf("Estudante %2d", estudante+1);
			
			for(int test:gradeNotas[ estudante ])
				System.out.printf("%8d", test);
		System.out.printf("%9.2f\n",getMedia(gradeNotas[ estudante ]));
		}
	}

Assim…chega nos for each não to entendendo nem ferrando! principalmente aonde assinalei!! ajudem??>

4 Respostas

T
++frequencia[ grade/10 ];//NOSSA O QUE É ISSO??

Vamos por partes - isso é equivalente a:

frequencia[ grade/10 ] = frequencia[ grade/10 ]  + 1;
akumaldo

Isso eu sei…eu entendi isso…mas eu to perguntando como dá certo…como ele consegue ajuntar as notas iguais no array entendeu? não entendi a lógica!
:shock:

T

Ah, seu problema é de fazer contas :frowning: , não de programação - não é que você não entendeu o “for each”. Vamos lá.

Digamos que você tenha notas de 0 a 100.

O tal programa deve gerar um “histograma” que é uma contagem das notas que foram distribuídas entre 0 a 100, por intervalos de 10 - ou seja, ele conta as notas de 0 a 9 no primeiro intervalo (e totaliza em frequencia[0]), de 10 a 19 no segundo (frequencia[1]), de 20 a 29 no terceiro (frequencia[2]), e assim por diante, até chegar a 100.

A tal “divisão por 10” (puxa vida, você não explicou que você não tinha entendido porque é que o gajo tinha dividido por 10) é que faz com que ele já some as contagens das notas nos intervalos certos. Se você dividir 88 por 10, por exemplo, dá 8 (ou seja, ++frequencia [88/10] é o mesmo que ++frequencia[8].

akumaldo

thingol:
Ah, seu problema é de fazer contas :frowning: , não de programação - não é que você não entendeu o “for each”. Vamos lá.

Digamos que você tenha notas de 0 a 100.

O tal programa deve gerar um “histograma” que é uma contagem das notas que foram distribuídas entre 0 a 100, por intervalos de 10 - ou seja, ele conta as notas de 0 a 9 no primeiro intervalo (e totaliza em frequencia[0]), de 10 a 19 no segundo (frequencia[1]), de 20 a 29 no terceiro (frequencia[2]), e assim por diante, até chegar a 100.

A tal “divisão por 10” (puxa vida, você não explicou que você não tinha entendido porque é que o gajo tinha dividido por 10) é que faz com que ele já some as contagens das notas nos intervalos certos. Se você dividir 88 por 10, por exemplo, dá 8 (ou seja, ++frequencia [88/10] é o mesmo que ++frequencia[8].

NOSSA!! é verdade!! agora entendi!!!
poxa que vergonha! :oops:
nossa é verdade, ele separa cada indice para alocar um certo range de notas…poxa foi você dar essa luz que consegui entender…agora ficou hiper claro!
obrigadãoooooo :smiley:

Criado 28 de junho de 2006
Ultima resposta 29 de jun. de 2006
Respostas 4
Participantes 2