Eu estou com um exercício em mãos e não consigo resolve-lo, alguém pode me ajudar? É o seguinte:
(Números complexos) Crie uma classe chamada Complex para realizar aritmética com números complexos. Os números complexos têm a forma: parteReal + parteImaginaria * i
onde i é raiz quadrada de -1
Escreva um programa para testar sua classe. Utilize variáveis de ponto flutuantes para representar os dados private da classe. Forneça um construtor que permita um objeto dessa classe seja inicializado quando ele for declarado. Forneça um construtor sem argumento com valores-padrão caso nenhum inicializador seja fornecido. Forneça métodos public que realizam as seguintes operações:
a) Somar dois números Complex: as partes reais somadas de um lado e as partes imaginárias são somadas de outro.
b) Subtrair dois números Complex: A parte real do operando direito é subtraida da parte real do operando esquerdo e a parte imaginaria do operando direito é subtraida da parte imaginaria do operendo esquerdo.
c) Imprimir números Complex na forma (a,b), onde a é a parte real e b a parte imaginaria.
Esse problema com números complexos era mais simples do que eu imaginava!
E
entanglement
Concordo que é simples, mas você não obedeceu ao espírito do enunciado, e provavelmente teria a nota reduzida se o seu professor fosse muito rigoroso. Usualmente você resolveria esse problema assim:
a) A classe Complex tem apenas e tão somente 2 variáveis de instância, não 4. Em matemática, quem teria 4 variáveis de instância são os “quatérnions”.
b) Um exemplo muito, muito simplificado da resolução do seu problema:
/** * Representa um numero complexo e as operações de soma e sub */publicclassComplex{// utilize variaveis de ponto flutuante para representar os dados private da classeprivatedoublea;privatedoubleb;// forneca um construtor que permita que um objeto seja inicializado quando for declaradopublicComplex(doublea,doubleb){this.a=a;this.b=b;}// forneca um construtor sem argumentos com valores padrao caso nenhum inicializador seja fornecidopublicComplex(){this.a=0.0;this.b=0.0;}// forneca um metodo para somar 2 numeros ComplexpublicstaticComplexsomar(Complexx,Complexy){returnnewComplex(x.a+y.a,x.b+y.b);}// forneca um metodo para subtrair 2 numeros ComplexpublicstaticComplexsubtrair(Complexx,Complexy){returnnewComplex(x.a-y.a,x.b-y.b);}// forneca um metodo para imprimir numeros Complex na forma (a,b)publicStringtoString(){return"("+a+", "+b+")";}}classTesteComplex{publicstaticvoidmain(String[]args){Complexabc=newComplex(4.5,6.7);Complexdef=newComplex(7.8,-9.1);Complexzero=newComplex();System.out.println(abc);// imprime o numero (4.5, 6.7)System.out.println(def);// imprime o numero (7.8, -9.1)System.out.println(Complex.somar(abc,def));// imprime a soma, que eh (12.3, -2.4)System.out.println(Complex.subtrair(abc,def));// imprime a soma, que eh (-3.3, 15.8)}}
fernando.rj021
Desde o começo eu nao tinha entendido bem o enunciado, só consegui fazer pois fiz pesquisas na internet. Esse foi o primeiro esboço do programa, claro que ele pode ser melhorado ainda mais com a sua versao.
Muito obrigado.
B
brunoeac
entanglement:
Concordo que é simples, mas você não obedeceu ao espírito do enunciado, e provavelmente teria a nota reduzida se o seu professor fosse muito rigoroso. Usualmente você resolveria esse problema assim:
a) A classe Complex tem apenas e tão somente 2 variáveis de instância, não 4. Em matemática, quem teria 4 variáveis de instância são os "quatérnions".
b) Um exemplo muito, muito simplificado da resolução do seu problema:
/** * Representa um numero complexo e as operações de soma e sub */publicclassComplex{// utilize variaveis de ponto flutuante para representar os dados private da classeprivatedoublea;privatedoubleb;// forneca um construtor que permita que um objeto seja inicializado quando for declaradopublicComplex(doublea,doubleb){this.a=a;this.b=b;}// forneca um construtor sem argumentos com valores padrao caso nenhum inicializador seja fornecidopublicComplex(){this.a=0.0;this.b=0.0;}// forneca um metodo para somar 2 numeros ComplexpublicstaticComplexsomar(Complexx,Complexy){returnnewComplex(x.a+y.a,x.b+y.b);}// forneca um metodo para subtrair 2 numeros ComplexpublicstaticComplexsubtrair(Complexx,Complexy){returnnewComplex(x.a-y.a,x.b-y.b);}// forneca um metodo para imprimir numeros Complex na forma (a,b)publicStringtoString(){return"("+a+", "+b+")";}}classTesteComplex{publicstaticvoidmain(String[]args){Complexabc=newComplex(4.5,6.7);Complexdef=newComplex(7.8,-9.1);Complexzero=newComplex();System.out.println(abc);// imprime o numero (4.5, 6.7)System.out.println(def);// imprime o numero (7.8, -9.1)System.out.println(Complex.somar(abc,def));// imprime a soma, que eh (12.3, -2.4)System.out.println(Complex.subtrair(abc,def));// imprime a soma, que eh (-3.3, 15.8)}}
Putz, valeu muito aí por essa explicação entanglement, você tornou esse exercício simples, obrigado mesmo!