Erro, programa simples

11 respostas
kiwon
seguinte preciso fazer um programa q pegue a 1 nota 2 e 3 de 3 etapas num colegio para saber qnt precisa tirar na quarta etapa, so que na quarta etapa se tem o "peso 2", que é como se valesse 2 etapas. mas ta dando um erro:
import javax.swing.JOptionPane;
public class boletim {

 public static void main(String args[])
 {
  double n1,n2,n3,x;
  nota1  = JOptionPane.showInputDialog(null,"Insira a nota da 1 etapa");
  nota2 = JOptionPane.showInputDialog(null,"Insira a nota da 2 etapa");
  nota3 = JOptionPane.showInputDialog(null,"Insira a nota da 3 etapa");

  n1 = Integer.parseDouble(nota1);
  n2 = Integer.parseDouble(nota2);
  n3 = Integer.parseDouble(nota3);


  (n1 + n2 + n3 + x + x)/4.0 == 7.0;

  JOptionPane.showMessageDialog(null,"Você precisa tirar "+x+" na 4 etapa");


 }
}
tenho quase certeza que o erro ta em
(n1 + n2 + n3 + x + x)/4.0 == 7.0;
mas n sei como fazer isso.

11 Respostas

Nicolas_Fernandes

Olá, Kiwon!

  1. Qual o tipo de erro? É erro de compilador, ou a sua lógica é que não funciona?
n1 + n2 + n3 + x + x)/4.0 == 7.0;

O código acima está errado.
Você fez um cálculo, e está comparando o mesmo com o valor 7.0. Só que falta você colocar uma condição aí.

if (n1 + n2 + n3 + x) / 4.0 == 7.0) {
 // Faça alguma coisa.
 JOptionPane.showMessageDialog(null,"Você precisa tirar "+x+" na 4 etapa"); 
}

Tente algo assim.

[]'s

luizrobertofreitas

Então, qual é o erro? é na compilação ou execução? Se este for o código inteiro, acredito que vc precise inicializar a variável “x” do tipo double, pois vc declara e atribui valores às suas variáveis n1, n2 e n3.

pmlm

kiwon:

tenho quase certeza que o erro ta em

(n1 + n2 + n3 + x + x)/4.0 == 7.0;

mas n sei como fazer isso.

Claro que o erro está aí.

Isso é uma equação, certo? Tens de por isso em igualdade a x.

x = ....
E

O Java não sabe resolver equações sozinho. Consulte o site http://www.wolframalpha.com se quiser resolver uma equação.

Resolva a equação, e crie um comando como este aqui:

x = .........; // Resultado da sua equação

Por exemplo, o Wolfram Alpha disse que o resultado da equação é:

x = 2. (-0.25 n1-0.25 n2-0.25 n3+7.);

Passe isso para Java, e divirta-se!

renamed

vc viu que falta um parênteses depois do if?

