<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">// Clase para manipular vectores
// Antonio Carrillo Ledesma


public class Vector &lt;T extends Numero&gt; {

   // Coeficientes del vector
   private Numero [] c;

   // Guarda la dimension del arreglo de coeficientes
   private int dim;

   // Constructor de la clase
   public Vector() {
      dim = 0;
   }


   // Asigna coeficientes
   public void asignaCoeficientes(Numero []coef) {
      int i, n = coef.length;
      c = new Numero[n];
      for (i = 0; i &lt; n; i++) c[i] = coef[0].nuevo();
      dim = n;
      for (i = 0; i &lt; n; i++) c[i]  = coef[i];
   }


   // Retorna los coeficientes
   Numero coeficiente(int i) {
      if (i &gt;= dim) {
         System.out.print("Error");
         return c[0].nuevo();
      }
      return c[i];
   }


   // Retorna la dimension del arreglo de coeficientes
   int dimension() {
      return dim;
   }


   // Visualiza el vector
   public void visualiza() {
      int i;
      System.out.print("(");
      for (i = 0; i &lt; dim; i++) {
         c[i].visualiza();
         if(i &lt; dim - 1) System.out.print(", ");
      }
      System.out.print(")");
   }

   // Visualiza el vector
   public void visualizaLN() {
      visualiza();
      System.out.println("");
   }


   // Suma con dos operandos
   public void suma(Vector a, Vector b) {
      int i;
      dim = 0;

      // Revisa el tamano de los vectores
      if(a.dimension() != b.dimension()) {
         System.out.println("Error, las dimensiones no son iguales");
      } else {
         // Solicita memoria para los coeficientes del vector resultante
         dim = a.dimension();
         c = new Numero[dim];
         for (i = 0; i &lt; dim; i++) c[i] = a.coeficiente(0).nuevo();
         // Realiza la suma entre el coeficientes comunes
         for (i = 0; i &lt; dim; i++)  c[i].suma(a.coeficiente(i), b.coeficiente(i));
      }
   }


   // Suma con un operando
   public void suma(Vector a) {
      int i;
      dim = 0;
      // Revisa el tamano de los vectores
      if(dimension() != a.dimension()) {
         System.out.println("Error, las dimensiones no son iguales");
      } else {
         // Realiza la suma entre el coeficientes comunes
         for (i = 0; i &lt; dim; i++)  c[i].suma(a.coeficiente(i));
      }
   }




   // Funcion Principal ....
   public static void main(String[] args) {

      // Ejemplito para vectores de coeficientes de tipo Double
      Double []r = new Double[3];
      r[0] = new Double(1);
      r[1] = new Double(2);
      r[2] = new Double(3);
      Double []s = new Double[3];
      s[0] = new Double(5);
      s[1] = new Double(6);
      s[2] = new Double(7);

      Vector&lt;Double&gt; R = new Vector&lt;Double&gt; ();
      R.asignaCoeficientes(r);
      Vector&lt;Double&gt; S = new Vector&lt;Double&gt; ();
      S.asignaCoeficientes(s);
      Vector&lt;Double&gt; TT = new Vector&lt;Double&gt; ();

      System.out.println("Double");
      R.visualizaLN();
      System.out.println("+");
      S.visualizaLN();
      TT.suma(R, S);
      System.out.println("=====================");
      TT.visualizaLN();
      System.out.println("");
      System.out.println("");



      // Ejemplito para vectores de coeficientes de tipo Fraccion
      Fraccion []a = new Fraccion[3];
      a[0] = new Fraccion(1, 2);
      a[1] = new Fraccion(2, 2);
      a[2] = new Fraccion(3, 2);
      Fraccion []b = new Fraccion[3];
      b[0] = new Fraccion(1, 3);
      b[1] = new Fraccion(2, 3);
      b[2] = new Fraccion(3, 3);

      Vector&lt;Fraccion&gt; A = new Vector&lt;Fraccion&gt; ();
      A.asignaCoeficientes(a);
      Vector&lt;Fraccion&gt; B = new Vector&lt;Fraccion&gt; ();
      B.asignaCoeficientes(b);
      Vector&lt;Fraccion&gt; C = new Vector&lt;Fraccion&gt; ();

      System.out.println("Fraccion");
      A.visualizaLN();
      System.out.println("+");
      B.visualizaLN();
      C.suma(A, B);
      System.out.println("=====================");
      C.visualizaLN();
      System.out.println("");
      System.out.println("");



      // Ejemplito de vectores de coeficionets de tipo Complejos
      Complejos []x = new Complejos[3];
      x[0] = new Complejos(2, 3);
      x[1] = new Complejos(2, 2);
      x[2] = new Complejos(3, 2);
      Complejos []y = new Complejos[3];
      y[0] = new Complejos(-2, -3);
      y[1] = new Complejos(2, 3);
      y[2] = new Complejos(3, 3);

      Vector&lt;Complejos&gt; X = new Vector&lt;Complejos&gt;();
      X.asignaCoeficientes(x);
      Vector&lt;Complejos&gt; Y = new Vector&lt;Complejos&gt;();
      Y.asignaCoeficientes(y);
      Vector&lt;Complejos&gt; Z = new Vector&lt;Complejos&gt;();

      System.out.println("Complejo");
      X.visualizaLN();
      System.out.println("+");
      Y.visualizaLN();
      Z.suma(X, Y);
      System.out.println("=====================");
      Z.visualizaLN();
      System.out.println("");
      System.out.println("");



      // Ejemplito de vectores de coeficionets de tipo ComplejoFraccionario
      ComplejoFraccionario []xx = new ComplejoFraccionario[3];
      xx[0] = new ComplejoFraccionario(2, 3, 4, 5);
      xx[1] = new ComplejoFraccionario(2, 2, 3, 7);
      xx[2] = new ComplejoFraccionario(3, 2);
      ComplejoFraccionario []xy = new ComplejoFraccionario[3];
      xy[0] = new ComplejoFraccionario(-2, 3, 5, 6);
      xy[1] = new ComplejoFraccionario(2, 3, 7, 9);
      xy[2] = new ComplejoFraccionario(3, 3);

      Vector&lt;ComplejoFraccionario&gt; xX = new Vector&lt;ComplejoFraccionario&gt;();
      xX.asignaCoeficientes(xx);
      Vector&lt;ComplejoFraccionario&gt; xY = new Vector&lt;ComplejoFraccionario&gt;();
      xY.asignaCoeficientes(xy);
      Vector&lt;ComplejoFraccionario&gt; xZ = new Vector&lt;ComplejoFraccionario&gt;();

      System.out.println("Complejo Fraccionario");
      xX.visualizaLN();
      System.out.println("+");
      xY.visualizaLN();
      xZ.suma(xX, xY);
      System.out.println("=====================");
      xZ.visualizaLN();
      System.out.println("");
      System.out.println("");

   }
}


</pre></body></html>