Formula de Bhaskara
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!
Cdescovi
Curtidas 0
Melhor post
Luiz Gustavo
09/09/2014
É um método privado, ou seja, pertence somente a classe Delta então usamos o "private" para definir isso. Void porque não possui parâmetros, ou seja, não retorna nada.
É como nos atributos, quando queremos que o atributo seja visualizado apenas por aquela classe usamos o private, quando queremos que ele seja visualizado pela classe e pela classes herdeiras dela então usamos o protected, quando queremos que o atributo seja visualizado por qualquer classe usamos o public, no caso da classe Delta como temos apenas uma classe e nenhuma herdeira então usamos o private mas também poderíamos usar o public e o protected mas ficaria sem sentido.
Public, Private e Protected são chamados de Controladores de Acesso.
Segue um link para entender melhor: [url]http://www.tiexpert.net/programacao/java/public-private-protected.php[/url]
Caso não tenha entendido, o que fiz foi criar dois métodos, métodos são funções que uma classe contém, é como uma pessoa, uma pessoa seria a classe e as funções como falar, andar e etc, são os métodos. Então criei dois métodos, um que calcula Delta e outro que calcula a Raiz, para cada método precisamos definir se ele é public, protected ou private e em seguida o retorno dele, já que não há retorno em ambos então podemos colocar o void(é obrigatório). Criei um construtor sem parâmetros em cima(public Delta(){}) e chamei o método deltaCalculo(), no método principal que é o main eu apenas instanciei a classe chamando o método construtor que seria os parenteses depois do nome. Tudo isso foi feito baseando-se nos conceitos de ORIENTAÇÃO A OBJETOS.
Se você ainda não entrou nos conceitos de orientação a objetos, vou te passar o mesmo código mas sem OO(Orientação a Objetos), nele você precisa atribuir um valor para as variáveis(chamadas de atributos em java) já que você não irá conseguir entrar com os dados, onde está escrito ValorDaVariavel você atribui um valor e compila/executa a classe.
Segue o código:
Bons estudos, jovem!
import java.util.*;
public class Delta {
public static void main(String[] args) {
int a, b, c;
double delta, x1, x2;
a = ValorDaVariavel;
b = ValorDaVariavel;
c = ValorDaVariavel;
delta = (b * b) + (-4 * (a * c));
System.out.println("Delta: " + delta);
if (delta >= 0) {
x1 = ((-(b) + Math.sqrt(delta)) / 2 * a);
x2 = ((-(b) - Math.sqrt(delta)) / 2 * a);
System.out.println("x1 = " + x1);
System.out.println("x2 = " + x2);
} else {
System.out.println("Delta não possui raiz!");
System.exit(0);
}
}
}
GOSTEI 2
Mais Respostas
Luiz Gustavo
09/09/2014
Killua, não sei se é o que você quer mas em todo caso está aí!
Você pode criar dois métodos, um que calcula Delta e o outro que calcular X1 e X2, no que calcula Delta você pode fazer um IF depois de calcular Delta, no caso você faria a condição de que se Delta for maior ou igual a 0 ele chama o método que calcula X1 e X2, caso contrário ele encerra o programa.
Veja o código que montei para você:
Fiz as contas no papel e no programa e os resultados bateram.
Espero que seja isso mesmo e tenha te ajudado.
import java.util.*;
public class Delta {
Scanner read = new Scanner(System.in);
int a, b, c;
double delta, x1, x2;
public Delta() {
deltaCalculo();
}
private void deltaCalculo() {
System.out.println("Digite o valor de A, B e C respectivamente: ");
a = Integer.parseInt(read.next());
b = Integer.parseInt(read.next());
c = Integer.parseInt(read.next());
delta = (b * b) + (-4 * (a * c));
System.out.println("Delta: " + delta);
if (delta >= 0) {
calculaX();
} else {
System.out.println("Delta não possui raiz!");
System.exit(0);
}
}
private void calculaX() {
x1 = (double) ((-(b) + Math.sqrt(delta)) / 2 * a);
x2 = (double) ((-(b) - Math.sqrt(delta)) / 2 * a);
System.out.println("x1 = " + x1);
System.out.println("x2 = " + x2);
}
public static void main(String[] args) {
new Delta();
}
}
GOSTEI 1
Cdescovi
09/09/2014
Valeu Master, como disse sou iniciante 0 a esquerda mesmo, imaginei que fosse "IF" "ELSE", mas não tinha certeza e nem sabia onde declarar. Muito Obrigado!
Mais uma pergunta, desculpe a ignorância, mas por que "private void"?
GOSTEI 0
Cdescovi
09/09/2014
Cara, não tenho como te agradecer, além de dizer obrigado e dizer que te admiro por ter tal conhecimento e dar seu tempo para ajudar os outros.
Muito obrigado mesmo!
GOSTEI 0
Luiz Gustavo
09/09/2014
Sempre as ordens Killua, seja bem-vindo ao mundo da programação em JAVA.
Abraços, parceiro.
GOSTEI 0