0 calificaciones0% encontró este documento útil (0 votos)
94 vistas3 páginas
El documento presenta 4 problemas relacionados con el diseño de clases en programación orientada a objetos. El primer problema propone diseñar una clase NumeroRacional para representar fracciones. El segundo problema propone diseñar una clase Coleccion para representar colecciones de enteros. El tercer problema extiende la clase Coleccion a Conjunto. Y el cuarto problema extiende Coleccion a ColeccionOrdenada para representar colecciones ordenadas. Se pide diseñar las clases con sus atributos, constructores y métodos, y clases de prueba para cada una
El documento presenta 4 problemas relacionados con el diseño de clases en programación orientada a objetos. El primer problema propone diseñar una clase NumeroRacional para representar fracciones. El segundo problema propone diseñar una clase Coleccion para representar colecciones de enteros. El tercer problema extiende la clase Coleccion a Conjunto. Y el cuarto problema extiende Coleccion a ColeccionOrdenada para representar colecciones ordenadas. Se pide diseñar las clases con sus atributos, constructores y métodos, y clases de prueba para cada una
El documento presenta 4 problemas relacionados con el diseño de clases en programación orientada a objetos. El primer problema propone diseñar una clase NumeroRacional para representar fracciones. El segundo problema propone diseñar una clase Coleccion para representar colecciones de enteros. El tercer problema extiende la clase Coleccion a Conjunto. Y el cuarto problema extiende Coleccion a ColeccionOrdenada para representar colecciones ordenadas. Se pide diseñar las clases con sus atributos, constructores y métodos, y clases de prueba para cada una
E.T.S. DE INGENIERIA INFORMATICA PROGRAMACIN ORIENTADA A OBJETOS
PROBLEMAS ADICIONALES TEMA 2 1. Disea una clase NumeroRacional que represente una fraccin con numerador y denominador enteros. Por tanto tendr dos variables de instancia (numerador y denominador) para almacenar dichos valores (ambas declaradas como private). Adems tendr dos constructores: uno sin argumentos (NumeroRacional()), que construye la fraccin 0/1 y otro con dos argumentos (NumeroRacional(int num, int den)) que construye la fraccin num/den. El denominador no puede ser 0, as que se lanzar una excepcin (RuntimeException) si se pasa como segundo argumento un 0. La clase ofrecer mtodos (public) para: - consultar el numerador (int getNumerador()) - consultar el denominador (int getDenominador()) - representar con una cadena de caracteres el nmero racional (String toString()) . Si el denominador es 1, en la representacin slo aparecer el numerador. Nota: para este caso puedes utilizar el mtodo toString de la clase Integer para convertir un entero a una cadena de caracteres (String Integer.toString(int)). - sumar dos fracciones (NumeroRacional suma(NumeroRacional num)) - restar dos fracciones (NumeroRacional resta(NumeroRacional num)) - multiplicar dos fracciones (NumeroRacional mult(NumeroRacional num)) - dividir dos fracciones (NumeroRacional div(NumeroRacional num)) Los objetos de esta clase se deben mantener en su forma reducida. Por ejemplo la fraccin 3/6 debera almacenarse como 1/2. Tambin se debe evitar tener un denominador negativo. As, la fraccin 2/-3 se almacenar como -2/3, y la fraccin -2/-3 se almacenar como 2/3. Para probar esta clase, construye otra clase PruebaRacionales que contenga el mtodo main para realizar diversas operaciones con nmeros racionales.
Nota: si necesitas calcular el mximo comn divisor de dos nmeros (enteros positivos), puedes consultar los ejercicios resueltos de la relacin 2 de la asignatura Fundamentos de la Programacin. Y si necesitas calcular el mnimo comn mltiplo, debes saber que: mcd(a,b) * mcm(a,b) = a*b. Si necesitas calcular el valor absoluto de un nmero entero puedes usar el mtodo Math.abs(int) que devuelve el parmetro en positivo.
E.T.S. de Ingeniera Informtica Dpto de Lenguajes y C. de la Computacin
Programacin Orientada a Objetos Problemas Adicionales Tema 2 2 2. Disea una clase Coleccion que represente una coleccin de nmeros enteros. Tendr dos variables de instancia (ambas declaradas como private): un array de enteros y un contador del nmero de casillas ocupadas del array, es decir, del nmero de elementos que contiene la coleccin. Adems tendr dos constructores: uno sin argumentos (Coleccion()), que crea una coleccin con un array vaco de tamao TAM (una constante de clase private definida e inicializada a 10) y otro con un argumento (Coleccion(int tam)) que crea una coleccin con un array vaco de tamao tam. Se lanzar una excepcin (RuntimeException) si el tamao no es positivo. La clase ofrecer mtodos (public) para: - consultar el nmero de elementos de la coleccin (int getNumElem()) - consultar el elemento que ocupa una determinada posicin i del array (int getElem(int i)). - comprobar si la coleccin est vaca (boolean sinElementos()) - vaciar una coleccin (void vacia()) - aadir un elemento a la coleccin (void aade(int elemen)). Si el array que almacena la coleccin est lleno, se doblar su capacidad y se meter el nuevo elemento. - eliminar un elemento de la coleccin (void elimina(int elem)). Si el elemento no est, no se hace nada. - comprobar si la coleccin contiene un elemento (boolean contiene(int elem)) - representar con una cadena de caracteres la coleccin (String toString()). La representacin consistir en la secuencia de nmeros que forman la coleccin, separados por comas y encerrados entre corchetes. Para probar esta clase, construye otra clase PruebaColeccion que contenga el mtodo main para realizar diversas operaciones con una coleccin de enteros. 3. Disea una clase Conjunto que represente un conjunto de nmeros enteros. Esta clase debe heredar de la clase Coleccion diseada en el problema 2. No aade ninguna variable de instancia ms. Tendr dos constructores: uno sin argumentos (Conjunto()), que crea un conjunto con un array vaco de tamao TAM (una constante de clase definida en Coleccion) y otro con un argumento (Conjunto(int tam)) que crea un conjunto con un array vaco de tamao tam. Se lanzar una excepcin (RuntimeException) si el tamao no es positivo. La clase ofrecer mtodos (public) para: - realizar la unin de dos conjuntos (Conjunto union(Conjunto c)). Devuelve un nuevo conjunto que es la unin del conjunto c y del conjunto receptor del mensaje union. - realizar la interseccin de dos conjuntos (Conjunto interseccion(Conjunto c)). Devuelve un nuevo conjunto que es la interseccin del conjunto c y del conjunto receptor del mensaje interseccion.
Adems se deber redefinir el mtodo aade de Coleccion para evitar almacenar elementos repetidos. Para probar esta clase, construye otra clase PruebaConjunto que contenga el mtodo main para realizar diversas operaciones con un conjunto de enteros.
E.T.S. de Ingeniera Informtica Dpto de Lenguajes y C. de la Computacin
Programacin Orientada a Objetos Problemas Adicionales Tema 2 3 4. Disea una clase ColeccionOrdenada que represente una coleccin ordenada (de menor a mayor) de nmeros enteros. Esta clase debe heredar de la clase Coleccion diseada en el problema 2 (la declaracin de las variables de instancia de la clase Coleccion se debe modificar para hacer que sean protected en lugar de private). Tendr dos constructores equivalentes a los de la clase Coleccion. Adems habr que redefinir los mtodos aade, elimina y contiene para tener en cuenta la ordenacin de los elementos. Para probar esta clase, construye otra clase PruebaColeccionOrdenada que contenga el mtodo main para realizar diversas operaciones con una coleccin ordenada de enteros.