if (n1 + n2 + n3 + x) / 4.0 == 7.0) { // Faça alguma coisa. JOptionPane.showMessageDialog(null,"Você precisa tirar "+x+" na 4 etapa"); }

seria assim

if ((n1 + n2 + n3 + x) / 4.0 == 7.0) { // Faça alguma coisa. JOptionPane.showMessageDialog(null,"Você precisa tirar "+x+" na 4 etapa"); }

S

Olá.

Seguindo a boa prática de programação você pode fazer o seguinte:

import javax.swing.JOptionPane;
public class boletim {

 public static void main(String args[])
 {
  double n1 = 0.0;
  double n2 = 0.0;
  double n3 = 0.0;
  double x = 0.0;
  
  nota1  = JOptionPane.showInputDialog(null,"Insira a nota da 1 etapa");
  nota2 = JOptionPane.showInputDialog(null,"Insira a nota da 2 etapa");
  nota3 = JOptionPane.showInputDialog(null,"Insira a nota da 3 etapa");

  n1 = Integer.parseDouble(nota1);
  n2 = Integer.parseDouble(nota2);
  n3 = Integer.parseDouble(nota3);


 x =  (n1 + n2 + n3 )/ 3.0;

x*= 2.0;

if(x >= 7.0)

  JOptionPane.showMessageDialog(null,"Você passou de ano" + x + "...parabéns");

if (x ==7.0){

 JOptionPane.showMessageDialog(null,"Passou raspando...." + x);
}
else{

JOptionPane.showMessageDialog(null,"Tomou Bomba");

}

 }
}

Vc tem que inicializar suas variavéis para não dar erro de NullPointer em tempo de compilação. Espero ter ajudado

kiwon
consegui sem o peso 2:
import javax.swing.JOptionPane;
class boletim
{

 public static void main(String args[])
 {
  int n1,n2,n3,x;
  String nota1,nota2,nota3;
  nota1  = JOptionPane.showInputDialog(null,"Insira a nota da 1 etapa");
  nota2 = JOptionPane.showInputDialog(null,"Insira a nota da 2 etapa");
  nota3 = JOptionPane.showInputDialog(null,"Insira a nota da 3 etapa");

  n1 = Integer.parseInt(nota1);
  n2 = Integer.parseInt(nota2);
  n3 = Integer.parseInt(nota3);


  if ((x = 28 - n1 - n2 - n3) >= 0 )
      JOptionPane.showMessageDialog(null,"Você precisa tirar "+x+" na 4 etapa!");

  if ((x = 28 - n1 - n2 - n3) > 10 )
      JOptionPane.showMessageDialog(null,"Você já está de recuperacao!");

  else
      JOptionPane.showMessageDialog(null,"Você já está passado!");

 }
}

sem peso 2 nem com double, da um erro no parseDouble.
alguem tem alguma sugestão?

R

Kara não sei o que vc queria mais eu converti um valor inteiro em uma String e deu isso ai
Executa ai pra ver
ha eu coloquei um laço de repetição while so pra testar Ok

import javax.swing.JOptionPane;

public class boletim {

    public static void main(String args[]) {

        boolean continua = true;
        while (continua) {
            int n1, n2, n3, x;
            int nota1 = Integer.parseInt(JOptionPane.showInputDialog(null, "Insira a nota da 1 etapa"));
            int nota2 = Integer.parseInt(JOptionPane.showInputDialog(null, "Insira a nota da 2 etapa"));
            int nota3 = Integer.parseInt(JOptionPane.showInputDialog(null, "Insira a nota da 3 etapa"));

            n1 = (nota1);
            n2 = (nota2);
            n3 = (nota3);


            if ((x = 28 - n1 - n2 - n3) >= 0) {
                JOptionPane.showMessageDialog(null, "Você precisa tirar " + x + " na 4 etapa!");
            }

            if ((x = 28 - n1 - n2 - n3) > 10) {
                JOptionPane.showMessageDialog(null, "Você já está de recuperacao!");
            } else {
                JOptionPane.showMessageDialog(null, "Você já está passado!");
            }
            if (JOptionPane.showConfirmDialog(null, "Deseja Sair do Programa ?", "Aviso", JOptionPane.YES_NO_OPTION) == 0) {
                continua = false;
            }
        }
    }
}
R

e nesse outro aqui eu usei o double
da um alhada ai executa
era isso que vc queria ??

import javax.swing.JOptionPane;

public class boletim {

    public static void main(String args[]) {

        boolean continua = true;
        
        while (continua) {

            double x;

            double nota1 = Integer.parseInt(JOptionPane.showInputDialog(null, "Insira a nota da 1 etapa"));
            double nota2 = Integer.parseInt(JOptionPane.showInputDialog(null, "Insira a nota da 2 etapa"));
            double nota3 = Integer.parseInt(JOptionPane.showInputDialog(null, "Insira a nota da 3 etapa"));

            if ((x = 28 - nota1 - nota2 - nota3) >= 0) {
                JOptionPane.showMessageDialog(null, "Você precisa tirar " + x + " na 4 etapa!");
            }

            if ((x = 28 - nota1 - nota2 - nota3) > 10) {
                JOptionPane.showMessageDialog(null, "Você já está de recuperacao!");
            } else {
                JOptionPane.showMessageDialog(null, "Você já está passado!");
            }
            if (JOptionPane.showConfirmDialog(null, "Deseja Sair do Programa ?", "Aviso", JOptionPane.YES_NO_OPTION) == 0) {
                continua = false;
            }
        }
    }
}
pedroroxd
Tente:
import javax.swing.JOptionPane;  
   public class boletim {  
     
   public static void main(String args[])  
   {  
     double n1,n2,n3,x,result,falta,songa = 0;  
     nota1  = JOptionPane.showInputDialog(null,"Insira a nota da 1 etapa");  
     nota2 = JOptionPane.showInputDialog(null,"Insira a nota da 2 etapa");  
     nota3 = JOptionPane.showInputDialog(null,"Insira a nota da 3 etapa");  
     
     n1 = Integer.parseDouble(nota1);  
     n2 = Integer.parseDouble(nota2);  
     n3 = Integer.parseDouble(nota3);  
     
     
result = (n1+n2+n3);
songa = x+x;

media = (result + songa) / 4;

falta = 7.0 - media;

    
     JOptionPane.showMessageDialog(null,"Você precisa tirar "+falta * 2+" na 4 etapa");  
     
     
   }  
   }
edmarr

Ps … cuidado , ao fazer isto

double n1,n2,n3,x,result,falta,songa = 0;

Vc esta atribuindo 0 somente a variavel “songa” .

Bom Estudo

Criado 23 de setembro de 2009
Ultima resposta 25 de set. de 2009
Respostas 11
Participantes 10