Diseño
y Programación Orientados a Objetos
1er. Sem 2005
Tarea 1: Vector, una clase simple
Esta tarea tiene por objeto que usted se familiarize con el ambiente de
desarrollo que usará en otras tareas y su proyecto.
Evalúe la herramienta que resulte más cómoda para
usted.
En clases he sugerido trabajar con Emacs o Jgraps.
La tarea será revisada desde consola; es decir se requiere que
usted cree un archivo Makefile para que el ayudante compile su trabajo
sólo ejecutando la sentencia
$ make
Para ejecutar su programa el ayudante ejecutará
$ make run
Clase Vector
Un vector puede ser representado por un punto en el
espacio. Digamos que las operaciones que podemos aplicar sobre este
vector son:
Constructores:
Vector(double
x, double y): crea un vector a partir de sus coordenadas cartesianas.
Vector(float
r, double alfa): crea un vector a partir de sus coordenadas polares.
sumarle(Vector v): esta operación traslada el vector a la
posición dada por la inicial del mismo sumada con el vector
pasado como argumento.
multiplicacionPorEscarlar(float m): esta operación mantiene el
ángulo del vector pero incrementa su magnitud en un factor dado
por m.
rotar(float alfa): Manteniendo la magnitud del vector, incrementa su
ángulo en el valor indicado (en radianes).
toString(): Este método retorna la representación como
String de un vector para efectos de su lectura como texto.
boolean
equals(Vector v): retorna verdadero si v es un vector con igual
estado de aquel que recibe el mensaje.
Es posible definir algunos métodos estáticos como:
Vector suma (Vector a, Vector b): Éste retorna un nuevo vector
con la suma de ambos vectores (a+b).
Vector resta (Vector a, Vector b): Éste retorna el vector de la
resta a-b.
float productoPunto(Vector a , Vector b): Éste retorna el
producto punto de ambos vectores (a.b).
(Vector productoCruz(Vector a, Vector b): retorna el producto cruz de a
y
b (a x b)....CORRECCIÓN...NO CONSIDERAR EN LA TAREA (requiere
vectores
en R3!!)
Una vez que usted haya implementado la clase Vector, prepare la clase
testVector la cual permite verificar la funcionalidad de su clase. La
clase testVector debe efectuar las siguientes verificaciones en
secuencia:
Para cada verificación se imprime el nombre del test, los
valores que intervienen, el resultado y luego si el test es correcto
"passed" en otro caso "failed".
Test:
Translación: crea un vector cualquiera y le suma otro vector.
Multiplicación por Escalar: crea un vector y lo multiplica por
un escalar.
Ídem para rotar, sumar, resta, productoPunto y
productoCruz.
Observación, para revisar su tarea, el ayudante además de
correr su programa testVector, él correrá su propio
testVector.
En la documentación de esta tarea, no es necesario que usted
haga una descripción en alto nivel de los algoritmos usados. En
esta tarea la verificación de estilo es voluntaria. Usted debe
entregar su código documentado de manera que se pueda generar la
documentación con el utilitario javadoc.
Dele una mirada a un ejemplo de
Makefile. Más información sobre
Makefiles.