Array
(
)

Cansado de Fazer o Calculo do baskara?

Victor Casé
   - 09 abr 2009

Aew gente.. blz? Meu nome é victor , to entrando pra comunidade Java pq sempre me interessei por computaçao desde criança , pretendo fazer Engenharia da Computaçao .. estou no 1 ano colegial .. ai decidi fazer um programinha besta so pra começar.. ^^ espero q vcs gostem.. Esse programa resolve o baskara .. dando o X1 e o X2 como respostas ^^ #Código

/* Programa criado por Victor Casé 
 * Todos os direitos reservados 1990-2006
 */
 
 // Importa a Extenção Swing
import javax.swing.* ;

 public class Baskara {
 	//Inicializaçao das variaveis
 	public static void main ( String args [] )
 	{
 		String varA,
 		varB,
 		varC;
 		double numberA,
 		numberB,
 		numberC,
 		delta,
 		x1,
 		x2;
    
 		varA =
 		JOptionPane.showInputDialog ("Digite o A da questão");
 		
 		varB =
 		JOptionPane.showInputDialog ("Digite o B da questão");
 		
 		varC =
 		JOptionPane.showInputDialog ("Digite o C da questão");
 		
 		numberA = Integer.parseInt (varA);
 		numberB = Integer.parseInt (varB);
 		numberC = Integer.parseInt (varC);
 		
 		// Faz os calculos necessarios
 		
 		delta = (numberB*numberB)-4*(numberA)*(numberC);
 		
 		x1 = -numberB + Math.sqrt(delta) / 2*numberA;
 		x2 = -numberB - Math.sqrt(delta) / 2*numberA;
 		
 		// Mostra os Resultados obtidos
 		
 		JOptionPane.showMessageDialog ( null ,
 		"O x1 da questão será " + x1 , " Resultado ",
 		JOptionPane.PLAIN_MESSAGE);
 		
 		JOptionPane.showMessageDialog ( null ,
 		"O x2 da questão será " + x2 , " Resultado ",
 		JOptionPane.PLAIN_MESSAGE);
 		
 		System.exit(0);
 	}
 }

Victor Muniz
   - 09 abr 2009

gostei do topico

0
|
0

Diogosouzac
   - 12 nov 2009

Cara, vc ta no primeiro ano do ensino medio?? se for, tu já ta bem adiantado... Investe na carreira!! ah, o programa tbm ficou legal!!

0
|
0

Ricardo Staroski
   - 12 nov 2009

Parabéns pela iniciativa em aprender Java. Como incentivo, vou postar uma versão orientada a objetos do seu exemplo. Estude, analise e pratique. Boa sorte! #Código

public final class Baskara {

	public final double X1;
	public final double X2;

	public Baskara(double a, double b, double c) {
		double delta = (b * b) - (4 * a * c);
		X1 = (-b + Math.sqrt(delta)) / (2 * a);
		X2 = (-b - Math.sqrt(delta)) / (2 * a);
	}
}
#Código
import javax.swing.*;

public class TesteBaskara {

	public static void main(String args[]) {

		double a = Double.parseDouble(JOptionPane.showInputDialog("Digite o A da questão"));
		double b = Double.parseDouble(JOptionPane.showInputDialog("Digite o B da questão"));
		double c = Double.parseDouble(JOptionPane.showInputDialog("Digite o C da questão"));

		Baskara baskara = new Baskara(a, b, c);

		JOptionPane.showMessageDialog(null,
		                              "O x1 da questão será " + baskara.X1 + "\n"
		                            + "O x2 da questão será " + baskara.X2,
		                              " Resultado ",
		                              JOptionPane.PLAIN_MESSAGE);
		System.exit(0);
	}
}

0
|
0

Alison Souza
   - 12 nov 2009

Isso foi um incentivo ou tu quiz assustar o garoto? hehehe Att, Alison

0
|
0

Alison Souza
   - 12 nov 2009

Só uma correção, no lugar de final coloca static :)

0
|
0

Diogosouzac
   - 12 nov 2009

As variaveis x1 e x2 tbm poderiam ser private (adicionando os respectivos getters e setters) para deixar o codigo mais seguro, mas como é umma aplicaçao pequena nao ha mal nenhum em deixa-las public, mto menos final. :smile: :grin: :D

0
|
0

Ricardo Staroski
   - 12 nov 2009


