Foro de elhacker.net

Programación => Java => Mensaje iniciado por: JorgeEMX en 13 Noviembre 2006, 04:47 am



Título: Duda Retornar valor en java (solucionado)
Publicado por: JorgeEMX en 13 Noviembre 2006, 04:47 am
Hola estoy tratando de hacer un método que multiplique dos numeros complejos, pero no sé bien como devolver el resultado ya que los resultados los guardo en dos variables, una para el valor real y otra para el valor imaginario..

Código:
double multiplicar(double x, double y){
double real;
double imaginario;
real=(this.r*x)+(this.i*y*-1);
imaginario=(this.i*x)+(this.r*y);
}
p.d Notesé que no sé practicamente nada de java xD, lo hago a pura intuición  :rolleyes: ;D ;D ;D ;D


Título: Re: Duda Retornar valor en java
Publicado por: Ragnarok en 13 Noviembre 2006, 12:45 pm
Puedes hacer varias cosas, como una clase que contenga los dos valores y devolver un objeto de esa clase, puedes devolver un array con esos dos elementos, etc.


Título: Re: Duda Retornar valor en java
Publicado por: JorgeEMX en 13 Noviembre 2006, 20:48 pm
Bueno eso sé como manejarlo, estaba pensando en devolver una cadena conviertiendo los dos valores resultantes, algo como: Valor real + Valor imaginario i ..

He mirado la clase String y creo puedo retornar un arreglo de caracteres, creo es:
Código:
String copyValueOf( char data[] );
    String copyValueOf( char data[],int offset,int count );

Una ayudadita? xD

p.d Ragnarok Podrías mencionar un poco más sobre una clase que contenga los dos valores y devolver un objeto de esa clase?

Saludos!!


Título: Re: Duda Retornar valor en java
Publicado por: Ragnarok en 13 Noviembre 2006, 21:02 pm
Puedes utilizar toString y concatenar los strings en uno separados por alguna clase de delimitador, pero la opción que planteo creo que es mejor. Un número se llama imaginario cuando tiene una parte imaginaria, podrías hacer algo así:

Código:
public class Imaginario extends Object{
  public double parte_real;
  public double parte_imaginaria;
}

Puedes definirlos como private y usar métodos set y get, pero no le veo la utilidad a complicarlo de esa forma.


Título: Re: Duda Retornar valor en java
Publicado por: JorgeEMX en 13 Noviembre 2006, 21:12 pm
Bueno lo que pasa es que el resultado de la multiplicación lo visualizaré en una ventana de dialogo de la forma que antes mencione(Valor real + Valor imaginario i )..

Citar
Puedes utilizar toString y concatenar los strings

Algún ejemplo?

Citar
pero la opción que planteo creo que es mejor
? =\

Disculpa las molestias =\ xD


Título: Re: Duda Retornar valor en java
Publicado por: Ragnarok en 13 Noviembre 2006, 21:43 pm
A ver si así:

Código:
public class Imaginario extends Object{
  public double parte_real;
  public double parte_imaginaria;
 
  public Imaginario (){
    parte_real = 0;
    parte_imaginaria = 0;
  }

  public Imaginario (double parte_real, double parte_imaginaria){
    this.parte_real = parte_real;
    this.parte_imaginaria = parte_imaginaria;
  }

}

Ante cualquier duda relee los posts anteriores.


Título: Re: Duda Retornar valor en java
Publicado por: JorgeEMX en 13 Noviembre 2006, 22:06 pm
No entiendo bien xD, si de hecho lo que has puesto es similar a la clase que estoy definiendo..

Citar
public class CComplejo{
   double r;
   double i;
   
   public CComplejo(double x, double y){
      this.r=x;
      this.i=y;
   }
   
   String ver(){
      String str=String.valueOf(this.r + this.i);
      return str;
   }

   String multiplicar(double x, double y){
      double real;
      double imaginario;
      real=(this.r*x)+((this.i*y)*-1);
      imaginario=(this.i*x)+(this.r*y);
      
       /*String copyValueOf( char data[] );
       String copyValueOf( char data[],int offset,int count );*/
      String str=String.valueOf(this.r + this.i);
      return str;
   }
}

Mi problema es no sé como retornar los valores tanto del método de la multiplicación, como del método para visualizar de la forma: Valor real + Valor imaginario i  (ejemplo: 5+4i), todo esto, al programa principal que haga uso de la clase.
Como mencione antes, intento regresar una cadena de caracteres (o de cualquier otra posible solución),que pienso yo, lo más viable seá un arreglo de caracteres..

Y este pedazo de código posiblemente seá incorrecto:
Código:
	String str=String.valueOf(this.r + this.i);
return str;


Título: Re: Duda Retornar valor en java
Publicado por: Ragnarok en 13 Noviembre 2006, 22:33 pm
ok, entonces lo que tienes que hacer es esto:

Código:
CComplejo multiplicar(CComplejo x){
      double real;
      double imaginario;
      real=(this.r*x.r)+((this.i*x.i)*-1);
      imaginario=(this.i*x.r)+(this.r*x.i);
      return new CComplejo (real, imaginario);
   }

Suponiendo que las cuentas estén bien hechas, no me he parado a pensarlo.

PD: La multiplicación de números complejos tiene que devolver un número complejo, "tea duck queen?"

PD2: o aun mas breve:

Código:
CComplejo multiplicar(CComplejo x){
      return new CComplejo ((r*x.r-i*x.i),(i*x.r+r*x.i));
   }

Anda que tanto jaleo para eso... XD.


Título: Re: Duda Retornar valor en java
Publicado por: cornell en 13 Noviembre 2006, 23:23 pm
tambien podrias hacer esto:

Código:
private double[] multiplicar(double x, double y){
  double numero[] = new double[2];

  numero[0]=(this.r*x)+(this.i*y*-1);
  numero[1]=(this.i*x)+(this.r*y);
 
  return numero;
}


esooo....


Título: Re: Duda Retornar valor en java
Publicado por: jur318 en 29 Diciembre 2006, 19:11 pm
A ver si así:

Código:
public class Imaginario extends Object{
  public double parte_real;
  public double parte_imaginaria;
 
  public Imaginario (){
    parte_real = 0;
    parte_imaginaria = 0;
  }

  public Imaginario (double parte_real, double parte_imaginaria){
    this.parte_real = parte_real;
    this.parte_imaginaria = parte_imaginaria;
  }

}

Ante cualquier duda relee los posts anteriores.

xq extends object?


Título: Re: Duda Retornar valor en java (solucionado)
Publicado por: Ragnarok en 29 Diciembre 2006, 19:13 pm
Me lo puso eclipse solo, tampoco molesta y como sabrás todas las clases derivan de Object.