Documentación Tarea Nº1
Diseño y Programación Orientados a Objetos

Profesor:  Agustín González V.
Ayudante: César Vásquez

Autor: Eduardo González Fisher
Rol: 2021010-9

Nombre:

Vector, una clase simple.

Descripción:

La tarea tiene como objetivo introducir al alumno al mundo de la programación orientada a objetos. En particular con el lenguaje JAVA. La tarea consiste básicamente en la creación de una clase Vector, con diversos métodos que permitan interactuar con el objeto. Además, está testVector, una clase que tiene las instrucciones necesarias para realizar varias pruebas con el fin de verificar el funcionamiento de la clase Vector.
Al ejecutarse el programa, se realizan las pruebas. Se muestra en pantalla el nombre de la prueba, los vectores involucrados, el resultado y si la prueba fue exitosa o no. Después de terminar con las 6 pruebas, el programa finaliza.

Problemas enfrentados:

El primer problema que me encontré fue el de tener que manipular los vectores en coordenadas polares y cartesianas. Para ello los vectores tienen implementados atributos para ambos sistemas, y cuando se llama al constructor de un sistema de coordenadas, éste invoca el método setPolares o setCartesianas, según corresponda, para ajustar los atributos a ese sistema. En otras palabras, si se invoca al constructor, pasándole un radio y ángulo, éste creará un vector con esos datos, y además ajustará sus atributos x y para que sea equivalente en cartesianas.

Otra dificultad fue la precisión matemática de JAVA. Al comparar si dos vectores eran iguales, se podía producir un error debido a que los vectores fueron creados con distintos constructores y fueron manipulados de diversas formas, modificando sus propiedades repetidas veces. Esto causa que la precisión matemática al convertir las coordenadas de uin sistema a otro produzca pequeñas diferencias. Por lo tanto, para implementar el método equals se debió recurrir a una artimaña, se comparan las coordenadas cartesianas de un vector con otro y si difieren, se comparan las polares. Si estas últimas también difieren entonces se dice que los vectores son distintos. Pero basta que los vectores coincidan en un sistema de coordenadas para que se digan iguales.

Además, se modificó una especificación de la tarea. Se pide el método rotar(float alfa) pero como en un vector el ángulo esta definido como double, el método se implementó así: rotar(double alfa).



©2005. Eduardo González Fisher.