Você está aqui: Java ::: Dicas & Truques ::: Números Complexos (Complex Numbers) |
Como somar dois números complexos usando Java - A classe NumeroComplexoQuantidade de visualizações: 1568 vezes |
|
Nesta dica mostrarei como tirar proveito da programação orientada a objetos em Java para criar uma classe NumeroComplexo e efetuar a soma de dois números complexos. Um número complexo na forma retangular (ou forma algébrica) apresenta o seguinte formato: 7 + j5 ou 7 + 5j onde 7 é a parte real e 5 é a parte imaginária. Note que usei a notação "j" em vez de "i" para a parte imaginária, uma vez que a notação "j" é a mais comum na engenharia. O primeiro passo é criar a classe NumeroComplexo, que servirá para representarmos a parte real e a parte imaginária. Veja o código:
package estudos;
public class NumeroComplexo {
private double real; // parte real
private double imaginaria; // parte imaginária
// construtor padrão
public NumeroComplexo() {
}
// construtor adicional da classe NumeroComplexo
public NumeroComplexo(double real, double imaginaria) {
this.real = real;
this.imaginaria = imaginaria;
}
// método estático que recebe dois números complexo
// e retorna sua soma, também como um número complexo
public static NumeroComplexo somar(NumeroComplexo a, NumeroComplexo b){
// variável temporária
NumeroComplexo temp = new NumeroComplexo();
// primeira somamos as partes reais dos dois
// números complexos
temp.setReal(a.getReal() + b.getReal());
// em seguida somamos as partes imaginárias dos dois
// números complexos
temp.setImaginaria(a.getImaginaria() + b.getImaginaria());
// finalmente retornamos o novo número complexo
return temp;
}
// mostra a representação textual do número complexo
@Override
public String toString(){
if(this.imaginaria < 0){
return this.real + " - j" + Math.abs(this.imaginaria);
}
else{
return this.real + " + j" + this.imaginaria;
}
}
public double getReal() {
return real;
}
public void setReal(double real) {
this.real = real;
}
public double getImaginaria() {
return imaginaria;
}
public void setImaginaria(double imaginaria) {
this.imaginaria = imaginaria;
}
}
Note que esta classe Java possui boa parte dos conhecimentos comuns da programação orientada a objetos: construtores, método estático, encapsulamento de dados e sobrecarga do método toString() para exibir a representação textual do número complexo. Veja agora o código da classe principal, na qual pedimos para o usuário informar dois números complexos e efetuamos a sua soma:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args){
// vamos usar a classe Scanner para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos ler a parte real e a parte imaginária do primeiro
// número complexo
System.out.print("Parte real do primeiro número: ");
double realPrimeiro = Double.parseDouble(entrada.nextLine());
System.out.print("Parte imaginária do primeiro número: ");
double imagPrimeiro = Double.parseDouble(entrada.nextLine());
// vamos ler a parte real e a parte imaginária do segundo
// número complexo
System.out.print("Parte real do segundo número complexo: ");
double realSegundo = Double.parseDouble(entrada.nextLine());
System.out.print("Parte real do segundo número complexo: ");
double imagSegundo = Double.parseDouble(entrada.nextLine());
// agora criamos os dois números complexos
NumeroComplexo a = new NumeroComplexo(realPrimeiro, imagPrimeiro);
NumeroComplexo b = new NumeroComplexo(realSegundo, imagSegundo);
// obtemos a soma dos números complexos
NumeroComplexo soma = NumeroComplexo.somar(a, b);
// para finalizar mostramos os resultados
System.out.println("Primeiro número complexo: " + a.toString());
System.out.println("Segundo número complexo: " + b.toString());
System.out.println("Soma: " + soma.toString());
System.exit(0);
}
}
Ao executar este código Java nós teremos o seguinte resultado: Parte real do primeiro número: 8 Parte imaginária do primeiro número: -3 Parte real do segundo número complexo: 5 Parte real do segundo número complexo: 9 Primeiro número complexo: 8.0 - j3.0 Segundo número complexo: 5.0 + j9.0 Soma: 13.0 + j6.0 |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




