Algoritmo

9 respostas
D

estou tentando resolver este algoritmo mais ele não esta funcionando pelo q pede na letra a ele mostra resultado só de um aluno em vez de mostrar de todos são cinco alunos e 3 notas de provas obrigado alguém pode ajudar!

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("a média foi "+med);    
                           }else{    
                                med = (nota[i][j]+nota[i][j]+nota[i][j])/3;    
                               System.out.println("a média foi "+med);    
                           }  
                               if(med > 7){
                            	   System.out.println("aluno aprovado");
                               }else{
                            	   System.out.println("aluno reprovado");
                               }
                       }  
               }  
        }  
        }  
    }

9 Respostas

ViniGodoy

Confira seu for da linha 60.

D

ja conferi ja tentei por td qualquer numero ele nao da certo

ViniGodoy

Tem vários problemas:

  1. O for da linha 60 deveria mesmo ir até i<5;
  2. No if da linha 62, você usa media[m]. Que valor tem "m" nesses fors?
  3. Não é necessário o for da linha 61.
  4. O calculo da média ponderada, na linha 63, está errado. Retire o [j] dali e substitua pelo número da nota correspondente;
  5. Corrija a indentação do seu código.
D

o resultado q deu foi esse

digite as notas dos alunos1
notas da prova 1
3
nota válida
notas da prova 2
4
nota válida
notas da prova 3
5
nota válida
digite o tipo da média A-aritmédia e P-ponderada
p
media válida
a média foi 4.533333333333333
aluno reprovado
a média foi 0.0
aluno reprovado
a média foi 0.0
aluno reprovado
a média foi 0.0
aluno reprovado
a média foi 0.0
aluno reprovado

usando este codigo aqui

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<5;i++){     
                           //for(j=0;j<1;j++){        
                               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);      
                           }else{      
                                med = (nota[i][0]+nota[i][1]+nota[i][2])/3;      
                               System.out.println("a média foi "+med);      
                           }    
                               if(med > 7){  
                                   System.out.println("aluno aprovado");  
                               }else{  
                                   System.out.println("aluno reprovado");  
                               }  
                       }    
               }    
        }    
        }
D

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

view plaincopy to clipboardprint?

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");    
                                   }   
                               }  
                           }  
                           }  
                   }  
            }
ViniGodoy

Termine de fazer as correções que sugeri. A linha 62 do código ainda está errada e a indentação também.
Assim que corrigir isso, você vai conseguir enxergar o erro.

D

eu ja consegui fazer a letra a brigadaoo!

ViniGodoy
Beleza. Então essa seria a forma que eu faria:
package br.com.guj;

import java.util.*;

/**
 * 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.
 */
public class ex3 {
	public static void main(String[] args) {
		double nota[][] = new double[5][3];
		String media[] = new String[5];

		Scanner in = new Scanner(System.in);

		for (int i = 0; i &lt; nota.length; i++) {
			System.out.println(&quot;digite as notas dos alunos&quot; + (i + 1));
			for (int j = 0; j &lt; 3; j++) {
				System.out.println(&quot;notas da prova &quot; + (j + 1));
				nota[i][j] = Double.parseDouble(in.nextLine());
				while (nota[i][j] &gt; 10 || nota[i][j] &lt; 0) {
					System.out.println(&quot;nota inválida! digite novamente.&quot;);
					nota[i][j] = Double.parseDouble(in.nextLine());
				}				
			}
			System.out.println(&quot;digite o tipo da média A-aritmédia e P-ponderada&quot;);
			media[i] = in.nextLine().toLowerCase();
			while (!(media[i].equals(&quot;p&quot;) || media[i].equals(&quot;a&quot;))) {
				System.out.println(&quot;média inválida! digite novamente.&quot;);
				media[i] = in.nextLine();
			}
		}

		for (int i = 0; i &lt; nota.length; i++) {
			double med = media[i].equals(&quot;p&quot;) ? 
				(nota[i][0] * 2 + nota[i][1] * 3 + nota[i][2] * 10) / 15 :
				(nota[i][0] + nota[i][1] + nota[i][2]) / 3;
			
			System.out.printf(&quot;A média do aluno %d foi %.01f. Situação: %s%n&quot;, 
					i, med, med &gt; 7 ? &quot;Aprovado&quot; : &quot;REPROVADO&quot;);
		}
	}
}
ViniGodoy

[size=18]Ei, não duplique tópicos. [/size]

Esse tópico será trancado.

Criado 18 de setembro de 2011
Ultima resposta 18 de set. de 2011
Respostas 9
Participantes 2