Java - Ayuda!!!!! Complejos en java

 
Vista:

Ayuda!!!!! Complejos en java

Publicado por Incognito (5 intervenciones) el 22/01/2006 20:16:04
Hola, soy yo de nuevo, Gilberto me hizo el favor de arreglar unas cosas del codigo que publique, y se lo agradezco,aunque no me sirve de mucho por que no dije bien lo que tenia que hacer, Tengo que hacer una clase (llamada complejos) que contenga los metodos que pusé aqui, y despues otra clase que se llame OperacionesConComplejosApli donde inicialize tres complejos en 0 y luego mediante un menu por casos el usuario eliga una opcion, y en la opcion llamar a los metodos, bueno, no he dormido bien en unos dias y lo unico que obtuve (soy tremendamente malo para java) fue el codigo que postie en el mensaje anterior,esto es lo que gilberto arreglo:
import java.io.*;
public class Complejo {

boolean rectangular;
double real,imag; // coordenadas rectangulares
double mod,angle; // coordenadas polares

public Complejo(){
real=0.0;
imag=0.0;
rectangular= true;
}
//constructor del objeto Complejo
public Complejo(double r,double i, boolean t){
real=r;
imag=i;
rectangular=t;
}

//metodo de captura
public Complejo asignarCoordenadas()throws IOException{
real=ObtenerDoble.Obtenerdoble("¿Cual es el valor de la parte real?");
imag=ObtenerDoble.Obtenerdoble("¿Cual es el valor de la parte imaginaria?");
rectangular=true;
return new Complejo(real,imag,reactangular);
}

//metodo para la impresion
public void imprime() {
if(rectangular){
if(imag >= 0) System.out.println(real + " + " + imag+"i");
else System.out.println(real + " " + (-imag+"i"));
}
else
System.out.println(real+"cis"+imag);
}

//metodo para la suma
public Complejo suma(Complejo b){
if(!rectangular)
ConvierteARectangular();
if(!b.rectangular)
b.ConvierteARectangular();
Complejo c=new Complejo();
c.real=real+b.real;
c.imag=imag+b.imag;

return c;
}
//metodo para la resta
public Complejo resta(Complejo b){
if(!rectangular)
ConvierteARectangular();
if(!b.rectangular)
b.ConvierteARectangular();
Complejo c =new Complejo();
c.real=real-b.real;
c.imag=imag-b.imag;
return c;
}
public Complejo restab(Complejo b, Complejo a){
if(!rectangular)
ConvierteARectangular();
if(!b.rectangular)
b.ConvierteARectangular();
Complejo c =new Complejo();
c.real=b.real-real;
c.imag=b.imag-imag;
return c;
}
//metodo para el producto
public Complejo producto(Complejo b,Complejo a){
if(!rectangular)
ConvierteARectangular();
if(!b.rectangular)
b.ConvierteARectangular();
Complejo c=new Complejo();
c.real=real*b.real-imag*b.imag;
c.imag=real*b.imag+imag*b.real;
return c;
}
//metodo para la division de a/b
public Complejo cociente(Complejo b){
double div,tab,tba;
if(!rectangular)
ConvierteARectangular();
if(!b.rectangular)
b.ConvierteARectangular();
Complejo c=new Complejo();
div=b.real*b.real+b.imag*b.imag;
tab=real*b.real+imag*b.imag;
tba=imag*b.real-b.imag*real;
c.real=tab/div;
c.imag=tba/div;
return c;
}

//Para copiar el complejo c en el a
public static Complejo copiaa(Complejo c){
Complejo a= new Complejo();
if(!c.rectangular)
c.ConvierteARectangular();
a.real=c.real;
a.imag=c.imag;
return a;
}
//metodo para copiar el complejo c en el b
public static Complejo copiab(Complejo c){
Complejo b=new Complejo();
if(!c.rectangular)
c.ConvierteARectangular();
b.real=c.real;
b.imag=c.imag;
return b;
}

//metodo para convertir de rectangular a polar
public void ConvierteAPolar() {

mod = Math.sqrt(a.real*a.real + a.imag*a.imag);
angle = Math.atan2(a.imag,a.real);
rectangular = false;
}
//metodo para convertir de polar a rectangular
public void ConvierteARectangular(){

real = mod * Math.cos(angle);
imag = mod * Math.sin(angle);
rectangular = true;
}
}

