[resolvido]algoritmovm

ola eu conseguir validar a digitação dos vetores mais agora nao to sabendo fazer a letra a, b, c, d como posso fazer isso alguém pode ajudar?? obrigado!

[code]import java.util.*;
public class ex3 {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub

/*

Faça uma classe em JAVA que carregue uma matriz com as notas de cinco alunos em três provas.
Lembre-se que essa quantidade de alunos e provas é uma suposição e que sua classe poderia ser alterada para funcionar com números muito maiores.

Cada nota digitada deve ser validada e as notas válidas estão entre 0 e 10. Sempre que uma nota inválida for digitada uma nova digitação deve ser solicitada.

Carregue também um vetor com o tipo de média (A ? Aritmética e P ? Ponderada).
Lembre-se que cada aluno terá um tipo de média e que os tipos digitados devem ser validados e os tipos válidos são: A, a, P, p.
Sempre que um tipo inválido for digitado uma nova digitação deve ser solicitada.
Os pesos da média ponderada são: 2, 3 e 10.

Mostre:

a) O número de cada aluno (nº da linha ou da coluna), a média e a situação (aprovado ou reprovado, considerando para aprovação média de no mínimo 7)
b) A média de todos os alunos juntos em cada prova
c) A maior nota de cada aluno e em que prova aconteceu, DESCONSIDERAR empates.
d) A menor nota em cada prova e a que aluno pertence, CONSIDERAR empates.*/

	double nota[][] =  new double [5][3];
	String media[] = new String[2];
	int i,j,m;
	Scanner dado = new Scanner(System.in);

	for(i=0;i<=4;i++){
		for(j=0;j<=2;j++){
			System.out.println("digite as notas dos alunos" +(i+1));
		    System.out.println("notas da prova "+(j+1));
			nota[i][j]= dado.nextDouble();
			if(nota[i][j]> 10 || nota[i][j] < 0){
				System.out.println("nota inválida");
			    System.out.println("digite novamente");
			    nota[i][j]=dado.nextDouble();
			}
			    else{
			    	System.out.println("nota válida");
			    }
		}
			for(m=0;m<=0;m++){
				System.out.println("digite o tipo da média A-aritmédia e P-ponderada");
				media[m]=dado.next();
				if(media[m].equals("p")|| media[m].equals("P")|| media[m].equals("a")|| media[m].equals("A")){
					System.out.println("media válida");
			}
			else{
		    	System.out.println("média inválida");
		    	   System.out.println("digite novamente");
				    media[m]=dado.next();
		    }
		}
	}
	}
}[/code]

usando esse codigo q eu ja fiz

Vc está lendo os vetores errado!!!

 double nota[][] =  new double [5][3];  
        String media[] = new String[2];  
        int i,j,m;  
        Scanner dado = new Scanner(System.in);  
      
        for(i=0;i<5;i++){  
            System.out.println("digite as notas dos alunos" +(i+1));  
            for(j=0;j<3;j++){  
                 System.out.println("notas da prova "+(j+1));  
                nota[i][j]= dado.nextDouble();  
                if(nota[i][j]> 10 || nota[i][j] < 0){  
                    System.out.println("nota inválida");  
                    System.out.println("digite novamente");  
                    nota[i][j]=dado.nextDouble();  
                }  
                    else{  
                        System.out.println("nota válida");  
                    }  
            }  
                for(m=0;m<5;m++){  
                    System.out.println("digite o tipo da média A-aritmédia e P-ponderada");  
                    media[m]=dado.next();  
                    if(media[m].equalsIgnoreCase("p")|| media[m].equalsIgnoreCase("A")){  
                        System.out.println("media válida");
                     break;
                }  
                else{  
                    System.out.println("média inválida");  
                       System.out.println("digite novamente");  
                }  
            }  
        }  

ok ja testei mais preciso de uma luz pra fazer essas questoes no meio desse código

a) O número de cada aluno (nº da linha ou da coluna), a média e a situação (aprovado ou reprovado, considerando para aprovação média de no mínimo 7)
b) A média de todos os alunos juntos em cada prova
c) A maior nota de cada aluno e em que prova aconteceu, DESCONSIDERAR empates.
d) A menor nota em cada prova e a que aluno pertence, CONSIDERAR empates.*/

