Diseño y Programación Orientados a Objetos
1er. Sem 2005
Tarea 1: Vector, una clase simple
Documentación
Descripcion del Problema
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

Se requiere crear una clase Vector() que contenga las operaciones básicas entre vectores en el plano RxR, divididos en metodos estáticos y no estáticos como sigue:

Estáticos
  • Vector suma(Vector a, Vector b)
  • Vector resta(Vector a, Vector b)
  • float productoPunto(Vector a, Vector b)
No estáticos
  • sumarle(Vector a)
  • multiplicacionPorEscalar(float m)
  • rotar(float alfa)
  • toString()
  • equals()

Esta clase Vector podra ser instanciada tanto con coordenadas cartesianas como también polares, siendo totalmente transparente para la clase cual de los dos implementar.

Ademas, se creara una nueva clase testVector() que sea capaz de implementar la clase Vector() y probar cada uno de sus metodos, indicando en pantalla el test que esta realizando y el resultado del test en pantalla, ya sea failed o passed.

Ejecución del programa
|
|
|
|
|
|
|
|
|
|
|

La ejecución del programa en esta tarea, esta practicamente ligado a la ejecucion del archivo Makefile, el cual tiene distintos argumentos a tomar en cuenta, los siguientes son los distintos comandos posibles a ejecutar en la presentra tarea:

$ make Compila los archivos Vector.java y testVector.java generando los archivos que leera la maquina virtual java
$ make run Ejecuta el programa de prueba testVector.class el cual imprimira en pantalla cada unos de los resultados de los tests realizados a Vector.class.
$ make clean Limpia el directorio tarea1_miguel.rebolledo/ de los archivos *.class
$ make doc Crea la documentación de las clases que se pidieron para la tarea con los comentarios y flags que se comentaron en dichos archivos. Los archivos generados se encuentran en la carpeta doc/
Observaciones
|
|
|
|
|
  • Uno de los problemas que acontecieron en la realización de la tarea, fue la comprobación del resultado que entrega el metodo rotar(float alfa), el cual al realizar la rotación y entregar su resultado sobreescribiendo el vector que llamo al metodo, al comprobar este resultado con otro vector con las caracteriscticas pedidas pero ingresado directamente con los datos que deberia arrojar el resultado, se generaban décimas de inexactitud y no permite pasar el test como aprobado.
Ejemplo de Salida por Pantalla
|
|
|
|
|
|
|
|
|
Una vez ejecutado el comando make run se desplegara en pantalla una serie de datos respectoa a los argumentos que se entegaran a cada metodo, en donde podemos destacar:
Ejecutando [5.0,6.0].rotar(0.5 radians) ==>Vector que llama y argumento del metodo
Cartesianas (2.8683677, 6.185647) | Polares (6.8183403, 0.43419933) ==> Vector que entrega la operación
............test failed :-( ==>Test Failed or Pased
Ejecutando productoPunto([2.8683677,6.185647],[2.0,2.0]) ==>Vector a y Vector b
Resultado = 18.10802965470675
............test passed ;-D
Documentación Clases y Metodos
Documentacion realizada con javadoc
©2005. Miguel Rebolledo Las Heras.