Citação:
="Alison.souza"]Só uma correção, no lugar de final coloca static
ERRADO! X1 e X2 não são static pois estão associadas aos objetos da classe Baskara Elas realmente são final e public! Trata-se de duas constantes dinâmicas inicializadas dentro do construtor. Não faz sentido ter getters para elas muito menos setters. Uma vez criado um objeto da classe Baskara, esses atributos não vão mudar para aquele objeto.

0
|
0

Alison Souza
   - 12 nov 2009

Uma vez que se declara uma variavel final ela não pode ser modificada, certo? X1 = (-b + Math.sqrt(delta)) / (2 * a); X2 = (-b - Math.sqrt(delta)) / (2 * a); X1 e X2, mesmo sendo final recebem o valor da operação? Att, Alison

0
|
0

Ricardo Staroski
   - 12 nov 2009


Citação:
="Alison.souza"]Uma vez que se declara uma variavel final ela não pode ser modificada, certo?
Quase isso, uma variável final precisa ser inicializada em algum momento, mas não necessariamente na sua declaração. Mas depois que ela foi inicializada, aí ela não pode ser modificada. Por isso o termo constante dinâmica, a variável vai ter um valor constante porém esse valor pode ser dinâmico, como no exemplo acima, onde X1 e X2 recebem o resultado de uma equação. Mais exemplos: #Código

public class Constantes {

    // constante estática inicializada na declaração
    static final int CONSTANTE_1 = 1;

    // constante estática dinâmica, inicializada no bloco de inicialização da classe
    static final int CONSTANTE_2;

    // bloco de inicialização da classe
    static {
        // o conteúdo dela é dinamico...
        CONSTANTE_2 = (int) (Math.random() * 100);
    }

    // constante não-estática inicializada na declaracao
    final int CONSTANTE_3 = 3;

    // constante não-estática inicializada no bloco de inicialização do objeto
    final int CONSTANTE_4;

    // constante não-estática inicializada no construtor da classe
    final int CONSTANTE_5;

    // bloco de inicialização do objeto
    {
        // poderia ser outro valor obtido dinamicamente
        CONSTANTE_4 = 4;
    }

    // construtor
    public Constantes() {
        // poderia ser outro valor obtido dinamicamente
        // por exemplo via parametro do construtor
        CONSTANTE_5 = 5;
    }
}
Neste tópico [url="http://javafree.uol.com.br/topic-875831-public-static-final-int-COPAS-=-3.html"]aqui[/url] tem mais dicas sobre o static e final

0
|
0

Diogosouzac
   - 12 nov 2009

Como diriam nossos velhos conhecidos Sierra & Berts, "todas" as variaveis deveriam seguir uma onda, q eu particularmente tbm considero nao mto boa, de serem declaradas como privadas... As convençoes existem e sempre vao existir...

0
|
0

Marcos Silva
   - 15 fev 2011

Fiz de outra forma como exercício em aula talvez vocês gostem!!! import javax.swing.*; public class Bascara { private double a, b, c; private double delta; public void setA(double vA){ this.a=vA; } public double getA(){ return this.a; } public void setB(double vB){ this.b=vB; } public double getB(){ return this.b; } public void setC(double vC){ this.c=vC; } public double getC(){ return this.c; } public void setDelta(double vDelta){ this.delta=vDelta; } public double getDelta(){ return this.delta; } public double retornaDelta(double va, double vb, double vc){ double vdelta; vdelta =((vb*vb)-4*va*vc); return vdelta; } public void imprimeRaiz(double a,double b,double delta){ double X1 = (-b + Math.sqrt(delta)) / (2 * a); double X2 = (-b - Math.sqrt(delta)) / (2 * a); System.out.println("Raiz positiva: "+ X1+"\nRaiz negativa: "+ X2+"\n"); JOptionPane.showMessageDialog(null,"Raiz positiva: "+ X1+"\nRaiz negativa: "+ X2); } public static void main(String args[]) { Bascara d1 = new Bascara(); double a,b,c,delta; a=Double.parseDouble(JOptionPane.showInputDialog("Digite a")); b=Double.parseDouble(JOptionPane.showInputDialog("Digite b")); c=Double.parseDouble(JOptionPane.showInputDialog("Digite c")); System.out.println("A: "+a+"\nB: "+b+"\nC: "+c+"\n"); delta=d1.retornaDelta(a,b,c); System.out.print("Delta: " + delta +"\n"); d1.imprimeRaiz(a,b,delta); } } //sei que set's e get's eram desnecessários mais era pra entregar achei melhor coloca-los também !!! X-)

