Nota e comando while

8 respostas
G

Eu desenvolvi uma rotina que mostra dez notas de dez alunos.
mas na hora de eu tirar a media da sala eu não consegui obter os resultados da media. O codigo é esse abaixo.

public class nota
	{
		public static void main(String args[])
		   {
		   	int nota = 0;
		   	int aluno = 0;
		    int media;
		    int valor;
		    	while(aluno < 10)
		    	{
		    		aluno = aluno + 1;
		    		
		    		     if(aluno == 1 )
		    		     {
		    		       System.out.println("Aluno 01 nota: ****");
		    		       valor = 4;
		    		     }
		    		     if(aluno == 2 )
		    		     {
		    		       System.out.println("Aluno 02 nota: *****");
		    		       valor=5;
		    		     }
		    		     if(aluno == 3 )
		    		     {
		    		       System.out.println("Aluno 03 nota: *******");
		    		      valor=7;
		    		     }
		    		     if(aluno == 4 )
		    		     {
		    		       System.out.println("Aluno 04 nota: ****");
		    		      valor=4; 
		    		     }
		    		     if(aluno == 5 )
		    		     {
		    		       System.out.println("Aluno 05 nota: ***");
		    		       valor=3;
		    		     }
		    		     if(aluno == 6 )
		    		     {
		    		       System.out.println("Aluno 06 nota: ******");
		    		       valor=6;
		    		     }
		    		     if(aluno == 7 )
		    		     {
		    		       System.out.println("Aluno 07 nota: ******");
		    		       valor=6;
		    		     }
		    		     if(aluno == 8)
		    		     {
		    		       System.out.println("Aluno 08 nota: ********");
		    		       valor=8;
		    		     }
		    		     if(aluno == 9 )
		    		     {
		    		       System.out.println("Aluno 09 nota: ***");
		    		       valor=3;
		    		     }
		    		     if(aluno == 10 )
		    		     {
		    		       System.out.println("Aluno 10 nota: ****");
		    		      valor=4;
		    		      media = valor / aluno;
		    		      System.out.println("A media foi de:" +media);
		    		      }
		    		
		    		 }
		    		 
		    	}
		    }

Eu tentei usar while para armazenar as notas com os valores...
mas deu tudo 0.
Como resolver esta logica?

[color="red"]Editado por Felipe: use bbcode para melhorar a visualizacao do codigo[/color]

8 Respostas

V

Digamos que este seu código não está o melhor do planeta Terra, mas aí vai uma dica:
“armazene o somatorio das notas em uma variável e depois divida pelo número de alunos”

Nota: eu acho q consigo deixar este teu código com menos de 10 linhas… ehehe

B

hehe concordo … vc podia colocar isso dentro de um for … usar switch , esse emaranhado de if’s não esta muito legal nao… vou dar uma ajeitada aqui e posto pra vc

F

uma maneira BEM melhor pro seu programa seria por as notas em um array e ao invez de ir fazendo if em aluno por aluno simplesmente ir no indice correto… talvez a intensao do seu programa fosse ler as notas no console ou com um dialogo…

pra resolver a soma seria como o viecili disse…

eu dei uma melhorada no seu codigo:

import java.text.DecimalFormat;
public class nota{
 public static void main(String args[]){
  int soma = 0;
  int notas[] = {4, 5, 7, 4, 3, 6, 6, 8, 3, 4};
 DecimalFormat df = new DecimalFormat("00");
  for (int i = 0; i < 10; i++){
   System.out.println("Aluno " + df.format(i + 1) + " nota: " + notas[i]);
   soma += notas[i];
  }
  System.out.println("A media foi de:" + ((double)soma / notas.length)); 
 }
}
V

bom tah aí:

public class Nota { public static void main(String[] args) { int[] notas = {4,5,7,4,3,6,6,8,3,4}; int somatorio = 0; for (int i = 0; i < notas.length; i++) { System.out.println("Aluno "+i+" nota: "+notas[i]); somatorio += notas[i]; } System.out.println("A média foi de: "+ ( somatorio / (double) notas.length)); } }
Damn, 11 linhas… eu tinha prometido em 10… hehehe

W
public class teste

