package numeroImaginario;
import java.util.Scanner;
/**
*
* @author DAVID RICO
*/
public class numeroComplejo {
//Atributos
private double parteReal;
private double parteImaginaria;
//Constructores
public numeroComplejo() {
//parteReal = 0.0;
//parteImaginaria = 0.0;
}
public numeroComplejo(double parteReal, double parteImaginaria) {
this.parteReal = parteReal;
this.parteImaginaria = parteImaginaria;
}
//getters
public double getParteReal() {
return parteReal;
}
public double getParteImaginaria() {
return parteImaginaria;
}
//setters
public void setParteReal(double parteReal) {
this.parteReal = parteReal;
}
public void setParteImaginaria(double parteImaginaria) {
this.parteImaginaria = parteImaginaria;
}
@Override
public String toString() {
if (parteImaginaria < 0) {
return parteReal + "" + parteImaginaria + "i";
}
if (parteImaginaria == 0.0) {
return "" + parteReal;
}
return parteReal + "+i" + parteImaginaria;
}
//operaciones con metodo miembro
public numeroComplejo suma(numeroComplejo other) {
double ncReal = this.parteReal + other.parteReal;
double ncImaginaria = this.parteImaginaria + other.parteImaginaria;
return new numeroComplejo(ncReal, ncImaginaria);
}
public numeroComplejo resta(numeroComplejo other) {
double ncReal = this.parteReal - other.parteReal;
double ncImaginaria = this.parteImaginaria - other.parteImaginaria;
return new numeroComplejo(ncReal, ncImaginaria);
}
public numeroComplejo multiplica(numeroComplejo other) {
double ncReal = (this.parteReal * other.parteReal)
- (this.parteImaginaria * other.parteImaginaria);
double ncImaginaria = this.parteImaginaria * other.parteReal
+ this.parteReal * other.parteImaginaria;
return new numeroComplejo(ncReal, ncImaginaria);
}
public numeroComplejo divide(numeroComplejo other) {
double ncReal = this.parteReal * other.parteReal
+ this.parteImaginaria * other.parteImaginaria;
double ncImaginaria = this.parteImaginaria * other.parteReal
- this.parteReal * other.parteImaginaria;
double division = other.parteReal * other.parteReal
+ other.parteImaginaria * other.parteImaginaria;
return new numeroComplejo(ncReal / division, ncImaginaria / division);
}
//metodos estaticos
public static numeroComplejo suma(numeroComplejo nc1, numeroComplejo nc2) {
double ncReal = nc1.parteReal + nc2.parteReal;
double ncImaginaria = nc1.parteImaginaria + nc2.parteImaginaria;
return new numeroComplejo(ncReal, ncImaginaria);
}
public static numeroComplejo resta(numeroComplejo nc1, numeroComplejo nc2) {
double ncReal = nc1.parteReal - nc2.parteReal;
double ncImaginaria = nc1.parteImaginaria - nc2.parteImaginaria;
return new numeroComplejo(ncReal, ncImaginaria);
}
public static numeroComplejo multiplica(numeroComplejo nc1, numeroComplejo nc2) {
double ncReal = (nc1.parteReal * nc2.parteReal)
- (nc1.parteImaginaria * nc2.parteImaginaria);
double ncImaginaria = nc1.parteImaginaria * nc2.parteReal
+ nc1.parteReal * nc2.parteImaginaria;
return new numeroComplejo(ncReal, ncImaginaria);
}
public static numeroComplejo divide(numeroComplejo nc1, numeroComplejo nc2) {
double ncReal = nc1.parteReal * nc2.parteReal
+ nc1.parteImaginaria * nc2.parteImaginaria;
double ncImaginaria = nc1.parteImaginaria * nc2.parteReal
- nc1.parteReal * nc2.parteImaginaria;
double division = nc2.parteReal * nc2.parteReal
+ nc2.parteImaginaria * nc2.parteImaginaria;
return new numeroComplejo(ncReal / division, ncImaginaria / division);
}
public static void main2(String[] args) {
numeroComplejo nc1 = new numeroComplejo(3.0, 2.0),
nc2 = new numeroComplejo(1.0, -2.0),
nc3 = new numeroComplejo(3.4, 2.8);
System.out.println("nc1 = " + nc1);
System.out.println("nc2 = " + nc2);
System.out.println("nc3 = " + nc3);
System.out.println("nc1+nc2 = " + nc1.suma(nc2));
System.out.println("nc1-nc2 = " + nc1.resta(nc2));
System.out.println("nc1*nc2 = " + nc1.multiplica(nc2));
System.out.println("nc1/nc2 = " + nc1.divide(nc2));
System.out.println("nc1+nc3 = " + suma(nc1, nc3));
System.out.println("nc1-nc3 = " + resta(nc1, nc3));
System.out.println("nc1*nc2 = " + multiplica(nc1, nc2));
System.out.println("nc1/nc2 = " + divide(nc1, nc2));
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String resp = "";
do {
System.out.print("Ingresa la parte real del numero complejo 1: ");
double nc1Real = in.nextDouble();
System.out.print("Ingresa la parte imaginaria del numero complejo 1 : ");
double nc1Img = in.nextDouble();
System.out.print("Ingresa la parte real de numero complejo 2: ");
double nc2Real = in.nextDouble();
System.out.print("Ingrese la parte imaginaria del numero complejo 2 :");
double nc2Img = in.nextDouble();
numeroComplejo nc1 = new numeroComplejo(nc1Real, nc1Img);
numeroComplejo nc2 = new numeroComplejo(nc2Real, nc2Img);
System.out.print("1-Suma \n2-Resta \n3-Multiplicacion \4-Division"
+ "\n¿Que operacion desera realizar?: ");
int opcion = in.nextInt();
while (!(opcion <= 4 && opcion > 0)) {
System.out.println("1-Suma \n2-Resta \n3-Multiplicacion \4-Division"
+ "\n¿Que operacion desera realizar?: ");
opcion = in.nextInt();
}
switch (opcion) {
case 1:
System.out.println("la suma de tus dos numeros complejos es: "
+ suma(nc1, nc2));
break;
case 2:
System.out.println("la resta de tus dos numeros complejos es: "
+ resta(nc1, nc2));
break;
case 3:
System.out.println("la multiplicacion de tus dos numeros complejos es: "
+ multiplica(nc1, nc2));
break;
case 4:
System.out.println("la division de tus dos numeros complejos es: "
+ divide(nc1, nc2));
break;
}
System.out.print("Deseas continuar ? s/n: ");
resp = in.nextLine();
} while (resp.charAt(0) == 's' || resp.charAt(0) == 'S');
}
}
Alguien seria tan amable de decirme por que cuando se hace el ciclo de la linea 154 despues de que me realizo alguna de las operaciones anteriores se salta a la linea 177 y no me deja ingresar la opcion? si no que me marca error y termina todo en vez de que me diga si "s/n"?
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.