0
|
0

Ricardo Staroski
   - 15 fev 2011

Fórmula de Baskara orientada a objetos: #Código

public final class Baskara {

	public final double x1;
	public final double x2;

	public Baskara(double a, double b, double c) {
		double delta = (b * b) - (4 * a * c);
		x1 = (-b + Math.sqrt(delta)) / (2 * a);
		x2 = (-b - Math.sqrt(delta)) / (2 * a);
	}
}
Adaptando seu código para utilizar a classe acima: #Código
public static void main(String args[]) {
    double a = Double.parseDouble(JOptionPane.showInputDialog("Digite a"));
    double b = Double.parseDouble(JOptionPane.showInputDialog("Digite b"));
    double c = Double.parseDouble(JOptionPane.showInputDialog("Digite c"));

    System.out.println("A: " + a + "\nB: " + b + "\nC: " + c);

    Baskara baskara = new Baskara(a, b, c);
    System.out.println("x1: " + baskara.x1);
    System.out.println("x2: " + baskara.x2);
} 

0
|
0

Marcos Silva
   - 15 fev 2011

no caso é que o escopo pedia que eu usasse o métodos como retornaDelta e o método imprimeRaiz por isso o código não está otimizado... valew!!!

0
|
0

Estevan Belinello
   - 02 abr 2013

Quando eu executo, na hora de mostrar os valores de x1 e x2 ele mostra NaN. Alguém sabe como posso resolver isso? Grato Estevan

0
|
0

Marcos Silva
   - 02 abr 2013


Citação:
="estevandlbs"]Quando eu executo, na hora de mostrar os valores de x1 e x2 ele mostra NaN. Alguém sabe como posso resolver isso? Grato Estevan
Provavelmente delta está sendo negativo, portanto não existe solução real para a equação. Solução: testar o valor de x1 e x2 (Double [/color]tem um método isNaN); ou testar se delta é negativo e, numa variável adicional boolean[/color], marcar o fato de não ter solução real

0
|
0

Cdescovi
   - 09 set 2014

Pessoal, sou iniciante em java, e tenho um trabalho a fazer, preciso da ajuda de vocês. A partir daqui: Crie um programa em Java que use a fórmula de bhaskara para calcular as raízes de uma equação do 2º grau.(Essa parte eu consigo fazer, o que me complica é o seguinte): O programa deve fazer a análise do delta para chegar à solução. se o delta for maior do que zero, existem duas raízes reias (x1 e x2); se o delta for igual a zero, existem duas raízes reais e iguais (x1= x2); se o delta for menor do que zero, raízes imaginárias; O algoritmo deve calcular os resultados, de acordo com a análise do delta, e apresentar os valores. Somente no caso do delta menor do que zero, o programa deverá enviar uma mensagem “Raízes Imaginárias”. Dica: double r, x = 9; r = Math.sqrt(x); Desde já, Obrigado!

0
|
0

Marcos Silva
   - 20 set 2014


Citação:
="killua"]Pessoal, sou iniciante em java, e tenho um trabalho a fazer, preciso da ajuda de vocês. A partir daqui: Crie um programa em Java que use a fórmula de bhaskara para calcular as raízes de uma equação do 2º grau.(Essa parte eu consigo fazer, o que me complica é o seguinte): O programa deve fazer a análise do delta para chegar à solução. se o delta for maior do que zero, existem duas raízes reias (x1 e x2); se o delta for igual a zero, existem duas raízes reais e iguais (x1= x2); se o delta for menor do que zero, raízes imaginárias; O algoritmo deve calcular os resultados, de acordo com a análise do delta, e apresentar os valores. Somente no caso do delta menor do que zero, o programa deverá enviar uma mensagem ?Raízes Imaginárias?. Dica: double r, x = 9; r = Math.sqrt(x); Desde já, Obrigado!
Você usou os exemplos acima? Copie os códigos e modifique-os com alguns IF's para chegar no que vocÊ quer.

0
|
0

Cdescovi
   - 20 set 2014

Obrigado! Mas ja consegui fazer.

0
|
0