Problema na logica

7 respostas
C

Pessoal, to com um problema na logica desse codigo, para muitos e simples d +, mas eu n to conseguindo :wink: , sera q alguem pd me ajudar ??? :roll:

String nome[];
      int sala[];
      double nota[];
      double media[];
      
      String esc;
        
      nome  = new String[3];
      sala  = new int[3];
      nota  = new double[3];
      media = new double[3];
      
      double total;

      /* Cadastro */
      for( int cont = 0; cont < 3; cont++ ) {
         total = 0;
         
         nome[cont]  = JOptionPane.showInputDialog(
                         "Aluno -> " + (cont + 1) +
                         "\nDigite o nome" );
                         
         sala[cont] = Integer.parseInt(
                         JOptionPane.showInputDialog(
                            "Digite a sala" ) );
            
         for( int i = 0; i < 3; i ++ ) {
            do {
               nota[i] = 0;
               
               nota[i] = Double.parseDouble(
                            JOptionPane.showInputDialog(
                               "Digite a " + ( i + 1 ) +
                               "ª nota da prova" ) );

               if( ( nota[i] > 10 ) || ( nota[i] < 0) ) {
                  JOptionPane.showMessageDialog( null,
                     "A nota tem q estar entre 0 e 10", "Valor Inválido !!",
                     JOptionPane.WARNING_MESSAGE );
               } // fim do if
               
            } while( ( nota[i] > 10 ) || ( nota[i] < 0 ) );
            
            total += nota[i];
            
         } // fim do for
         
         media[cont] = total / 3;
      } // fim do for

Abracao e te +

7 Respostas

M

e o erro qual é? :roll:

M

8O

P

Ué cara…seu programa não tá calculando as médias não??
pelo que parece…tá sim…

C

“periclesmendonca”:
Ué cara…seu programa não tá calculando as médias não??
pelo que parece…tá sim…

Tp kra, na hora q eu compilo e tento executa, c eu digito um valor maior q 10 tp… 100 ele vai da a execao, e n sei o q ta contecendo q a media ja n da certo, quebrei a kbca a maio kra, com isso, sera q alguem pd me ajuda ???

:cry:

A

Yo, doidão!
Bom, ainda sou deveras iniciante, mas andei brincando com o seu código e se for só pra mostrar as médias, ficou algo assim:

import javax.swing.*;

public class ratinho {
	public static void main(String ars[]){
	
	String nome[]; 
    int sala[]; 
    double nota[]; 
    double media[]; 
    
    String esc; 
      
    nome  = new String[3]; 
    sala  = new int[3]; 
    nota  = new double[3]; 
    media = new double[3]; 
    
    double total = 0; 

    /* Cadastro */ 
    for( int cont = 0; cont < 3; cont++ ) { 
       total = 0; 
        
       nome[cont]  = JOptionPane.showInputDialog( 
                       "Aluno -> " + (cont + 1) + 
                       "\nDigite o nome" ); 
                        
       sala[cont] = Integer.parseInt( 
                       JOptionPane.showInputDialog( 
                          "Digite a sala" ) ); 
          
       for( int i = 0; i < 3; i ++ ) { 
          do { 
             nota[i] = 0; 
              
             nota[i] = Double.parseDouble( 
                          JOptionPane.showInputDialog( 
                             "Digite a " + ( i + 1 ) + 
                             "ª nota da prova" ) ); 

             if( ( nota[i] > 10 ) || ( nota[i] < 0) ) { 
                JOptionPane.showMessageDialog( null, 
                   "A nota tem q estar entre 0 e 10", "Valor Inválido !!", 
                   JOptionPane.WARNING_MESSAGE ); 
             } // fim do if 
              
          } while( ( nota[i] > 10 ) || ( nota[i] < 0 ) ); 
          
          total += nota[i]; 
          
       } // fim do for 
        
       media[cont] = total / 3; 
    } // fim do for
    JOptionPane.showMessageDialog( null, 
            "A média é: "+total/3, "Valor Inválido !!", 
            JOptionPane.INFORMATION_MESSAGE ); 
	}
}

Uma das poucas coisas que mudei foi ter inicializado o double total como 0. Dá uma olhada depois...

A

Olhando bem, a última janela deveria ter ficado assim:

JOptionPane.showMessageDialog( null, "A média é: "+total/3, "Resposta", JOptionPane.INFORMATION_MESSAGE );

Tava dando pala se usasse media ao invés de total/3, então vai no modo “pedreiro” mesmo.
Perdoe-me pelas duas mensagens uma atrás da outra… vou tomar mais cuidado daqui em diante.

M

nao confunde POO com programaçao estruturada :slight_smile:
nao eh mais facil vc criar um vetor do objeto aluno?
[]s

Criado 24 de novembro de 2004
Ultima resposta 25 de nov. de 2004
Respostas 7
Participantes 6