Titulo.jpg (10742 bytes)
FlechaDer.jpg (2886 bytes) casa.jpg (31539 bytes) FlechaDA.jpg (3959 bytes)

Vectores


Un vector no es m�s que un arreglo con varias filas y una sola columna. Se define la clase Vector con dos datos, el n�mero total de datos y el arreglo unidimensional que los guarda.

class Vector
{ private:
    float *fila;
    int cantidad;

};

La suma de vectores consistir� en a�adir a cada elemento de uno de ellos el elemento correspondiente del otro vector.  De esta forma el c�digo ser�

Vector Vector :: Suma(Vector &A,Vector &B)
{  int i;
   Vector Trans(B.MiNrFilas());
   for (i=0;i<MiNrFilas();i++) Trans.fila[i] = A.fila[i]+B.fila[i];
   return (Trans);
}

por su parte la multiplicaci�n de un vector por un escalar consiste en multiplicar cada uno de los elementos del vector por el escalar y en consecuencia el c�digo de la funci�n que realiza esta operaci�n es:

Vector Vector :: ProdNr(int nr)
{ int i;
  Vector Trans(this->MiNrFilas());
  for (i=0;i<MiNrFilas();i++)
    {Trans.fila[i] = fila[i]*nr;}
  return(Trans);
}

La aritm�tica de vectores incorpora dos operaciones propias: el productor escalar y el productor vectorial.  En la presente clase incorporamos una funci�n que realiza el producto escalar.

Este consiste en calcular en modulo de cada vector, multiplicarlos entre s� y por el coseno del �ngulo entre ellos.

float Vector::ProdEsc(Vector const &B,float angulo)
{ int i;
   float moduloA=0,moduloB=0;
   Vector Trans(B.MiNrFilas());
   for (i=0;i < MiNrFilas();i++)
        { moduloA += (pow(fila[i],2));
           moduloB += (pow(B.fila[i],2));
        }
    return (sqrt(moduloA)*sqrt(moduloB)*cos(angulo));
}

C�digo vector.h, vector.cpp

arriba.jpg (2978 bytes) casa.jpg (31539 bytes)
Hosted by www.Geocities.ws

1