Equação do Segundo Grau em Java  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
StevenJava
Smalltalk
[Avatar]

Membro desde: 10/03/2007 05:38:36
Mensagens: 2
Localização: Brasil
Offline

Pessoal! comecei a estudar java recentemente, e como todo bom curioso, tentei fazer alguns programinhas que eu tinha em pascal em java. o primeiro deles foi a resolução da equação de segundo grau, e aí vai o código pra quem quiser conferir:


import java.util.Scanner;//Vamos utilizar a classe Scanner para ler os dados

public class Equacao
{
public static void main ( String args[] )
{

Scanner input = new Scanner(System.in);//Definindo nossas variáveis

double a;//nosso A da equação. Por exemplo: 2X+3Y-10=0, nesse caso o "a" é o 2.

double b;//nosso B da equação. Por exemplo: 2X+3Y-10=0, nesse caso o "b" é o 3.

double c;//nosso C da equação. Por exemplo: 2X+3Y-10=0, nesse caso o "c" é o -10.

double delta;//nosso Delta. Delta = "B" ao quadrado menos 4 vezes "A" vezes "C". Lembra?

double x1;//nossa primeira raiz da equação.

double x2;//nossa segunda raiz da equação.

System.out.println("Escreva o valor de A:");//mensagem

a = input.nextDouble();//leitura do "a"

System.out.println("Escreva o valor de B:");//mensagem

b = input.nextDouble();//leitura do "b"

System.out.print("Escreva o valor de C:");//mensagem

c = input.nextDouble();//leitura do "c"

delta = ((b*b)-(4*a*c));//calculando o Delta

x1 = 0;//definindo um valor inicial para o x1

x2 = 0;//definindo um valor inicial para o x2

if (delta >= 0)//se o delta for maior ou igual a zero podemos resolver...
{
x1 = ( ( -b + (Math.sqrt (delta) ) ) / ( 2*a ) );//equação do x1

x2 = ( ( -b + (Math.sqrt (delta) ) ) / ( 2*a ) );//equação do x2

System.out.printf("x1 vale: "+ x1);//mostra o x1

System.out.println("");//deixa uma linha em branco

System.out.printf("x2 vale: "+ x2);//mostra o x2

System.out.println("");//deixa uma linha em branco

}

else//senão(se o delta não for maior nem igual a zero) não podemos resolver...
{
System.out.println("Delta invalido");//avisa que o delta é inválido
}

//By Elbe Miranda - elberalves@yahoo.com.br ou stevenbrother@hotmail.com
}
}
[WWW] [Yahoo!]
sergiotaborda
GUJ Expert
[Avatar]

Membro desde: 22/03/2005 20:57:48
Mensagens: 4080
Offline

Onde se lê



deve ler-se


JavaBuilding : construções em java



Blog do MiddleHeaven
Lista de Discussão do MiddleHeaven
[WWW]
jlima1971
Smalltalk

Membro desde: 10/03/2007 13:22:42
Mensagens: 3
Offline

Dois lembretes matemáticos:

1) Verifique se a=0. Caso isso ocorra, não se trata de uma equação do segundo grau, além do que você provavelmente receberá como resultado `Infinity` para o delta.
Obs.: Uma equação do segundo grau tem a forma ax2+bx+c=0, onde a<>0.

2) O fato do delta<0 não implica que ele seja inválido, significa simplesmente que não há soluções que possam ser expressas com o conjunto dos números reais. Já com os complexos...

Uma dica:
Estude a diferença entre printf e println. Adianto que no exemplo postado não há a menor necessidade de utilizar o primeiro.

Mas o caminho é esse mesmo, refazer os exemplos simples do passado é sempre um bom começo para conhecer a sintaxe da linguagem, mas estude bastante OO.

Boa sorte.
StevenJava
Smalltalk
[Avatar]

Membro desde: 10/03/2007 05:38:36
Mensagens: 2
Localização: Brasil
Offline

Valeu pelas dicas galera....vou tentar melhorar o programa...quem sabe colocá-lo em modo gráfico.....
mas fico grato pela força.....
[WWW] [Yahoo!]
Badricky
Smalltalk
[Avatar]