obrigada!

mudei meu código eu to tentando fazer a letra a estou tentando calcular a média de acordo com a opção q ele escolhe de cada aluno mais nao esta indo pq?
o código esta assim agora

[code]import java.util.*;
public class ex3 {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub

/*

Faça uma classe em JAVA que carregue uma matriz com as notas de cinco alunos em três provas.
Lembre-se que essa quantidade de alunos e provas é uma suposição e que sua classe poderia ser alterada para funcionar com números muito maiores.

Cada nota digitada deve ser validada e as notas válidas estão entre 0 e 10. Sempre que uma nota inválida for digitada uma nova digitação deve ser solicitada.

Carregue também um vetor com o tipo de média (A ? Aritmética e P ? Ponderada).
Lembre-se que cada aluno terá um tipo de média e que os tipos digitados devem ser validados e os tipos válidos são: A, a, P, p.
Sempre que um tipo inválido for digitado uma nova digitação deve ser solicitada.
Os pesos da média ponderada são: 2, 3 e 10.

Mostre:

a) O número de cada aluno (nº da linha ou da coluna), a média e a situação (aprovado ou reprovado, considerando para aprovação média de no mínimo 7)
b) A média de todos os alunos juntos em cada prova
c) A maior nota de cada aluno e em que prova aconteceu, DESCONSIDERAR empates.
d) A menor nota em cada prova e a que aluno pertence, CONSIDERAR empates.*/

    double nota[][] =  new double [5][3];    
    String media[] = new String[2];    
    int i,j,m;    
    double med;
    Scanner dado = new Scanner(System.in);    
    
    for(i=0;i<5;i++){    
        System.out.println("digite as notas dos alunos" +(i+1));    
        for(j=0;j<3;j++){    
             System.out.println("notas da prova "+(j+1));    
            nota[i][j]= dado.nextDouble();    
            if(nota[i][j]> 10 || nota[i][j] < 0){    
                System.out.println("nota inválida");    
                System.out.println("digite novamente");    
                nota[i][j]=dado.nextDouble();     
            }    
                else{    
                    System.out.println("nota válida");    
                }    
        }    
            for(m=0;m<5;m++){    
                System.out.println("digite o tipo da média A-aritmédia e P-ponderada");    
                media[m]=dado.next();    
                if(media[m].equalsIgnoreCase("p")|| media[m].equalsIgnoreCase("A")){    
                    System.out.println("media válida");  
                 break;  
                }
                 else if(media[m].equalsIgnoreCase("p")){
                 	med = (nota[i][j]*2+nota[i][j]*3+nota[i][j]*10)/15;
                 	System.out.println(med);
            }else if(media[m].equalsIgnoreCase("A")){
             	 med = (nota[i][j]+nota[i][j]+nota[i][j])/3;
             	System.out.println(med);
            }
            else{    
                System.out.println("média inválida");    
                   System.out.println("digite novamente");    
            } 
              
                }
            }
            }
    }

[/code]

ola dani da uma dica pra voce sobre o seu codigo, se você comentar o seu codigo isso facilita a sua leitura, e uma outra coisa nao tenta querer fazer todo o exercicio dentro de uma matriz que nem vc esta fazendo, faz o primeiro a letra “A” e assim sucessivamente, se voce preencheu sua matriz, o resto é mais facil entao faça separado pra nao confunidr o codigo e principalmente pra voce nao ficar louca com tanto codigo,

eu estou tentando

mais quero uma dica de como fazer as formulas pra essas letras

estou fazendo assim agoraa ta calculando a média mais nao esta voltando pra digita os outros alunos só digita de um :///

