Universidad de Costa Rica
Escuela de Computación
Quiz 05
CI-1201 Programación II - 2013a
Profesor Jeisson Hidalgo-Céspedes

Implemente una clase Vector en C++ para representar cantidades vectoriales físicas (como la velocidad, la fuerza y el campo eléctrico) en el plano cartesiano, los cuales siempre tienen origen en el punto \(\left(0, 0\right)\) y como punto final las coordenadas \(\left(x, y\right)\). Su clase debe ser capaz de hacer lo siguiente:

  1. [20%] Almacenar los componentes reales \(\left(x, y\right)\), los cuales pueden ser distintos de un vector a otro.
  2. [20%] Permitir crear vectores proveyendo los valores iniciales de \(\left(x, y\right)\). Asuma 0 si no se provee alguno.
  3. [20%] Imprimir el vector en la pantalla o en un archivo utilizando un objeto ostream como una pareja \(\left(x, y\right)\). Sobrecargue el operador << para este fin.
  4. [20%] Sumar dos vectores utilizando el operador + (implementado como función miembro y no como función libre). La suma de dos vectores \(\vec{V_1} = \left(x_1, y_1\right)\) y \(\vec{V_2} = \left(x_2, y_2\right)\) es el vector resultante de sumar sus componentes: \[\vec{V_1} + \vec{V_2} = \left(x_1 + x_2, y_1 + y_2\right)\]
  5. [20%] Separa la interfaz de la clase, de su implementación.

Recuerde que las buenas prácticas de programación son siempre evaluadas, como el uso de identificadores significativos, y el uso adecuado de la palabra reservada const. Su clase debe hacer funcionar el siguiente código fuente: