Programacin Orientada a Objetos Unidad: II Clases y Objetos. Laboratorio: 3 Resolviendo problemas utilizando clases y objetos: Ecuacin Cuadrtica.
a. Modalidad: Individual. Objetivo: Al finalizar la actividad, el alumno habr aplicado los conceptos bsicos para la creacin de clases en Java. Para realizar la actividad desarrolle los siguientes puntos: 1) 2) 3) 4) 5) Lea el problema anexo a esta pgina. Especifique la interfaz pblica de la clase. Especifique las variables de instancia (atributos) de la implementacin inicial de la clase. Represente la interfaz y sus atributos como una clase utilizando UML. Realice la implementacin completa de la clase utilizando: a) Declaracin de variables de instancia (atributos). b) Declaracin de mtodos, con paso de parmetros y valores de retorno correctamente aplicados. c) Declaracin del (los) constructor(es). d) Uso de la referencia especial this, en sus diversos contextos. e) Encapsulamiento utilizando mtodos getters y setters. 6) Tambin deber escribir un programa que pruebe el uso de las operaciones y propiedades de los objetos de la clase. Criterios de evaluacin: Criterio de evaluacin Incluye la implementacin apropiada de la clase (variables de instancia, constructores, getters, setters, mtodos, paso de parmetros) Aplica la abstraccin correctamente Aplica correctamente el encapsulamiento Resuelve el problema correctamente Presenta un programa legible y bien indentado Total Puntuacin 25 25 25 15 10 100
Las instrucciones y los criterios de evaluacin constituyen un apoyo para elaborar el contenido bsico esperado. El producto de esta actividad debe reflejar el trabajo de anlisis del alumno. El cdigo fuente de todos los programas a entregar debe incluir: Nmero y nombre de la actividad. Datos del Alumno (Nombre, matrcula y grupo) Entrega Fecha y hora de entrega: 17/octubre/2012; al final de la clase. Modo de entrega principal: Revisin del profesor del cdigo en su equipo. Modo de entrega alternativo: Entregue el cdigo impreso al profesor al da siguiente de la clase. Puntualidad: No hay prrrogas.
Ecuacin de Segundo Grado
Una ecuacin de segundo grado tiene la forma
ax 2 bx c 0
Los coeficientes a, b y c son valores reales. Se define una raz de una ecuacin, como aquel valor de la variable independiente, x, que hace que al evaluar la ecuacin su valor sea cero. Una ecuacin tiene un nmero de races de acuerdo a su grado. As, una ecuacin lineal, slo tiene una raz, mientras que una ecuacin de segundo grado tiene dos races. Para encontrar las races de una ecuacin de segundo grado existen varios mtodos. Sin embargo, el mtodo ms utilizado es el de la frmula:
b b 2 4ac x 2a
La ecuacin de segundo grado tiene siempre dos races, no necesariamente distintas, que pueden ser reales o complejas. La expresin que se encuentra dentro de la raz, b 2 4ac , se denomina discriminante. El discriminante de una raz de segundo grado nos permite obtener informacin sobre el nmero y naturaleza de sus races: 1. Si el discriminante es positivo, la ecuacin tiene dos races reales y diferentes. 2. Si el discriminante es cero, la ecuacin tiene una solucin real doble, de multiplicidad dos. 3. Si el discriminante es negativo, las races de la ecuacin son dos nmeros complejos conjugados. Escriba una clase en Java que represente a una raz de segundo grado. Llame a esta clase EcuacionDeSegundoGrado. La clase deber tener un constructor que reciba como parmetros los coeficientes a, b y c. La clase deber tener los mtodos discriminante(), numeroDeSolucionesReales(), getX1() y getX2() para obtener las races de la ecuacin cuadrtica. Escriba un programa que pruebe la clase para resolver la ecuacin
2 x 2 10 x 12 0
Que tiene dos races reales y diferentes, x1=3 y x2=2.
Caso de prueba para una ecuacin con dos races Programa que calcula las races de una ecuacin cuadrtica. Valor del coeficiente a: 2 Valor del coeficiente b: -10 Valor del coeficiente c: 12 Nmero de races reales que tiene la ecuacin: 2 X1 = 3 X2 = 2 Caso de prueba para una ecuacin con una races Programa que calcula las races de una ecuacin cuadrtica. Valor del coeficiente a: Valor del coeficiente b: Valor del coeficiente c: Nmero de races reales que tiene la ecuacin: 1 X1 = x2 = 2 Caso de prueba para una ecuacin que no tiene races reales Programa que calcula las races de una ecuacin cuadrtica. Valor del coeficiente a: Valor del coeficiente b: Valor del coeficiente c: Nmero de races reales que tiene la ecuacin: 0 Esta ecuacin no tiene races reales.
Instrucciones 1) Crear un nuevo proyecto con nombre ProyectoEcuacionCuadratica. Recordar que el nombre de la clase del paquete creado debe ser Main. 2) Crear un nuevo paquete de fuentes (source packages) de nombre modelo. 3) Crear dentro del paquete de fuentes modelo una nueva clase de nombre EcuacionDeSegundoGrado. 4) Agregar a la clase EcuacionDeSegundoGrado lo siguiente: a) Tres variables de instancias para representar los coeficientes de los trminos de la ecuacin cuadrtica. Las tres variables de instancia sern de tipo double con los nombres a, b y c. b) Un constructor de inicializacin, que recibir como parmetros los valores con los que se inicializarn las variables de instancia que representan a los tres parmetros. c) Un mtodo de nombre discriminante() que permitir calcular y retornar el valor del discriminante de la ecuacin cuadrtica. d) Un mtodo de nombre numeroDeSoluciones() que calcula y retorna el nmero de soluciones reales que tiene la ecuacin de segundo grado. e) Un mtodo de nombre getX1() que calcula y retorna la primera raz de la ecuacin de segundo grado. El valor a retornar deber ser de tipo double. f) Un mtodo de nombre getX2() que calcula y retorna la segunda raz, si existe, de la ecuacin de segundo grado. El valor a retornar deber ser de tipo double. NOTA: para el clculo de las races en los mtodos getX1() y getX2() utilice el mtodo double [Link](double) para calcular la raz cuadrada de un nmero y la invocacin al mtodo [Link](0x7ff8000000000000L) para obtener el valor de la raz a retornar en caso de que sta no pueda ser calculada mediante la frmula. 5) Modifique el cuerpo del mtodo main(), en la clase Main para probar la clase mediante los siguiente: a) Declare una variable de referencia local, de nombre ecuacion, que representa a una instancia de la clase EcuacionDeSegundoGrado. b) Crear un objeto de la clase EcuacionDeSegundoGrado, asignndola a la variable de referencia local ecuacion. Durante la creacin de este objeto invoque al constructor proporcionando los argumentos de la ecuacin proporcionada como ejemplo en el planteamiento del problema. c) Imprima el nmero de races que tiene la ecuacin. d) Imprima las races de la ecuacin en caso de tenerlas.