// Bosquejo de un programa para manipular ComplejoFraccionario // Autor: Antonio Carrillo Ledesma // http://mmc.geofisica.unam.mx/acl/ //~ public class ComplejoFraccionario { public class ComplejoFraccionario extends Numero { // Parte real del complejo private Fraccion R; // Parte imaginaria del complejo private Fraccion I; // Constructores public ComplejoFraccionario() { R = new Fraccion(); I = new Fraccion(); } // Constructores public ComplejoFraccionario(long r, long i) { R = new Fraccion(r); I = new Fraccion(i); } // Constructores public ComplejoFraccionario(long r) { R = new Fraccion(r); I = new Fraccion(); } public ComplejoFraccionario(long rn, long rd, long in, long id) { R = new Fraccion(rn, rd); I = new Fraccion(in, id); } // Constructores public ComplejoFraccionario(ComplejoFraccionario a) { R = a.parteReal(); I = a.parteImaginaria(); } // Genera un nuevo miembro de la clase public Numero nuevo() { Numero c = new ComplejoFraccionario(); return c; } // Retorna la parte real del complejo public Fraccion parteReal() { return R; } // Retorna la parte imaginaria del complejo public Fraccion parteImaginaria() { return I; } // Regresa verdadero si el complejo es cero public boolean esCero() { if (parteReal().numerador() == 0.0 && parteImaginaria().numerador() == 0.0) return true; return false; } // Suma de dos operandos public void suma(Numero A, Numero B) { ComplejoFraccionario a = new ComplejoFraccionario( (ComplejoFraccionario) A); ComplejoFraccionario b = new ComplejoFraccionario( (ComplejoFraccionario) B); R.suma(a.parteReal(), b.parteReal()); I.suma(a.parteImaginaria(), b.parteImaginaria()); } // Suma con un operando public void suma(Numero A) { ComplejoFraccionario a = new ComplejoFraccionario( (ComplejoFraccionario) A); R.suma(parteReal(), a.parteReal()); I.suma(parteImaginaria(), a.parteImaginaria()); } // Visualiza el complejo public void visualiza() { R.visualiza(); System.out.print("+"); I.visualiza(); System.out.print("i"); } // Ejemplito de uso ... public static void main(String[] args) { ComplejoFraccionario a, b, c; a = new ComplejoFraccionario(2, 4, 7, 5); b = new ComplejoFraccionario(5, 2); c = new ComplejoFraccionario(); c.suma(a, b); a.visualizaLN(); b.visualizaLN(); c.visualizaLN(); } };