Pero creo que al entregar los argumentos en el mismo metodo, no me va servir mucho en la otra clase que tiene que ser mas o menos asi:
class OperacionesConComplejos{
public static void main(String[]args)throws IOException{
InputStreamReader entrada=new InputStreamReader(System.in);
BufferedReader teclado=new BufferedReader (entrada);
String texto;
int opcion;
Complejo a=new Complejo(0,0, rectangular);
Complejo b=new Complejo(0,0, rectangular);
Complejo c=new Complejo(0,0, rectangular);
while (opcion>=1&&opcion<=14){
System.out.println("___________________________________________________");
System.out.println("|(1)Especifica el numero complejo a |");
System.out.println("|(2)Especifica el numero complejo b |");
System.out.println("|_________________________________________________|");
System.out.println("|(3)Imprimir el complejo a |");
System.out.println("|(4)Imprimir el complejo b |");
System.out.println("|(5)Imprimir el complejo c |");
System.out.println("|(6)Imprimir los tres complejos a,b,y c |");
System.out.println("|_________________________________________________|");
System.out.println("|(7)Sumar el complejo a al complejo b |");
System.out.println("|_________________________________________________|");
System.out.println("|(8)Restar el complejo a del complejo b |");
System.out.println("|(9)Restar el complejo b del complejo a |");
System.out.println("|_________________________________________________|");
System.out.println("|(10)Multiplicar el complejo a por el complejo b |");
System.out.println("|(11)Dividir el complejo a entre el complejo c |");
System.out.println("|(12)Dividir el complejo b entre el complejo a |");
System.out.println("|_________________________________________________|");
System.out.println("|(13)Copiar el complejo c al complejo a |");
System.out.println("|(14)Copiar el complejo c al complejo b |");
System.out.println("|_________________________________________________|");
System.out.println("|(15)Salir |");
System.out.println("|_________________________________________________|");
texto=teclado.readLine();
desicion=(Integer.valueOf(texto)).intValue();
switch (opcion){
case 1:
Complejo.asignarCoordenadas(Complejo a);
break;
case 2:
Complejo.asignarCoordenadas(Complejo b);
break;
case 3:
Complejo.imprime(Complejo a);
break;
case 4:
Complejo.imprime(Complejo b);
break;
case 5:
Complejo.imprime(Complejo c);
break;
case 6:
Complejo.imprime(Complejo a);
Complejo.imprime(Complejo b);
Complejo.imprime(Complejo c);
break;
case 7:
Complejo c=Complejo.suma(a,b);
imprime("Suma "+c);
break;
case 8:
Complejo c=Complejo.resta(a,b);
imprime("Suma"+c);
break;
case 9:
Complejo c=Complejo.resta(b,a);
imprime("Resta"+c);
break;
case 10:
Complejo c=Complejo.producto(a,b);
imprime("Producto"+c);
}

}}} Esta clase no la he terminado y tiene bastantes errores , mi interes es echar a andar la primera, y ya asi esta no seria tanto problema, por favor ayudenme, hay cosas de mas en esta, y faltan, pero es que me he dedicado el 95% del tiempo a la otra CUALQUIER AYUDA ES AGRADECIDA.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda!!!!! Complejos en java

Publicado por Gilberto (378 intervenciones) el 22/01/2006 20:55:25
si lo que quieres es que el método asignaComplejo lea sus valores desde el teclado, corrigelo así:

public static Complejo asignarCoordenadas()throws IOException{
double re=ObtenerDoble.Obtenerdoble("¿Cual es el valor de la parte real?");
double im=ObtenerDoble.Obtenerdoble("¿Cual es el valor de la parte imaginaria?");
rectangular=true;
return new Complejo(real,imag,reactangular);
}

Luego, en la otra clase,

case 1:
a = Complejo.asignaComplejo();
break;
case 2:
b = Complejo.asignaComplejo();
break;
case 3:
a.imprime();
break;
case 4:
b.imprime();
break;
...
case 7:
c = a.suma(b);
c.imprime();
break;
case 8:
c = a.resta(b);
c.imprime();
break;
etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda!!!!! Complejos en java

Publicado por incognito (5 intervenciones) el 22/01/2006 21:32:30
Erm, creo que no entiendo bien como :..(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar