![]() |
|---|
![]() |
![]() |
![]() |
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
![]() |
![]() |