[code]import java.util.*;
public class ex3 {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub

/*

Faça uma classe em JAVA que carregue uma matriz com as notas de cinco alunos em três provas.
Lembre-se que essa quantidade de alunos e provas é uma suposição e que sua classe poderia ser alterada para funcionar com números muito maiores.

Cada nota digitada deve ser validada e as notas válidas estão entre 0 e 10. Sempre que uma nota inválida for digitada uma nova digitação deve ser solicitada.

Carregue também um vetor com o tipo de média (A ? Aritmética e P ? Ponderada).
Lembre-se que cada aluno terá um tipo de média e que os tipos digitados devem ser validados e os tipos válidos são: A, a, P, p.
Sempre que um tipo inválido for digitado uma nova digitação deve ser solicitada.
Os pesos da média ponderada são: 2, 3 e 10.

Mostre:

a) O número de cada aluno (nº da linha ou da coluna), a média e a situação (aprovado ou reprovado, considerando para aprovação média de no mínimo 7)
b) A média de todos os alunos juntos em cada prova
c) A maior nota de cada aluno e em que prova aconteceu, DESCONSIDERAR empates.
d) A menor nota em cada prova e a que aluno pertence, CONSIDERAR empates.*/

	double nota[][] =  new double [5][3];    
       String media[] = new String[2];    
       int i,j,m; 
       double med;
       Scanner dado = new Scanner(System.in);    
       
       for(i=0;i<5;i++){    
           System.out.println("digite as notas dos alunos" +(i+1));    
           for(j=0;j<3;j++){    
                System.out.println("notas da prova "+(j+1));    
               nota[i][j]= dado.nextDouble();    
               if(nota[i][j]> 10 || nota[i][j] < 0){    
                   System.out.println("nota inválida");    
                   System.out.println("digite novamente");    
                   nota[i][j]=dado.nextDouble();    
               }    
                   else{    
                       System.out.println("nota válida");    
                   }    
           }    
               for(m=0;m<5;m++){    
                   System.out.println("digite o tipo da média A-aritmédia e P-ponderada");    
                   media[m]=dado.next();    
                   if(media[m].equalsIgnoreCase("p")|| media[m].equalsIgnoreCase("A")){    
                       System.out.println("media válida");  
                    break;  
               }    
               else{    
                   System.out.println("média inválida");    
                      System.out.println("digite novamente");    
               }    
           }    
               for(i=0;i<1;i++){ 
            	   for(j=0;j<1;j++){    
            		   if(media[m].equalsIgnoreCase("p")){  
                           med = (nota[i][j]*2+nota[i][j]*3+nota[i][j]*10)/15;  
                           System.out.println(med);  
                   }else{  
                        med = (nota[i][j]+nota[i][j]+nota[i][j])/3;  
                       System.out.println(med);  
            	   }
               }
       }
}
}

}[/code]

resultado

digite as notas dos alunos1
notas da prova 1
5
nota válida
notas da prova 2

6
nota válida
notas da prova 3
7
nota válida
digite o tipo da média A-aritmédia e P-ponderada
p
digite as notas dos alunos1
a média foi 6.533333333333333
media válida
aluno reprovado
digite as notas dos alunos2
a média foi 0.0
media válida
aluno reprovado
digite as notas dos alunos3
a média foi 0.0
media válida
aluno reprovado
digite as notas dos alunos4
a média foi 0.0
media válida
aluno reprovado
digite as notas dos alunos5
a média foi 0.0
media válida
aluno reprovado
digite o tipo da média A-aritmédia e P-ponderada

codigo
creio q tenha alguma coisa no for q esteja errado mais nao estou enxergando

[code]import java.util.*;  
public class ex3 {  
  
    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
      
    /* 
Faça uma classe em JAVA que carregue uma matriz com as notas de cinco alunos em três provas.  
Lembre-se que essa quantidade de alunos e provas é uma suposição e que sua classe poderia ser alterada para funcionar com números muito maiores. 
 
Cada nota digitada deve ser validada e as notas válidas estão entre 0 e 10. Sempre que uma nota inválida for digitada uma nova digitação deve ser solicitada.  
 
Carregue também um vetor com o tipo de média (A ? Aritmética e P ? Ponderada). 
Lembre-se que cada aluno terá um tipo de média e que os tipos digitados devem ser validados e os tipos válidos são: A, a, P, p.  
Sempre que um tipo inválido for digitado uma nova digitação deve ser solicitada. 
Os pesos da média ponderada são: 2, 3 e 10. 
 
Mostre: 
 
a)  O número de cada aluno (nº da linha ou da coluna), a média e a situação (aprovado ou reprovado, considerando para aprovação média de no mínimo 7) 
b)  A média de todos os alunos juntos em cada prova 
c)  A maior nota de cada aluno e em que prova aconteceu, DESCONSIDERAR empates. 
d)  A menor nota em cada prova e a que aluno pertence, CONSIDERAR empates.*/  
  