{

public static void main(String args[])

{

int nota;

int media;

int valor;

int total=0;

int aluno=0;
while(aluno < 10)

{

aluno = aluno + 1;
if(aluno == 1 )

{

System.out.println(“Aluno 01 nota: ****);

nota=4;

total += nota;

}

if(aluno == 2 )

{

System.out.println(“Aluno 02 nota: *****);

nota = 5;

total += nota;

}

if(aluno == 3 )

{

System.out.println(“Aluno 03 nota: *******);

nota = 7;

total += nota;

}

if(aluno == 4 )

{

nota = 4;

total += nota;

System.out.println(“Aluno 04 nota: ****);

}

if(aluno == 5 )

{

nota = 3;

total += nota;

System.out.println(“Aluno 05 nota: ***);

}

if(aluno == 6 )

{

System.out.println(“Aluno 06 nota: ******);

nota = 6;

total += nota;

}

if(aluno == 7 )

{

System.out.println(“Aluno 07 nota: ******);

nota = 6;

total += nota;

}

if(aluno == 8)

{

System.out.println(“Aluno 08 nota: ********);

nota = 8;

total += nota;

}

if(aluno == 9 )

{

System.out.println(“Aluno 09 nota: ***);

nota = 3;

total += nota;

}

if(aluno == 10 )

{

nota = 4;

total += nota;

System.out.println(“Aluno 10 nota: ****);

media = total / 10 ;

System.out.println(“A media foi de: +media);

}

}

}
}

O que acontece… vc esta utilizando teu codigo como se ele somasse toda vez q vc muda o conteudo da variavel nota… e não é assim… vc tah dando um valor novo… naum somando…

bem na verdade vc pode criar uma variavel de incremnto em todos os if’s e adicionar a sua variavel nota toda vez… entendeu… esse q eu postei tah uma nhaca… depois modifico para ficar mais limpo se der tempo

Sei q o código do Felipe e do Vieceli taum menores e bem mais limpos… mas naum daum o mesmo resultado do seu… tentei ser mais fiel ao q vc esta usando

P

Olá,
cara você quer obter somente uma média né? Se for, você tem que dentro do while controlar somente a soma das notas e fora dele você define a média dividindo o somatório pelo total de alunos que nesse caso é 10 né?!
Eu entendi assim…dá uma olhada ae…

public class nota
{
	public static void main(String args[]) 
	{
		int nota = 0; 
		int aluno = 0; 
		int media=0; 
		int valor=0;
		int soma=0;
		
		while(aluno < 10) 
		{ 
			aluno = aluno + 1; 
			if(aluno == 1 ) 
			{
				System.out.println("Aluno 01 nota: ****"); 
				valor = 4;
			}
			if(aluno == 2 ) 
			{ 
				System.out.println("Aluno 02 nota: *****"); 
				valor=5;
			}
			if(aluno == 3 )
			{
				System.out.println("Aluno 03 nota: *******"); 
				valor=7;
			}
			if(aluno == 4 ) 
			{ 
				System.out.println("Aluno 04 nota: ****"); 
				valor=4; 
			}
			if(aluno == 5 ) 
			{ 
				System.out.println("Aluno 05 nota: ***"); 
				valor=3; 
			} 
			if(aluno == 6 ) 
			{ 
				System.out.println("Aluno 06 nota: ******"); 
				valor=6; 
			} 
			if(aluno == 7 ) 
			{ 
				System.out.println("Aluno 07 nota: ******"); 
				valor=6; 
			} 
			if(aluno == 8) 
			{ 
				System.out.println("Aluno 08 nota: ********"); 
				valor=8; 
			} 
			if(aluno == 9 ) 
			{ 
				System.out.println("Aluno 09 nota: ***"); 
				valor=3; 
			} 
			if(aluno == 10 ) 
			{ 
				System.out.println("Aluno 10 nota: ****"); 
				valor=4;
			}
			soma+=valor;
		}
		media=soma/10;
		System.out.println("A media foi de:" +media);
	}
}

Espero ter ajudado…

[]'s

G

Eu agradeço a todos pela ajuda.

B

po … dormi no ponto e a galera passou na minha frente hehe … mas ta valendo ,era isso mesmo !

Criado 20 de dezembro de 2004
Ultima resposta 21 de dez. de 2004
Respostas 8
Participantes 6