Membro desde: 28/03/2010 21:08:45
Mensagens: 1
Localização: São Paulo
Offline

Obrigado por ajudar com os programas que todo iniciante em java precisa para desenvolver raciocínio lógico .

Fiz o mesmo programa com interface gráfica usando Swing ok.
Coloquei um estrutura de repetição para o usuário não digitar zero no valor de A pois como nosso amigo disse se A for zero não é do segundo grau .

import javax.swing.JOptionPane;

public class Equacao2grau {

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


//Definindo variáveis

double a;//nosso A da equação. Por exemplo: 2X+3Y-10=0, nesse caso o "a" é o 2.

double b;//nosso B da equação. Por exemplo: 2X+3Y-10=0, nesse caso o "b" é o 3.

double c;//nosso C da equação. Por exemplo: 2X+3Y-10=0, nesse caso o "c" é o -10.

double delta;//nosso Delta. Delta = "B" ao quadrado menos 4 vezes "A" vezes "C". Lembra?

double x1;//nossa primeira raiz da equação.

double x2;//nossa segunda raiz da equação.



a = Double.parseDouble(JOptionPane.showInputDialog("Escreva o valor de A:"));//Menssagem e leitura do "a"

while(a==0)//Enquanto o valor de A for igual a zero repete a mensagem e pede outro valor .
{
JOptionPane.showMessageDialog(null,"O valor de A não pode ser zero a equação é do 2º grau !\n Digite outro valor !");
a = Double.parseDouble(JOptionPane.showInputDialog("Escreva o valor de A:"));//Menssagem e leitura do "a"

}

b = Double.parseDouble(JOptionPane.showInputDialog("Escreva o valor de B:"));//Menssagem e leitura do "b"

c = Double.parseDouble(JOptionPane.showInputDialog("Escreva o valor de C:"));//Menssagem e leitura do "c"

delta = ((b*b)-(4*a*c));//Fórmula do Delta

x1 = 0;//Definindo um valor inicial para o x1

x2 = 0;//Definindo um valor inicial para o x2

if (delta >= 0)//Se o valor de delta for maior ou igual a zero podemos resolver...
{
x1 = (-b + Math.sqrt (delta)) / ( 2*a );//equação do x1

x2 = (-b - Math.sqrt (delta)) / ( 2*a ) ;//equação do x2

JOptionPane.showMessageDialog(null,"Delta vale :"+delta); //Mostra o valor de Delta
JOptionPane.showMessageDialog(null,"\nx1 vale: "+ x1 + "\n x2 vale: "+ x2 );//mostra o x1 e x2.

}
else//senão(se o delta não for maior nem igual a zero) não podemos resolver com números reais talves com números complexos podemos...
{
JOptionPane.showMessageDialog(null,"Não há soluções que possam ser expressas com o conjunto dos números reais ");//avisa que o delta deu condição complexa
}

}
//Ricardo Estefânio : Programador Junior .

}
[Email]
regis_hideki
JavaGuru
[Avatar]

Membro desde: 29/03/2010 19:22:50
Mensagens: 231
Offline

jlima1971 wrote:Dois lembretes matemáticos:

1) Verifique se a=0. Caso isso ocorra, não se trata de uma equação do segundo grau, além do que você provavelmente receberá como resultado `Infinity` para o delta.
Obs.: Uma equação do segundo grau tem a forma ax2+bx+c=0, onde a<>0.



A primeira parte está correta, ou seja, se "a" é igual a zero, a equação deixa de ser do segundo grau, mas isso não vai fazer o delta receber o valor "Infinity".

delta = b^2 - 4 * a * c.

Se a = 0 => delta = b^2

Nessas condições, delta = infinito se, e somente se, b = infinito, e isso não tem nada a ver com o fato de "a" ser zero.

Para os que estão fazendo o programa, podem fazer uma função que cálcula equações do primeiro grau que é chamada caso "a" seja igual a zero.
juliomendes90
JavaBaby
[Avatar]

Membro desde: 17/04/2013 16:36:27
Mensagens: 78
Offline

Sem usar swing ficou mais ou menos desse jeito:


Att,
Júlio Mendes
Estagiário de Desenvolvimento Java
Twitter: @juliomendes90
Skype: juliomendes90
[WWW] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team