    	   double nota[][] =  new double [5][3];        
           String media[] = new String[2];        
           int i,j,m;     
           double med = 0;    
           Scanner dado = new Scanner(System.in);        
         
           for(i=0;i<5;i++){        
               System.out.println("digite as notas dos alunos" +(i+1));        
               for(j=0;j<3;j++){        
                    System.out.println("notas da prova "+(j+1));        
                   nota[i][j]= dado.nextDouble();        
                   if(nota[i][j]> 10 || nota[i][j] < 0){        
                       System.out.println("nota inválida");        
                       System.out.println("digite novamente");        
                       nota[i][j]=dado.nextDouble();        
                   }        
                       else{        
                           System.out.println("nota válida");        
                       }        
               }        
                   for(m=0;m<5;m++){   
                	   System.out.println("digite o tipo da média A-aritmédia e P-ponderada");        
                       media[m]=dado.next();
                	   for(i=0;i<5;i++){
                		   System.out.println("digite as notas dos alunos" +(i+1)); 
                       if(media[m].equalsIgnoreCase("p")){ 
                    	   med = (nota[i][0]*2+nota[i][1]*3+nota[i][2]*10)/15;      
                           System.out.println("a média foi "+med); 
                           System.out.println("media válida");  
                       }
                           else if(media[m].equalsIgnoreCase("A")){
                        	   med = (nota[i][0]+nota[i][1]+nota[i][2])/3;      
                               System.out.println("a média foi "+med);
                           }else{        
                       System.out.println("média inválida");        
                          System.out.println("digite novamente");        
                   }           
                           if(med > 7){  
                               System.out.println("aluno aprovado");  
                           }else{  
                               System.out.println("aluno reprovado");  
                           } 
                	   }
                   }
                   }
           }
    }

[/code]

Porque você não faz as coisas desacopladas?

Por exemplo:

1º - Escreve um código simplesmente para ler os dados, isto é, escreve dois FOR para leitura dos dados e se preocupa somente com isto.

2º - Escreva o código da média, toda estrutura de repetição para calcular as médias de cada aluno, nesse mesmo FOR você pode calcular a média TOTAL (Se preferir faz utilizando um FOR separado deste)

3º - Escreve o código para verificar se é aprovado ou reprovado

4º - Escreva um outro código para ver o maior e menor aluno

Vejo que você está estudando, não sei se trabalha na área ou não, mas uma coisa é certa, sempre trabalhe de forma desacoplada, trabalhe separando os códigos, por exemplo nesse seu algoritmo, não sei se o professor já te ensinou, mas separaria em métodos, cada método faria seu dever, um método para ler, outra para calcular a média, outro para verificar quem passou e quem não passou e etc… tanto é que os sistemas de hoje são construídos em camadas, e cada camada tem suas classes e métodos cada um encarregado de fazer sua parte no sistema como um todo.

Reescreva o código e vai por etapas, faz um for de cada vez para certo objetivo, coloque comentários em cima para dizer, por exemplo, que aquele for é para leitura dos dados e etc…

Abs
Rodrigo Santik

//Tenta escrever o código em Portugol
//seguindo uma sequencia
//e depois só passar para Java

Galapagos, por favor, evite responder exercícios de escola no fórum.
Você pode dar dicas de como resolver, mas não faça para ele (ou ela).

Caso contrário, logo vai chover de gente aqui postando só o enunciado do exercício (já tivemos problemas com isso).

[quote=ViniGodoy]Galapagos, por favor, evite responder exercícios de escola no fórum.
Você pode dar dicas de como resolver, mas não faça para ele (ou ela).

Caso contrário, logo vai chover de gente aqui postando só o enunciado do exercício (já tivemos problemas com isso).
[/quote]

É o que pensei, por isso só postei considerações e dicas de como deveria fazer o exercício.
Porque aí ficou realmente fácil, é só ele copiar o código e entregar para o professor…