Página Principal -

Programación - Hoja 3


  1. Un intervalo cerrado [a,b] sobre los números reales viene dado por dos números reales a, b. Escribir una clase Intervalo, que forma parte un paquete unidimensional, para representar intervalos de números reales. La clase debe contener al menos los siguientes métodos:
    1. double longitud(): Devuelve la longitud del intervalo. Se llama longitud del intervalo al valor b - a.
    2. boolean vacío(): Devuelve true si el intervalo está vacío o false. El intervalo se dice vacío si b < a.
    3. Intervalo intersección(Intervalo) devuelve un nuevo intervalo, resultado de la unión del intervalo actual con el que se pasa como parámetro. El intervalo actual no debe quedar modificado. La intersección de dos intervalos es el intervalo que contiene todos los valores comunes a los dos intervalos. Por ejemplo la intersección de los intervalos [3.2, 5] y [1,4] sería el nuevo intervalo [3.2,4], mientras que la intersección de [3.2, 5] y [7,9] sería el intervalo vacío (que podemos representar por ejemplo como [-1,0].
    4. Un método String toString() que devuelve un String representando el intervalo como por ejemplo "[3.3, 4.89]".
    Escribir una clase Principal con un método main que defina tres intervalos a=[1,5], b = [2,4], c=[3,6], los muestre mediante toString() y calcule y muestre por pantalla el intervalo que se obtiene al hacer la intersección de los 3 intervalos.

  2. Escribir una clase Media formando parte de un paquete estadísticas que sirva para calcular la media de una secuencia de números. Debe disponer de los siguientes métodos, además de los atributos y constructora que se consideren necesarios: Escribir además una clase con un método main que vaya leyendo números enteros de teclado y añadiéndolos a un objeto de tipo Media, hasta que el usuario escriba un número negativo, momento en el que se mostrará por pantalla la media de los valores introducidos.

  3. [Examen Febrero 2006] Escribir una clase Televisión, parte de un paquete aparatos. En la televisión nos interesa el nombre de cada canal que puede sintonizar, el número que corresponde al canal y el número del canal que se está viendo en este momento. La clase debe contener:
    Atributos:
    1. Un array de valores de tipo String con los nombres de los canales que se pueden ver en la televisión. El String de la posición 0 corresponde al nombre de la emisora que se puede ver en el canal número 1, el de la posición 1 corresponde al canal número 2, y así sucesivamente.
    2. Un entero (mayor o igual que 1) que representa el canal actual que se está viendo.

    Métodos
    1. Una constructora que recibe como parámetro una array con los valores de tipo String conteniendo los nombres de los canales que se pueden ver en la televisión y que sirve para inicializar el atributo descrito en el punto a. El objeto guardará está información y fijará como canal actual el 1.
    2. nombreCanal: recibe como parámetro un número de canal (un entero) y devuelva su nombre (un String). Si el canal no existe se devolverá la cadena "no sintonizado".
    3. númCanales: Sin parámetros, devuelve el número de canales de la televisión.
    4. válido: recibe como parámetro un entero y devuelve true si el valor corresponde a un canal de la televisión, es decir si es mayor o igual que 1 y menor o igual a la longitud del array de canales, o false en caso contrario.
    5. canal: sin parámetros, devuelve un entero representando el canal actual.
    6. cambia: recibe un parámetro de tipo entero con el número de canal al que se desea cambiar. Modifica el atributo que indica el canal actual y no devuelve nada. Si el canal propuesto no es válido, el método no hará nada.
    7. cambia (el mismo nombre que el anterior): recibe como parámetro un String con el nombre de la cadena y cambia el canal que corresponde al nombre (suponemos que hay uno a lo sumo). Modifica el atributo que indica el canal actual y no devuelve nada. Si el canal no se encuentra en el array el método no hará nada.

    Escribir también un programa principal que utilice la clase anterior. El programa usará un objeto de tipo Televisión, inicializada con los canales "Tele Lón", "Canal Eto", "Canal Plas" y "TeleJava". El programa mostrará el nombre del canal actual, y le pedirá al usuario el número del canal al que se se desea cambiar. Este proceso se repetirá hasta que el usuario introduzca el valor 0. Ejemplo:
    Canal actual: 1.- Tele Lón
    ¿Nuevo canal? 3
    Canal actual: 3.- Canal Plas
    ¿Nuevo canal? 2
    Canal actual: 2.- Canal Java
    ¿Nuevo canal? 0
    Televisión apagada
    

  4. Vamos a escribir una clase Ascensor para representar el movimiento de un ascensor cuando se le llama desde una planta (no nos ocupamos de los botones de dentro del ascensor). Para representar el estado del ascensor necesitamos conocer en cada momento: La clase debe contener los atributos que se consideren necesarios y al menos los siguientes métodos:
    1. Una constructora sin parámetros. Al crearse un objeto de tipo Ascensor, éste debe encontrarse en la planta 0, con las puertas cerradas y se supone que no hay ningún botón de llamada pulsado.
    2. puertasAbiertas: devuelve true si las puertas están abiertas, y false si están cerradas.
    3. pisoActual: Devuelve el piso en el que se encuentra el ascensor.
    4. libre: Devuelve true si no hay botón pulsado, o false si sí lo hay.
    5. pulsado: Recibe como parámetro un entero n indicando el número de piso en el que se ha pulsado el botón de llamada. Si el ascensor no está libre no hace nada. Si sí está libre, apunta que el botón pulsado es n (con lo que deja de estar libre). En cualquier caso el piso actual no cambia, ni tampoco se abren/cierran las puertas.
    6. mueve: Método sin parámetros que simula el movimiento del ascensor. Si el ascensor está libre no hará nada. Si hay alguno pueden darse dos situaciones:
      1. El piso de llamada corresponde con el piso actual. En este caso se abren las puertas (para que entré quien llamó) y se indica que no hay ningún botón pulsado (porque la llamada ya ha sido atendida).
      2. El piso de llamada es distinto al piso actual. En este caso el ascensor se asegura de que tiene las puertas cerradas y se mueve un piso en la dirección adecuada. Por ejemplo, si estaba en el 3 y se le llama desde el 6, tras la llamada a este método el ascensor se encontrará en el piso 4.
      3. Un método sin parámetros toString que devuelve un String indicando en qué piso se encuentra el ascensor, si está libre u ocupado, y si tiene las puertas abiertas o cerradas, lo que se representará respectivamente por "] [" y por "[ ]".
    Escribir además un programa principal que utilice la clase Ascensor. El programa debe mostrar en cada momento el piso del ascensor, si está libre o ocupado y si las puertas están abiertas o cerradas. Después de mostrar el estos datos el programa presentará un menú que permitirá mover el ascensor, pulsar un botón o salir del programa. El proceso se repetirá hasta que el usuario decida acabar, como en el siguiente ejemplo:
     Piso 0 -   Libre  - [ ]
    0.- Salir
    1.- Mover
    2.- Pulsar
    2
    Piso en el que se pulsa el botón de llamada: 2
     Piso 0 - Ocupado - [ ]
    0.- Salir
    1.- Mover
    2.- Pulsar
    1
     Piso 1 - Ocupado - [ ]
    0.- Salir
    1.- Mover
    2.- Pulsar
    1
     Piso 2 - Ocupado - [ ]
    0.- Salir
    1.- Mover
    2.- Pulsar
    1
     Piso 2 -   Libre  - ] [
    0.- Salir
    1.- Mover
    2.- Pulsar
    0
    


- Página Principal