Professional Documents
Culture Documents
PRIMERA SEMANA
• Para la nota del examen, el Test vale el 30% y el Problema vale el 70%.
• El Test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
• Responda el Test en una hoja de lectura óptica. El código de asignatura es 621040 y el tipo A.
• Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y el Centro Asociado
en el que ha realizado la práctica.
4. Supongamos que necesitamos hacer una compra de un billete de avión por Internet. ¿Qué proceso
sería el más adecuado para que se llevara a cabo la compra?
a. Proceso on-line.
b. Proceso en lotes.
c. Proceso en tiempo compartido.
d. Proceso en tiempo real.
7. Sea la clase:
8. Dada una clase declarada con la palabra reservada extends, indicar de cuántas clases padre puede
heredar directamente:
a. De ninguna.
b. De una.
c. De menos de 5.
d. De todas las que se necesiten.
Se desea diseñar un programa que tendrá que ser capaz de gestionar obras cinematográficas, literarias y
musicales, permitiendo la creación, modificación y acceso de las diferentes obras y sus autores, así como la
impresión por pantalla de sus datos más característicos. De todas las obras necesitamos saber su título, su
autor y año de edición. Además, en concreto, de los libros nos interesa su editorial y su número de páginas;
de los discos queremos saber la discográfica que lo edita y el número de canciones; y de las películas
interesan los intérpretes y la productora. Todos los autores de una obra, así como los intérpretes de una
película, se consideran artistas. De cada artista queremos saber su nombre y su año de nacimiento. Por
último, se desea poder imprimir en pantalla todos los datos de cada obra.
Se pide:
1. Dibujar un esquema con las clases necesarias para este programa, indicando los atributos y métodos que
tiene cada una (sólo indicarlos, sin escribir su código). El esquema debe reflejar gráficamente la herencia de
clases en caso de que la haya. (3,5 puntos)
Supongamos a partir de ahora que estamos programando el método “main”, y que hemos creado los
siguientes objetos:
3. Escribir el código necesario para crear el objeto correspondiente a la película "El portero" (Gonzalo
Suárez, 2000, Lola Films, interpretada por Carmelo Gómez y Maribel Verdú). (1,5 puntos)
4. Codificar en una sola línea exactamente la siguiente modificación: "la fecha de nacimiento del autor de la
película 'El Portero' es 1934". Si a continuación imprimimos por pantalla los datos del libro "Ciudadano
Sade", ¿qué fecha de nacimiento se imprimirá en pantalla para el autor? Razonar la respuesta. (1,5 puntos)
PROBLEMA DE LA PRIMERA SEMANA
Solución al apartado 1:
Obra Artista
Solución al apartado 2:
Solución al apartado 3:
Solución al apartado 4:
Si se han declarado los atributos “private” y se han definido para ellos métodos “get” y “set”
(opción más correcta):
elPortero.getAutor().setAñoNacimiento(1934);
En caso contrario:
elPortero.autor.añoNacimiento=1934;
Al imprimir datos del libro, la fecha de nacimiento del autor sería 1934, ya que la modificación
hecha con la línea anterior afecta permanentemente al objeto “gonzaloSuarez”.
SEGUNDA SEMANA
• Para la nota del examen, el Test vale el 30% y el Problema vale el 70%.
• El Test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
• Responda el Test en una hoja de lectura óptica. El código de asignatura es 621040 y el tipo A.
• Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y el Centro Asociado
en el que ha realizado la práctica.
7. Un método de clase (static), ¿se podría llamar sin instanciarse un objeto de la clase?
a. No, siempre hay que declarar el objeto y luego llamar al método.
b. No, siempre hay que declarar el objeto, crearlo y a continuación llamar al método.
c. Sí, se podría llamar al método desde la misma clase.
d. Sí, se podría llamar al método pero sólo si la clase es abstracta.
10. En relación al enunciado de la práctica, indicar cuál de las siguientes cabeceras es la correcta:
a. class Camion extends Vehiculo { …
b. class Vehiculo extends Camion { …
c. class Vehiculo (extends Camion) { …
d. extended class Camion { …
UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA. ESCUELA DE INGENIERÍA TÉCNICA INDUSTRIAL
EXAMEN DE FUNDAMENTOS DE INFORMÁTICA (ESPECIALIDAD ELECTRÓNICA)
ENERO/FEBRERO 2005
NO ESTÁ PERMITIDO EL USO DE MATERIAL ADICIONAL
Una empresa de telecomunicaciones nos encarga realizar la primera versión de un programa para gestionar
mensajes de texto en diferentes formatos: e-mail, SMS (mensajes cortos de telefonía móvil) y chat
(mensajería instantánea). Todos los mensajes, independientemente del formato, tienen un usuario emisor, un
usuario receptor y un texto de mensaje. Además, en particular, un e-mail tiene un Asunto (de tipo texto) y un
conjunto de usuarios a los que llegará copia del mensaje; un SMS tiene un número del centro servidor, y un
mensaje instantáneo tiene un protocolo de mensajería. De cada usuario podemos necesitar su nombre, su
dirección de correo electrónico, su número de teléfono móvil y su dirección IP. Los mensajes pueden
enviarse, y al hacerlo se escribe por pantalla el cuerpo del mensaje independientemente de su formato.
1. Dibujar un esquema con las clases necesarias para este programa, indicando los atributos y métodos
que tiene cada una (sólo indicarlos, sin escribir su código). No es necesario incluir métodos “get” y
“set”. El esquema debe reflejar gráficamente la herencia de clases en caso de que la haya. (3 puntos)
La empresa nos explica ahora que al enviar un SMS debe haber un comportamiento especial (el resto de
formatos de mensaje mantienen su comportamiento): si el usuario receptor no tiene móvil, debe imprimirse
un mensaje de error. Además, si el mensaje SMS ocupa más de 145 caracteres, antes de imprimirlo debemos
irlo reduciendo hasta que no sobrepase ese tamaño. La reducción se hace con el método “String
reduce(String cadena)”, programado por otra empresa e incluido en el “package” smstools. Cada vez que se
ejecuta este método, mediante un diccionario de abreviaturas se reduce levemente la longitud del texto.
2. Explicar, en relación al concepto de herencia, cuál sería la mejor solución para encajar en el diseño
anterior este comportamiento particular del método “enviar” para los SMS. Indicar una solución
alternativa sin utilizar herencia y comentar sus ventajas o inconvenientes. (3 puntos)
Solución al Apartado 1:
Usuario Mensaje
Solución al Apartado 2:
Habría que reescribir el método “enviar” en la clase “Sms”, de forma que el método “enviar”
original permaneciera en la clase Mensaje. Así, cuando se imprima un email o un mensaje
instantáneo, se recurrirá al método heredado de la clase padre, pero cuando se imprima un SMS se
ejecutará el método redefinido.
La alternativa sin herencia sería eliminar el método “enviar” de la clase padre y escribirlo
individualmente para cada formato de mensaje. Sin embargo, esta solución es peor, porque implica
duplicar información al escribir un mismo código varias veces (en este caso dos, pero podrían ser
más), con la consiguiente dificultad para mantener la coherencia en caso de un cambio en el código.
Solución al Apartado 3:
Al crear un objeto de la clase que hereda, lo primero que se hace es llamar implícitamente al
constructor por defecto de la clase padre, por lo que no es necesario escribir código adicional:
public Sms(Usuario emisor, Usuario receptor, String texto,
boolean multimedia, int servidor) {
this.setEmisor(emisor);
this.setReceptor(receptor);
this.setTexto(texto);
this.servidor = servidor;
}
Sin embargo, si hemos definido un constructor con argumentos para la clase padre, el constructor
por defecto deja de estar accesible y por tanto es necesario llamar explícitamente al constructor de
la clase padre que hemos creado:
public Sms(Usuario emisor, Usuario receptor, String texto,
boolean multimedia, int servidor) {
super(emisor,receptor,texto);
this.servidor = servidor;
}
Solución al Apartado 4:
ORIGINAL
• Para la nota del examen, el Test vale el 30% y el Problema vale el 70%.
• El Test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
• Responda el Test en una hoja de lectura óptica. El código de carrera es 62, el de la asignatura 104 y
examen es de tipo A.
• Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y el Centro Asociado
en el que ha realizado la práctica.
1. La placa madre
a. es siempre compatible con cualquier nuevo componente.
b. es independiente de la CPU.
c. está compuesta por las unidades de almacenamiento y los buses.
d. integra todos los componentes que colectivamente proporcionan la funcionalidad del equipo.
int resultado = 0;
int suma = 1;
while (suma < 5)
resultado+= suma;
System.out.print (resultado);
a. 0
b. 5
c. 1234
d. No imprimiría nada
6. Sean “Mamífero” y “Gato” dos clases que mantienen una relación de herencia padre-hijo. ¿Qué
habría que modificar para que el siguiente código sea correcto y por qué?
a. Nada. Es correcto.
b. No se puede asignar un objeto a otro de otra clase, luego cambiamos la línea 2:
Animal b;
c. Es necesario explicitar el tipo cuando asignamos un objeto a otro objeto perteneciente a una
clase hija, luego cambiamos la línea 4: b = (Gato)a;
d. Es necesario explicitar el tipo y crear una nueva instancia cuando asignamos un objeto a otro
objeto perteneciente a una clase hija, luego cambiamos la línea 4:
b = new (Gato) a;
7. Un sistema operativo...
a. gestiona los recursos del sistema de forma eficiente.
b. es básicamente un compilador.
c. es un componente hardware.
d. convierte el procesador en multi-procesador.
a. int x=Alumno.edad;
b. int x= a.edad;
c. int x=Alumno.darEdad(a);
d. int x=a.darEdad();
9. En la práctica del Rent a Car, ¿qué opción sería mejor para representar un contrato?
UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA. ESCUELA DE INGENIERÍA TÉCNICA INDUSTRIAL
EXAMEN DE FUNDAMENTOS DE INFORMÁTICA (ESPECIALIDAD ELECTRÓNICA)
SEPTIEMBRE 2005
NO ESTÁ PERMITIDO EL USO DE MATERIAL ADICIONAL
a. Se crearía la clase contrato definiendo como atributos los datos de éste y la composición de
las clases vehículo y cliente.
b. Se crearía la clase contrato definiendo como atributos los datos de éste y los atributos que se
necesiten del vehículo y el cliente.
c. Se crearía la clase contrato definiendo como atributos los datos de éste. En el programa main
se definirían las relaciones necesarias entre el objeto contrato y los objetos vehículo y
cliente.
d. No haría falta la clase contrato, dentro del programa principal se pueden crear variables que
almacenan las fechas del contrato y se relacionen con la creación de un objeto cliente y un
objeto coche por ejemplo.
class A {
void imprimir () {System.out.print(“3”);}
}
class B extends A {
}
}
Un controlador que regula la automatización de una lavadora cuenta con una serie de componentes que son:
una válvula, un tambor, un motor y una bomba. El motor se caracteriza por el tiempo de duración del ciclo,
que se expresa en segundos (por defecto es de 30), por el estado del motor: encendido o apagado, y por el
sentido del giro, que puede ser: a izquierdas o a derechas. La variable de sentido de giro determina el
movimiento del motor de la lavadora. El motor funciona mediante ciclos de lavado. Durante la primera mitad
del ciclo el motor se encuentra en sentido a izquierdas, y durante la segunda mitad del ciclo el motor se
encuentra en sentido a derechas. Al final del ciclo, el motor queda en reposo. Además, el tambor tiene un
estado que puede ser lleno o vacío. La válvula realiza la acción de dar agua al tambor y la bomba realizar la
función de sacar agua del tambor. El controlador también se caracteriza por tener un detector de nivel que
indica si el tambor está lleno o no.
Se pide:
1. Dibujar un esquema con las clases necesarias para describir el controlador, indicando los atributos y
métodos que tiene cada una (sólo indicarlos, sin escribir su código). (4 puntos)
2. Supongamos ahora que se quiere introducir en el controlador la funcionalidad programa de Lavado
en Frío. Este programa debería ejecutar los siguientes pasos:
a. La válvula permite el paso del agua al tambor.
b. Se comprueba que el tambor está lleno y se indica en el detector de nivel (mientras el tambor
permanece vacío no se indica en el detector de nivel)
c. El motor realiza 50 ciclos de lavado, asignando al motor 40 segundos de duración de ciclo.
d. La bomba vacía al tambor de agua.
e. Se comprueba que el tambor está vacío y se indica en el detector de nivel (mientras el
tambor permanece lleno no se indica en el detector de nivel)
Escribir el código de dicho método. (6 puntos)
Solución Text:
1)d 2)d 3)c 4)c 5)a 6)c 7)a 8)d 9)a 10)c
Solución al apartado 1:
Controlador Tambor
private boolean detectorNivel private String estado;
private Motor motor;
String getEstado()
private Tambor tambor; void setEstado(String)
private Bomba bomba;
private Valvula valvula;
boolean getDetectorNivel() Valvula
void setDetectorNivel(boolean)
Motor getMotor()
void setMotor(Motor) void llenarTambor(Tambor)
Tambor getTambor()
void setTambor(Tambor)
Bomba getBomba()
void setBomba(Bomba) Motor
Valvula getValvula() private String sentGiro;
void setValvula(Valvula)
private Boolean estado;
private int segundos;
String getSentGiro()
void setSentGiro(String)
Bomba Boolean getEstado()
void setEstado(Boolean)
int getSegundos()
void vaciarTambor(Tambor) void setSegundos(int)
void setGiro(String)
void realizarCiclo()
Nota: En esta solución hemos dejado el constructor por defecto por lo que no aparece en el
diseño anterior.
Solución al apartado 2:
PRIMERA SEMANA
o Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
• es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
El test
• Responda el test en una hoja de lectura óptica. El código de carrera es 62, el de la asignatura 104 y
examen es de tipo A.
• Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y el Centro Asociado
en el que ha realizado la práctica.
public class A
{
protected int nurneroA;
public void setNurneroA(int nurn){ nurneroA nurn;}
=
objB.setNumeroA(IO);
objB.setNumeroB(S);
A objA objB;
�
System.out.println(objA.suma(3));
}
}
a. 10
h. Error de compilación, no se pueden realizar asignaciones con distinto tipo.
c. 18
d. 13
2. ¿Qué es necesano si queremos utilizar el método de una clase predefinida como por ejemplo
Integer. parselnt("String"); ?
a. Solamente se crea una instancia de la clase predefinida. En este caso: Integer integ � new
Integer(); integ. parselnt("String");
h. No es necesario importar la clase en cuestión ni crear una instancia de la clase predefinida.
c. Importar la clase en cuestión. En este caso: import java.lang.Integer; y crear una instancia
de la clase predefinida. En este caso: Integer integ � new Integer(); integ. parselnt("String");
d. Solamente se importa la clase en cuestión. En este caso: import java.lang.Integer;
UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA. ESCUELA DE INGENIERÍA TÉCNICA INDUS1RIAL
EXAMEN DE FUNDAMENTOS DE INFORMÁTICA (ESPECIALIDAD ELECTRÓNICA)
ENERO/FEBRERO 2006
NO ESTÁ PERMITIDO EL USO DE MATERIAL ADICIONAL
5. Supongamos que nos hemos ido de viaje y hemos grabado éste con una cámara de video. ¿Qué
puerto utilizaríamos para pasar la grabación de la cámara al PC en el menor tiempo?
a. El puerto paralelo.
b. El puerto FireWire.
c. El puerto USB.
d. El puerto serie.
6. El método "main":
a. es llamado por el intérprete de java cuando ejecutarnos un programa.
b. es llamado por todos los métodos contenidos en una clase.
c. define los atributos de una clase.
d. define las subclases de una clase.
8. ¿Cuánto es el valor que sale por pantalla tras la ejecución de este código?
int j �O;
switch (j)
{
case 0: j+=2;
case 1: j++;
case 2: j+�2;
case 3: j++;
default:j--;
}
Systern. out. println(j);
a. 2
b. 1
c. 5
d. 3
UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA. ESCUELA DE INGENIERÍA TÉCNICA INDUS1RIAL
EXAMEN DE FUNDAMENTOS DE INFORMÁTICA (ESPECIALIDAD ELECTRÓNICA)
ENERO/FEBRERO 2006
NO ESTÁ PERMITIDO EL USO DE MATERIAL ADICIONAL
9. El sistema operativo:
a. contiene a los componentes hardware.
b. repara los componentes hardware.
c. es siempre un componente hardware
d. gestiona los componentes hardware
10. Sea "el" una clase con 6 atributos, y sea "c2" otra clase con 3 atributos, 3 de los atributos de "el"
son los de la clase "c2". Tienen los mismos métodos aunque algunos se comportan de forma
diferente. ¿Qué relación de herencia es la correcta y por qué?
a. No se puede establecer herencia dado que los mismos métodos se comportan de manera
diferente.
b. No se puede establecer herencia dado que los atributos no son exactamente los mismos.
c. "c2" es hija de "el" dado que todos sus atributos están incluidos en "c2".
d. "el" es hija de "c2" dado que incluye sus atributos y añade nuevos.
La librería "Libro Nuevo" ha decidido gestionar las ventas de sus libros, revistas y cómic. Las ventas
pueden ser de varias obras a la vez, ya sean libros, revistas o cómic. Cada obra se caracteriza por tener en
común el identificador, el nombre, el nombre del autor (supongamos que sólo hay un autor), la editorial, el
año de edición y el precio. Las revistas a su vez tienen el número de serie. Los cómic también tienen el
nombre del dibujante. Además cada obra dispone del IVA que se tiene que aplicar. Éste será siempre el
mismo en función del tipo de obra: las revistas el 7%, los libros el 3% y los cómic el 10%. También se
podrá realizar el cálculo del precio final sumando al precio de la obra el IVA correspondiente.
Se pide:
l. Dibujar un esquema con las clases necesarias para este programa, indicando los atributos y métodos
en caso de haberlos (sólo indicarlos, sin escribir su código). (4 puntos)
2. Implementar la clase Venta. ¿Qué estructura sería la más adecuada para poder almacenar todos las
obras que se venden? (3 puntos)
3. Suponiendo que la clase venta tiene un método que sea importe de la venta. Implementar dicho
método para que calcule el coste total de la venta. (3 puntos)
Solución Primera Semana Feb 2006
Solución apartado 1
Venta Obra (Abstract)
private Vector obras_vendidas = new Vector(); private int id;
private String nombre;
public Venta () private String autor;
public Venta (Vector obras_vendidas) private String editorial;
public void addObra(Obra obra) private int añoEdiccion;
public double importeVenta() private double precio;
No se han puesto en el esquema pero también serían necesarios los métodos get y set de cada atributo en cada clase.
Solución apartados 2 y 3.
import java.util.Vector;
public class Venta
{
private Vector obras_vendidas = new Vector();
SEGUNDA SEMANA
o Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
• Responda el test en una hoja de lectura óptica. El código de carrera es 62, el de la asignatura 104 y
examen es de tipo A.
o Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y el Centro Asociado
en el que ha realizado la práctica.
l. Suponiendo que "Persona" y "Alumno" son dos clases que mantienen una relación de herencia
("alumno" hereda de "Persona"). y que la clase "Alumno" dispone de un método "imprime" (la clase
"Persona" no) ¿ Cuál es el error de compilación que presenta este código y por qué?
a. Error en la línea 2, dado que el objeto "a" no puede ser asignado a la referencia "p" de la
clase "Persona".
b. Error en la línea 3, dado que la "p" es una referencia de Persona, que no dispone de un
método "imprime".
c. No hay ningún error
d. Error en la línea 2 dado que el objeto "p" debe de instanciarse antes de serie asignado el
objeto "a".
class Ejemplo {
String s;
public void imprime(String s) {
System.out.println(s);
System.out.println(this.s);
a. P yP
b. P yQ
c. Q yP
d. Q yQ
7. ¿Qué código nunca podría generar dos objetos de la misma clase con los mismos valores?:
a. Triangulo objCir l � new Triangulo(5,8);
Triangulo objCir2 � new Triangulo (objCirl);
b. Triangulo objCir l � new Triangulo(5,8);
Triangulo objCir2 � objCir l;
c. Triangulo objCir l � new Triangulo(5,8);
Triangulo objCir2 � new Triangulo (5,8);
d. Triangulo objCir l � new Triangulo(5);
Triangulo objCir2 � new Triangulo (5);
Una planta de tratamiento de piedras dispone de un conjunto de máquinas, siendo éstas de dos tipos:
cortadoras y pulidoras. Una piedra se caracteriza por su nombre y su resistencia. Cada maquina tiene un
identificador y un límite máximo de resistencia de la piedra que aceptan. Las cortadoras en particular
tienen además un mínimo de resistencia de la piedra para que ésta no se deshaga.
Con el objetivo de controlar la usabilidad de las máquinas de la planta, se desea disponer de un sistema
que, ante una piedra, pueda mostrar la lista de identificadores de máquinas de la planta, indicando si
acepta o no el tratamiento de dicha piedra.
Se pide
l. Realizar un esquema indicando las clases y relaciones necesarias para la implementación del
sistema. Indicar también los atributos y métodos necesarios. ( 4 puntos)
2. Implementar la clase que gestione la lista de máquinas ("planta") y el método que muestra la
lista mencionada en el enunciado. (3 puntos)
3. Sobre el sistema diseñado, generar el código que permita:
1. Crear una piedra de resistencia 5 y una nueva máquina pulidora con resistencia
máxima de piedra 4. (1 punto)
u. Crear un objeto tipo "Planta" y añadirle dicha máquina.
(1 punto)
111. Comprobar si dicha máquina acepta la piedra creada en 1. ( 1 punto)
PROBLEMA
Se pide
1. El alumno debe identificar la jerarquía de herencia dada por los tipos de máquina, con
peso_máximo y resistencia_máxima como atributos comunes, y resistencia_mínima como
atributo particular de las pulidoras.
2. El alumno debe definir una clase “planta” con un vector de ”máquinas”, no de ”pulidoras” ni
“cortadoras”, dado que para el control de la usabilidad sólo interesan los identificadores de
máquinas.
3. El alumno debe introducir un método “admitePiedra” en la superclase máquina y en la
subclase “pulidora”. Este método no puede estar en la clase “planta” porque la relación de
herencia no le da acceso al atributo “resistencia mínima” de la subclase “pulidora”. En la
superclase ”máquina” si es necesario dado que a este método se accede desde la clase
“planta”. En la subclase “pulidora” es tambien necesario dado que el método ha de
considerar un atributo propio de la subclase.
(Una opción alternativa es definir un método “admitePeso” solo en la superclase, y un método
“admiteResistencia” en ambas clases).
4. El alumno debe saber implementar un recorrido simple sobre los elementos de un vector.
Piedra
private String nombre;
Planta private int resistencia;
private Vector maquinas;
public void Piedra(String, int)
public void setResistencia(int)
public void mostrarLista()
public int getResistencia()
public void añadirMaquina(maquina)
public void setNombre(String)
public String getNombre()
Maquina
Cortadora
private int resistenciaMin;
LLAMADAS A MÉTODOS
/* DEFINICIÓN DE VARIABLES*/
Piedra piedra;
Maquina pulidora;
Planta planta;
boolean acepta;
/*INSTANCIACION DE VARIABLES*/
piedra=new Piedra(”marmol”,5);
pulidora=new Maquina(“m1”,”4”);
planta=new Planta();
planta.añadirMaquina(pulidora);
if (pulidora.aceptaPiedra(piedra))
System.out.prinln(“La piedra es aceptada”);
else
System.out.prinln(“La piedra no es aceptada”);
TIPO A
o Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
• es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
El test
o Responda el test en una hoja de lectura óptica. No olvide rellenar en dicha hoja el código de carrera,
el de la asignatura y el tipo de examen.
o Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y el Centro Asociado
en el que ha realizado la práctica.
• Rellene sus datos en esta boja y entréguela junto a la de lectura óptica.
Apellidos......... ... ... ... ... ...... ......... ......... ......... ... .....Nombre......... ... ... ... ........DNI... ............
Primera Parte: Test
l. La memoria ROM es:
3. ¿Qué tipo de entorno operativo se relacionaría en mayor medida con el uso por parte del cliente de
un cajero automático?
a. Proceso en lotes.
h. Proceso en tiempo compartido.
c. Proceso interactivo.
d. Proceso de memorandum.
4. ¿Qué desventaja tiene el programar a nivel máquina frente a bajo y alto nivel?
5. Dentro del diseño de la práctica de este año, que clase se podría considerar abstracta:
a. La clase Viaje ya que tiene una composición de Vuelos y Alojamientos.
b. La clase Alojamiento ya que no se van a alquilar Alojamientos sino Hoteles o
Apartamentos.
c. La clase Vuelo ya que no hereda de ninguna clase padre.
d. La clase Hotel ya que hereda de la clase Alojamiento.
7. Si crearnos un objeto sin parámetros con la sentencia: A objA � new A();siendo la clase A la
siguiente:
public class A
{
intnA;
public A(int nA){this nA� nA;}
}
¿Qué pasaría a contmuación?
a. Se crearía un objeto objA ya que se llamaría al constructor por defecto de la clase A
b. Se crearía un objeto objA aunque al no tener parámetros se pasaría un valor nulo al
constructor public A(int nA){this.nA �nA;}
c. Daría un error de compilación debido a que si se declara un constructor en una clase el
constructor por defecto deja de ser accesible.
d. Daría un error de compilación por poner la palabra reservada new delante de la
expresión A().
9. ¿Puede accederse al valor de un atributo de acceso privado ("private") desde una clase distinta?
a. No, dado que es un atributo de acceso privado.
b. Sí, si hay un método también privado que devuelva el valor del atributo.
c. Sí, si hay un método definido corno público que devuelva el valor del atributo.
d. Sí, si el valor se asigna en el constructor de la clase.
SEPTIEMBRE 2006
NO ESTÁ PERMITIDO EL USO DE MATERIAL ADICIONAL
10. Sea una relación de herencia de "mamífero" con "perro" y "gato". ¿Cuál es el modo más apropiado
de definir un valor por defecto "vivíparo" en el atributo "forma de reproducción" de la clase
"mamífero"?
Se necesita una aplicación informática para la venta de entradas en un rnulti-cine. Cada seswn se
caracteriza por la película proyectada, la sala en la que se proyecta, el día y la hora de comienzo de la
película, y el número de entradas vendidas. Todas las salas tienen el mismo número de asientos numerados
del uno al cien. Una sesión puede ser numerada o no. Si la sesión es numerada es necesario recordar qué
asientos han sido vendidos. Si es no numerada basta con llevar el recuento de entradas vendidas.
Se pide:
l. Dibujar un esquema con las clases necesarias para este programa, indicando y comentando
brevemente los atributos, métodos y relaciones entre clases (sólo indicarlos, sin escribir código).
Puntuación: 4 puntos
2. ¿Qué estructura sería la más adecuada para poder almacenar qué asientos han sido vendidos? ¿Por
qué? Puntuación: 1 punto
3. Implementar el/los métodos "comprar entrada" e indicar su localización en las clases. Puntuación: 3
puntos
4. Escribir el código necesario para (Puntuación: 2 puntos):
a. Crear una sesión numerada de la película "ET" el día 5 a las 18 horas en la sala l .
b. Crear una sesión no numerada de la película "V" el día 5 a las 20 horas en la sala 2.
c. Comprar 2 entradas con asientos 2 y 5 en la sesión numerada de la película "ET" del día 5
a las 18 horas en la sala l .
d. Pedir al sistema que sugiera un asiento para la sesión numerada. ¿Cuál sería la respuesta del
sistema?
Solución tipo A:
1)C 2)A 3)C 4)D 5)B 6)C 7)C 8)C 9)C 10)C
FUNDAMENTOS DE LA INFORMÁTICA
Se pide:
Comentarios al esquema:
2. ¿Qué estructura sería la más adecuada para poder almacenar qué asientos
han sido reservados? ¿Por qué? (1 punto)
La estructura de datos más adecuada sería un ARRAY, dado que el número de asientos
máximo es conocido y no mucho mayor que el número de asientos que se ocuparán.
2. Implementar el/los métodos “comprar entrada” e indicar su localización en
las clases. (3 puntos)
En la clase SesiónNumerada:
Devolvería el asiento 2.
SEPTIEMBRE 2006 Reserva
NO ESTÁ PERMITIDO EL USO DE MATERIAL ADICIONAL
RESERVA TIPO A
o Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
• es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
El test
o Responda el test en una hoja de lectura óptica. No olvide rellenar en dicha hoja el código de carrera,
el de la asignatura y el tipo de examen.
o Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y el Centro Asociado
en el que ha realizado la práctica.
• Rellene sus datos en esta boja y entréguela junto a la de lectura óptica.
Apellidos......... ... ... ... ... ...... ......... ......... ......... ... ..... Nombre......... ... ... ... ........DNI... ............
Primera Parte: Test
l. La memoria caché:
a. permite acceder con más rapidez a datos a los que se accede con frecuencia.
b. permite acceder con más rapidez a datos a los que se accede con poca frecuencia.
c. evita la pérdida de datos.
d. aumenta la cantidad de memoria disponible.
6. Suponiendo que, en una estructura de herencia, cada subclase de la clase abstracta "figura" tiene
su propio método "calcula_area", y dado un objeto "f' declarado como "figura" ¿cómo tendrían
que estar declarados los métodos para poder ejecutar "f. calcula_area()"?
a. "calcula area" sólo en las subclases.
b. "calcula_area" en "figura" y en sus subclases.
c. "calcula_area" en "figura" y no en sus subclases.
d. no puede ser ejecutado de ninguna manera.
7. En la práctica de este año ¿cómo tendría que estar definido el método "calcular_precio"?
a. sólo en las subclases "hotel" y "apartamento".
h. en la superclase "alojamiento" y en las subclases "hotel" y "apartamento".
c. sólo en la superclase "alojamiento".
d. sólo en una de las subclases "hotel" o "apartamento".
SEPTIEMBRE 2006 Reserva
NO ESTÁ PERMITIDO EL USO DE MATERIAL ADICIONAL
8. Dado el siguiente código que saldría por pantalla:
int i 9;
�
System.out.println(arrayEnteros[i]);
a. 9
b. 10
c. Saldría un error en compilación porque falta el número 4.
d. Saldría un error en ejecución debido a que la posición 9 está fuera del array.
El Estado, a través de los bancos, oferta deuda pública a sus clientes. La deuda pública tiene distintas
modalidades que son: letras del tesoro y bonos. Todas ellas se pueden agrupar en lo que se denomina
cartera de inversión. Cualquier deuda tiene la fecha de suscripción, el tipo de interés que oferta y su valor.
Además necesita de un método que calcule, dada una fecha, la cantidad de intereses que va generando.
Para ello se ha de tener en cuenta que en las letras del tesoro los intereses no se actualizan hasta finalizar el
plazo de la deuda y en los bonos se actualizan anualmente. El plazo de la deuda es diferente en función de
la modalidad de la deuda. Para las letras del tesoro el plazo es de 2 años, mientras que los bonos tendrán
una duración de 5 años.
Se pide:
l. Realizar un diagrama de clases. En este diagrama se debe incluir las clases necesarias, sus
relaciones (explicando brevemente el por qué de cada una), los atributos de cada clase, el tipo de
éstos y su tipo de acceso. También definir sus métodos incluyendo el constructor. (sólo indicarlos,
sin escribir su código). Puntuación: 4 puntos.
2. hnplernentar la clase Letra del Tesoro. Puntuación: 2 puntos.
3. Suponernos el siguiente ejemplo:
Manuel tiene una cartera de inversión en el banco con las siguientes deudas:
o 2 letras del tesoro, una por valor de 500 euros al 4% de interés a fecha de 01/10/2005 y la
otra por valor de 900 al 5% a fecha de O 1/06/2004.
o 2 bonos de estado al 7% de interés con fecha de 10/06/2003 con un valor de 3000.
Se pide:
a. Realizar las sentencias concretas para crear cada una de las deudas expuestas anteriormente.
Puntuación: 1 punto.
b. hnplernentar un método y decir en qué clase se encuentra (añadirlo también al diagrama de
clases) dónde se pueda calcular dada una fecha qué intereses produce toda la cartera de
inversión. hnplementar las sentencias necesarias para dada la fecha de hoy, se pueda saber qué
intereses ha generado toda la deuda de la cartera. Puntuación: 3 puntos.
1. Diseño de clase
CARTERA DEUDA (Abstract)
LETRA BONO
import java.util.GregorianCalendar;
import java.util.Calendar;
this.iValor = iValor;
}
}
3. Resolviendo el ejemplo de Manuel
a. Ejemplo:
return totalDeudas;
}
Apellidos……………………………………………………..Nombre……………………..DNI……………
2. ¿Qué es un hub?
a. Es un dispositivo de distribución de comunicaciones que permite la conexión de más
periféricos.
b. Es un bus como PCI.
c. Es un protocolo de comunicación como los puertos serie y paralelo.
d. Es un comunicador unidireccional entre el computador y los periféricos.
4. De las siguientes sentencias, ¿cuál es la que mejor describe la funcionalidad del programa controlador
de trabajo?
a. Carga el monitor en memoria al iniciarse el trabajo del sistema.
b. Carga en memoria los módulos de programa que necesite el proceso de ejecución.
c. Se encarga de planificar la secuencia de los diferentes trabajos, repartir la memoria y controlar
la cola de tareas y las interrupciones.
d. Se encarga de optimizar el uso de la memoria al asignar la misma a los diferentes programas.
5. ¿Qué estructura se utilizaría mejor en la práctica a la hora de almacenar los modelos dentro de la clase
GestiónMaquinaria?
a. Un array de tamaño N.
b. Una array de tamaño ilimitado.
c. Un ArrayList.
d. Una matriz de N x N.
System.out.println(Math.sqrt(25));
a. No es correcta ya que no se puede llamar a un método de una clase sin crearse previamente un
objeto.
b. No es correcta ya que la clase Math se tiene que importar previamente.
c. Es correcta porque la clase Math es una clase predefinida.
d. No es correcta ya que la clase Math carece del método sqrt(int).
public class A
{
private int x;
private int y;
public A(int x){this.x=x;}
public A(int x, int y){this.x=x;this.y=y;}
}
a. No, ya que dentro de una clase sólo se puede implementar un constructor.
b. No, ya que no se ha implementado el constructor por defecto.
c. Si, es correcta.
d. No, porque los parámetros d entrada a los constructores no se pueden llamar de la misma forma
que los atributos de la clase.
D oD = new D();
C oC = (C) oD;
a. Si, ya que al ser C y D clases hijas de la clase padre B por polimorfismo se puede reconvertir
un objeto de la clase D en otro de la clase C.
b. No, porque no se pueden crear dos clases hijas de una misma clase padre.
c. No, porque una clase hija no se puede reconvertir a otra clase hija por tanto hay
incompatibilidad de tipos.
d. No, porque no se ha creado previamente el objeto oC con la sentencia C oC = new C();.
Sin esta sentencia previa no se puede asignar otros objetos al objeto oC.
10. ¿Qué resultado da la siguiente estructura de control? El operador % es el operador resto.
int x = 2;
do
{
try
{
if (x%2 == 0)
throw new Exception();
x++;
}
catch(Exception e){x--;}
finally
{
x=x+2;
System.out.print(x + " ");
}
}
while (x < 10);
a. 3 6 7 10
b. 4 6 8 10
c. 3 5 7 9
d. 3 6 8 10
1. Dibujar un diagrama de clases con los atributos y métodos necesarios, incluidos los métodos constructores.
(2 puntos)
2. Implementar la clase circuito serie. (2 puntos)
3. Implementar la creación del siguiente objeto de un circuito en serie:
a. Circuito con 3 resistencias de 3, 5 y 6 ohmios y una fuente de alimentación cuyo potencial es
medido a 4 voltios. (1 punto)
b. Hacer la llamada al método correspondiente. ¿Qué resultado daría por pantalla? (1 punto)
4. Definimos un circuito mixto como una composición donde puede haber circuitos en serie y/o circuitos en
paralelo. Implementar un método de la clase circuito mixto que calcule la suma de las intensidades de
todos los circuitos que componen el circuito mixto. Pista: Para este apartado se ha de tener en cuenta el
polimorfismo. (4 puntos)
1D, 2A, 3D, 4C, 5C, 6D, 7C, 8C, 9C, 10A
Problema 1 semana Febrero 2007 Electrónica-Electricidad
Apartado 1
CircuitoSerie CircuitoParalelo
import java.util.ArrayList;
public class CircuitoSerie extends Circuito
{
public CircuitoSerie (){super();}
public CircuitoSerie (double v)
{
super(v);
}
public double calcularIntensidadCircuito()
{
double totalResistencias = 0;
double intensidad;
for (double r: resistencias)
totalResistencias += r;
intensidad = v / totalResistencias;
return intensidad;
}
}
Apartado 3
Apellidos……………………………………………………..Nombre……………………..DNI……………
2. ¿Qué es un hub?
a. Es un dispositivo de distribución de comunicaciones que permite la conexión de más
periféricos.
b. Es un bus como PCI.
c. Es un protocolo de comunicación como los puertos serie y paralelo.
d. Es un comunicador unidireccional entre el computador y los periféricos.
4. De las siguientes sentencias, ¿cuál es la que mejor describe la funcionalidad del programa controlador
de trabajo?
a. Carga el monitor en memoria al iniciarse el trabajo del sistema.
b. Carga en memoria los módulos de programa que necesite el proceso de ejecución.
c. Se encarga de planificar la secuencia de los diferentes trabajos, repartir la memoria y controlar
la cola de tareas y las interrupciones.
d. Se encarga de optimizar el uso de la memoria al asignar la misma a los diferentes programas.
5. ¿Qué estructura se utilizaría mejor en la práctica a la hora de almacenar los modelos dentro de la clase
GestiónMaquinaria?
a. Un array de tamaño N.
b. Una array de tamaño ilimitado.
c. Un ArrayList.
d. Una matriz de N x N.
System.out.println(Math.sqrt(25));
a. No es correcta ya que no se puede llamar a un método de una clase sin crearse previamente un
objeto.
b. No es correcta ya que la clase Math se tiene que importar previamente.
c. Es correcta porque la clase Math es una clase predefinida.
d. No es correcta ya que la clase Math carece del método sqrt(int).
public class A
{
private int x;
private int y;
public A(int x){this.x=x;}
public A(int x, int y){this.x=x;this.y=y;}
}
a. No, ya que dentro de una clase sólo se puede implementar un constructor.
b. No, ya que no se ha implementado el constructor por defecto.
c. Si, es correcta.
d. No, porque los parámetros d entrada a los constructores no se pueden llamar de la misma forma
que los atributos de la clase.
D oD = new D();
C oC = (C) oD;
a. Si, ya que al ser C y D clases hijas de la clase padre B por polimorfismo se puede reconvertir
un objeto de la clase D en otro de la clase C.
b. No, porque no se pueden crear dos clases hijas de una misma clase padre.
c. No, porque una clase hija no se puede reconvertir a otra clase hija por tanto hay
incompatibilidad de tipos.
d. No, porque no se ha creado previamente el objeto oC con la sentencia C oC = new C();.
Sin esta sentencia previa no se puede asignar otros objetos al objeto oC.
10. ¿Qué resultado da la siguiente estructura de control? El operador % es el operador resto.
int x = 2;
do
{
try
{
if (x%2 == 0)
throw new Exception();
x++;
}
catch(Exception e){x--;}
finally
{
x=x+2;
System.out.print(x + " ");
}
}
while (x < 10);
a. 3 6 7 10
b. 4 6 8 10
c. 3 5 7 9
d. 3 6 8 10
1. Dibujar un diagrama de clases con los atributos y métodos necesarios, incluidos los métodos constructores.
(2 puntos)
2. Implementar la clase circuito serie. (2 puntos)
3. Implementar la creación del siguiente objeto de un circuito en serie:
a. Circuito con 3 resistencias de 3, 5 y 6 ohmios y una fuente de alimentación cuyo potencial es
medido a 4 voltios. (1 punto)
b. Hacer la llamada al método correspondiente. ¿Qué resultado daría por pantalla? (1 punto)
4. Definimos un circuito mixto como una composición donde puede haber circuitos en serie y/o circuitos en
paralelo. Implementar un método de la clase circuito mixto que calcule la suma de las intensidades de
todos los circuitos que componen el circuito mixto. Pista: Para este apartado se ha de tener en cuenta el
polimorfismo. (4 puntos)
EJERCICIO 1:
GestorZonas
Zona
private ArrayList <zona> zonas;
private String nombre;
private int numArboles; public GestorZonas();
public int calculaKgMadera(int año)
public void añadirZona(Zona zona)
public Zona(String nombre,
int numArboles);
/*Metodos get y set*/
public int calculaKgMadera(int año)
ZonaTalaEsporadica ZonaTalaAnual
TIPO A Na (ele)
Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
Responda el test en una hoja de lectura óptica. No olvide rellenar en dicha hoja
el código de carrera, el de la asignatura y el tipo de examen.
Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre
y el Centro Asociado en el que ha realizado la práctica.
Rellene sus datos en esta hoja y entréguela junto a la de lectura óptica.
Apellidos……………………………………………..Nombre……………………..DNI………
…
for (int i=1;i<3;i++){
for (int j=1;j<3;j++){
System.out.println(i);
System.out.println(j);
}
}
…
a. 1,1,2,1,1,2,2,2
b. 1,1,2,2,2,1,1,2
c. 1,1,1,2,2,1,2,2
d. 1,2,1,2
10. ¿En qué clase se implementa el método comprobar_máquina_plantación en la práctica de este año?
a. En la clase GestiónMaquinaria.
b. En la clase Plantación.
c. En la clase Modelo_de_máquina
d. En la clase Producto.
Segunda Parte: Problema
Se desea implementar un sistema para el control de gastos de cambio de piezas en los
automóviles de una empresa de transporte. Cada año, los conductores que consideren
que se requiere un cambio de pieza por desgaste pedirán una revisión en el taller de
mantenimiento de la flota. El encargado del taller anotará la información relativa a las
revisiones realizadas. De cada revisión se anotará la fecha de revisión, la matrícula del
automóvil y el conjunto de piezas sustituídas. De cada pieza es necesario conocer su
código y coste. El sistema de control de revisiones debe disponer de un método que
permita calcular el coste total de todas las piezas de una revisión. Además, el sistema
debe tener en cuenta que, a efectos de facturación, existen tres tipos de piezas: las
importadas, las de fabricación nacional y las de desguace. A las importadas hay que
añadirles un porcentaje por gastos de envío, específico para cada pieza. A las de
fabricación nacional el porcentaje de IVA fijo, y a las de desguace no se les añade
ningún porcentaje.
Se pide:
1. Dibujar un diagrama de clases con los atributos y métodos necesarios, incluidos los
métodos constructores. Justificar en qué clase o clases se implementaría el o los
métodos para calcular el coste final de UNA pieza. (5 puntos)
a. Crear dos objetos que representen una revisión y una pieza de importación
nacional (con valores arbitrarios en sus atributos).
Solución test septiembre 2007, tipo A:
1 d), 2 c), 3 c), 4 d), 5 c), 6 b), 7 a), 8 c), 9 c), 10 c)
SOLUCIÓN PARTE PRÁCTICA DEL EXAMEN
SEPTIEMBRE 2007, ESPECIALIDAD MECÁNICA
Se pide:
Revisión
Pieza
private ArrayList <pieza>
private String código; piezas_sustituidas;
private int coste;
public Pieza(String codigo,
int coste); public Revisón();
/*Metodos get y set*/ public int calculaCosteTotal()
public int calculaCoste(int año) public void añadirPieza(Pieza p)
PiezaImportada Pieza_Imp_Nacional
EJERCICIO 2
public void calculaCosteTotal (){
int coste=0;
for (int i=0;i < this.piezas_sustituidas.size();i++){
coste=coste+this.piezas_sustituidas.get(i).calculaCoste();
}
return coste;
}
EJERCICIO 3:
l . La memoria virtual puede ser especialmente útil cuando dispararnos procesos que:
a) Operan con gran cantidad de datos.
b) Acceden frecuentemente a disco.
e) Acceden frecuentemente a la red.
d) No deben interrumpirse.
4. Indica cuál de las siguientes funciones no son propias del sistema operativo
a) Gestión de permisos y usuarios.
b) Gestión de la BIOS.
e) Administración de la memoria principal y secundaria.
d) Planificación de procesos.
5. ¿Cuál es la diferencia entre una instancia de una clase y un objeto de dicha clase?
a) La instancia de una clase es la generalización de los objetos de dicha cla<;e.
b) El objeto es la generalización de la instancia de una clase.
e) La instancia de una clase es la propia clase, que es a su vez la generalización de un objeto
concreto.
d) Instancia de una cla<;e y objeto son lo mismo.
a) 1,1,2,2,1,2
b) 1,2,1,2,1,2
e) 1,2,1,1,2,2
d) 1,1, 2,2 , 1,1
7. ¿Puede una lista de objetos en JAVA almacenar instancias de clases definidas posteriormente?
a) No, dado que es necesario defmir la clase a la que pertenecen los objetos almacenados.
b) Sí, siempre que las clases se implementen dentro del mismo paquete.
e) No, dado que sólo se pueden almacenar atributos en una lista, no objetos.
d) Sí, siempre que las nuevas instancias pertenezcan a clases que hereden de aquellas para la que
se deílnió la lista.
Se desea diseftar una aplicación para la gestión de un supermercado on-line. Los productos del supermercado
pueden ser alimentos o ropa. Todo producto debe tener un nombre, un precio y un identificador. Los
productos que sean del tipo comida tendrán además una fecha de caducidad, mientras que la ropa tendrá
siempre una talla. De cada cliente de este supermercado deberá guardarse su nombre y apellidos, una
dirección y un identificador personaL Además, cada cliente podrá realizar una o varias compras que estarán
formadas a su vez por uno o varios ítems de diferentes productos. Cada compra estará identificada por un
valor numérico único y cada ítem estará formado por un producto y una cantidad.
Se pide:
l . Realizar el disefto de la aplicación, es decir, diseftar el esquema de clases con sus correspondientes
atributos y métodos, estableciendo las relaciones que sean necesarias. El diseño deberá cumplir con las
siguientes funcionalidades:
l . Se deberá poder "añadir" y "borrar" y "consultar" los ítems de una compra.
2. Se deberán poder "añadir", "borrar" y "consultar" los identificadores de las compras de un
cliente.
2. Escribir el código necesario para:
l . Instanciar un producto de la categoría comida y otro de la categoría ropa.
2. Instanciar una compra y añadir ítems con cantidades 2 y 3 de los productos anteriores.
3. Crees que este disefto se hace necesario el uso del polimorfismo. Justiíica tu respuesta en términos del
problema.
2. Un puerto USB:
a) Es más seguro que un puerto paralelo.
b) N o requiere una interfaz externa para conectar con el computador.
e) Conecta entre si los elementos de la placa madre.
d) Conecta la placa madre con el disco duro.
a) 1,1,2,2,1,2
b) 1 ,2,1,2, 1 ,2
e) 1 2 1 1,2,2
, , '
d) 1,1,2,1,1,1
Se quiere implementar un sistema en JAVA para gestionar las pruebas de neumáticos. Para cada modelo de
neumático, identificado mediante un código, se realiza un conjunto indeterminado de pruebas. En cada prueba
se somete un neumático a una fuerza de rozamiento F durante un tiempo T y se comprueba los centímetros de
desgaste. Existen dos tipos de prueba: las de alto rozamiento (F=lOO, T=S), y las de durabilidad
(F=l O, T=l 0000). Despues de cada prueba, el técnico introducirá los resultados en el sistema. El sistema debe
disponer de un método para calcular, dado un modelo, el desgaste promedio de las pruebas,
independientemente de su tipo.
Se pide:
l . Representar el esquema de clases con las clases, atributos y relaciones del sistema. Indicar el
mecanismo empleado para inicializar los valores de F y T.
2. Crear los objetos y hacer las llamadas necesarias para representar un modelo "m92873" e introducir
los resultados de tres pruebas de durabilidad (desgastes 5,4, y 6) y otra de alto rozamiento con
desgaste.
3. Explicar justificadamente en qué clase se implementarla el método que calcula el promedio de
desgaste de un modelo y qué operaciones realizarla sobre qué estructura de almacenamiento.
2. Un puerto USB:
a) Evita el uso de tarjetas especializadas para cada periférico.
b) Establece una conexión directa entre los dispositivos periféricos.
c) Establece un nivel hardware entre el sistema operativo y el compilador.
d) Es un hub que interconecta conjuntos de máquinas.
a) 0,1,2,0,1,2
b) 0,1,1,0,1,2
c) 0,1,1,0,1,1
d) 2,1,1,2,2,1
8. Se tiene este código para un determinado método, ¿Qué salida daría por pantalla?
Se desea gestionar las citas en un hospital. El centro debe administrar su lista de citas con especialistas y de citas para
pruebas médicas. Tanto las citas con especialistas como las citas para pruebas medicas deben incluir su hora y día y
nombre del paciente. Las citas con especialistas incluyen además el nombre del especialista y su especialidad. Las citas
para pruebas incluyen el nombre de la prueba. El sistema debe de ser capaz de imprimir en pantalla todas las citas
existentes para un especialista concreto o para todos, y para una o todas las pruebas. Además, debe de ser posible crear
una nueva cita introduciendo los datos de la misma (strings). Antes de proceder al diseño leanse las tres cuestiones
siguientes:
Se pide:
1. (2 puntos) Dibujar un esquema con las clases necesarias para este programa, indicando los atributos y métodos
que tiene cada una (sólo indicarlos, sin escribir su código), aplicando los principios de la programación
orientada a objetos.
2. (1 punto) Implementar el método que permite imprimir las citas de un determinado especialista.
3. (2 puntos) Explicar justificadamente cómo se haría para, sin modificar el sistema existente y aplicando los
principios de la programación orientada a objetos, reutilizar el código para hacer un nuevo programa que
gestione otro hospital análogo que incluya además la posibilidad de modificar una cita. ¿Qué clases han de
extenderse y con qué nuevos métodos y atributos? ¿Qué métodos se reutilizan?
Hospital
abstract Cita
Cita Cita
CitaEspecialista CitaPruebas
1. Dado que todas las citas son o de especialista o de prueba, la clase genérica
cita debe de ser abstracta.
4. La creación de una nueva cita requiere dos métodos (dependiendo del tipo de
cita) en la clase Hospital que añada un elemento a su lista.
SEGUNDO PROBLEMA
TERCER PROBLEMA
Para modificar una cita sería necesario un nuevo método en la clase Hospital
análodo a “crearCitaEspecialista” o “crearCitaPrueba”. Podría crearse un método
o dos, cada uno de ellos especializado en cada tipo de cita. En general, no es
necesario reimplementar de nuevo el sistema. Bastaría con crear una clase hija
de Hospital en la que se implemente este nuevo método, reutilizando el resto de
métodos.
Si nos adentramos a más nivel de detalle, cabría decir que esto solo es posible
si los atributos citasEspecialista y citasPrueba están definidos como
“protected” y no como “private”, ya que como “private” no podrían ser
modificados por la clase hija. En general, esto no suele ser un problema en la
reutilización de código. Para los atributos “private”, las clases suelen incluir
todos los métodos necesarios para modificar el atributo. Por ejemplo, bastaría
un que hubiera de antemano un metodo “borrarCita”.
Septiembre 2008 tipo A (mecánica)
2. Un puerto USB:
a) Evita el uso de tarjetas especializadas para cada periférico.
b) Establece una conexión directa entre los dispositivos periféricos.
c) Establece un nivel hardware entre el sistema operativo y el compilador.
d) Es un hub que interconecta conjuntos de máquinas.
a) 0,1,2,0,1,2.
b) 0,1,1,0,1,2.
c) 0,1,1,0,1,1.
d) 2,1,1,2,2,1.
8. Se tiene este código para un determinado método, ¿Qué salida daría por pantalla?
Se desea implementar un sistema JAVA para la gestión de una fábrica de vehículos donde se fabrican motores
de tres tipos: gasolina, diésel y eléctricos. De cada motor se tiene como información característica la relación
de compresión y su cilindrada, así como un identificador único de la marca y el modelo del motor.
En el caso de motores de gasolina y diesel se debe guardar información relativa a la resistencia que presenta el
combustible cuando es comprimido dentro del motor: el índice de octanaje en el caso de la gasolina y el índice
de cetano en los motores diésel. Los motores de gasolina pueden ser de inyección o de carburación. En el caso
de los motores de gasolina con carburador deberá guardarse también el tamaño de la cuba como información
característica, y para los motores diésel y los de gasolina de inyección, el tipo de inyeccion (directa o
indirecta) y el número de inyectores. De los motores eléctricos se desea almacenar la información relativa a la
corriente y el par de arranque.
Por último, y dado que la fábrica está preparada para la construcción de diferentes modelos de coches, se desea
que la aplicación a desarrollar sea capaz de recuperar, para un modelo de coche dado, el conjunto de motores
compatibles con su chásis.
Se pide:
− 2'5 puntos. ¿Cómo modelarías este problema para que la aplicación soporte todas la especificación
requerida? Realiza el diseño de clases correspondiente.
− 1'5 puntos. ¿Dónde definirías el método necesario para devover, dado un modelo de coche, el conjunto de
motores compatibles con su chásis? Razona tu respuesta.
− 1 puntos. Implementa el código necesario para instanciar un motor de gasolina de inyección directa.
Se pide:
1. (2'5 puntos). ¿Cómo modelarías este problema para que la aplicación
soporte todas la especificación requerida? Realiza el diseño de clases
correspondiente.
Cita Cita
MotorGasolinaIny MotorGasolinaCarb
SEGUNDO PROBLEMA
TERCER PROBLEMA
MotorGasolinaIny motorEjemplo =
new MotorGasolinaIny(“Opel”,“Corsa”,0.5,0.2,0.3,”directa”);
Septiembre de 2008 tipo A (reserva)
TIPO A RES(elec/mec)
• Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
• Responda el test en una hoja de lectura óptica. No olvide rellenar en dicha hoja el código de carrera, el
de la asignatura y el tipo de examen.
• Resuelva el Problema en el cuadernillo indicando su nombre y el Centro Asociado en el que ha realizado
la práctica.
• Entregue la hoja de lectura óptica, enunciados y el cuadernillo completo.
3. El sistema operativo:
a) Gestiona los tiempos de CPU asignados a los procesos.
b) Se encarga de la compilación de todos los programas ejecutados en el computador.
c) Se encarga de interconectar los elementos de la placa madre.
d) Es el componente hardware principal del computador.
4. El software es:
a) El conjunto de componentes físicos del ordenador.
b) La placa madre y sus componentes.
c) El conjunto de programas que nos permiten hacer uso del ordenador.
d) El conjunto de programas instalados en el ordenador, salvo el sistema operativo.
5. ¿Que secuencia de valores imprimiría el siguiente código?
a) 0, 1, 2.
b) 1, 2.
c) 1, 2, 3.
d) 0, 1.
a) El código es correcto.
b) La creación del objeto 'pedido' es incorrecta.
c) Un método static no permite la creación de objetos.
d) Falta declarar el tipo que devuelve el método 'Pedido'.
Se pide:
− 2'5 puntos. Diseñar el diagrama de clases para una aplicación que permita gestionar las cuentas de cliente
y los pedidos, teniendo en cuenta que se han de poder añadir, eliminar y modificar dichas cuentas y
pedidos.
− 1'5 puntos. Modificar el diseño para que en el conjunto de piezas se distingan dos tipos de piezas. El
primero de ellas, las bielas, contendrá información acerca del diámetro de sus dos agujeros, así como su
longitud. El segundo tipo, el cigüeñal, debe almacenar el número de apoyos que tenga dicho cigüeñal.
¿Qué mecanismo has utilizado para introducir la modificación solicitada en este apartado? ¿Por qué?
− 1 puntos. Escribe el código necesario para calcular el precio total de un pedido según el diseño resultante
del apartado anterior.
GestionCuentas
Cuenta
Pieza
SEGUNDO PROBLEMA
Pieza
Biela Cigüeñal
TIPO A mod I
• Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
• Responda el test en una hoja de lectura óptica. No olvide rellenar en dicha hoja el código de
carrera, el de la asignatura y el tipo de examen.
• Resuelva el Problema en el cuadernillo indicando su nombre y el Centro Asociado en el que ha
realizado la práctica.
• Entregue la hoja de lectura óptica, enunciados y el cuadernillo completo.
5. En la práctica realizada este año, para dibujar la carga de un vagón en función de su peso
sería necesario modificar el método Draw de la clase:
a) Tren.
b) Vagón.
c) Figura.
d) Locomotora.
7. Se tiene un sistema informático en JAVA para la gestión de una tienda, compuesto por una
clase Tienda y otra clase Cliente de la que heredan dos: ClienteHabitual y
ClienteEsporádico. Si quisiéramos disponer de una lista de Clientes, ¿dónde sería correcto
incluirla?
a) En la clase cliente
b) En la clase Tienda
c) En cualquiera de las clases que heredan de Cliente
d) No sería posible la inclusión de listas con el diseño dado.
8. Si existe código duplicado en dos clases diferentes, indique el mecanismo que utilizaria en
Java para evitar el problema:
a) Composición de clases.
b) Polimorfismo.
c) Herencia.
d) Estructuras de control.
9. ¿Qué secuencia numérica imprimiría el siguiente código?
...
for (int i=0; i < 10; i=i+2) {
if ( i > 2 ) {
System.out.println(i);
}
}
a) 0, 2, 4, 6, 8.
b) 0, 2.
c) 4, 6, 8.
d) 4, 6, 8, 10.
10. La finalidad de los métodos de acceso (get) a campos (atributos) en una clase JAVA es:
a) Dar información sobre el estado del objeto a otras clases.
b) Modificar los campos de una clase.
c) Permitir que las clases hijas hereden los campos.
d) Redefinir el tipo de los campos.
Apellidos………………………………...……..Nombre……………………..DNI………...……
Segunda Parte: Problema
Se desea diseñar un gestor para la compra de billetes de tren. Dicho gestor almacenará todos los
trenes disponibles en un momento dado y permitirá la adquisición de billetes para un tren dado su
destino. Cada tren se caracteriza por su destino y por los vagones que lo componen. Cada vagón
tiene un límite de plazas y un número de plazas libres. Cada billete tendrá asociados un nombre y un
DNI correspondientes a su comprador.
a) (1,5 Puntos) Dado el diagrama, completar la clase tren para que sea coherente con el diseño
y además proporcione métodos para saber el número de plazas totales en un tren, las
ocupadas, las libres y además incluya un método adquirirPlaza.
b) (1,5 Puntos) Extender el diagrama para incluir el Gestor de Billetes y los Billetes. Para
comprar un billete a través del gestor es necesario un método que permita especificar el
destino, de forma que se pueda identificar el tren correspondiente para comprobar si existen
plazas libres, y en su caso, adquirir una. Dicho método devolverá un objeto de la clase
Billete.
c) (1 Punto) Describa de forma ordenada cómo se buscaría un tren con un destino concreto
según su diseño, especificando la clase o clases dónde se realizaría dicha búsqueda y las
estructuras de control que sería necesario utilizar.
d) (1 Punto) Dado un tren concreto, describa de forma ordenada el proceso que llevará a cabo
el método adquirirPlaza (buscar una plaza libre en el tren y ocuparla), especificando las
estructuras de control necesarias en cada paso y las llamadas a métodos que serían
necesarias.
Solución febrero de 2009 - Primera semana (TIPO A):
1 c), 2 c), 3b), 4 a), 5b), 6a) -se admite también como
correcta 6 c)-, 7b), 8c), 9 c), 10 a)
FEBRERO 2009 Segunda Semana
TIPO A mod II
• Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
• Responda el test en una hoja de lectura óptica. No olvide rellenar en dicha hoja el código de
carrera, el de la asignatura y el tipo de examen.
• Resuelva el Problema en el cuadernillo indicando su nombre y el Centro Asociado en el que ha
realizado la práctica.
• Entregue la hoja de lectura óptica, enunciados y el cuadernillo completo.
5. En la práctica realizada este año, a los métodos de la clase Pizarra se accede desde las
clases hijas de:
a) Figura.
b) Vagón.
c) Locomotora.
d) Tren.
7. Cuando una clase tiene como atributo (campo) una lista de objetos de otra clase decimos
que entre ambas existe una relación de:
a) Herencia.
b) Abstracción.
c) No existe ninguna relación.
d) Composición
8. Cual de estas siguientes afirmaciones es FALSA. El mecanismo de herencia permite:
a) Reutilizar programas sin tocar su código (extensibilidad).
b) Reducir la cantidad de código redundante al diseñar un sistema.
c) Eliminar campos de una clase previamente implementada.
d) Crear una clase similar a otra previamente implementada pero con nuevos campos y métodos.
a) 3,6,9,12
b) 1,3,6,10,15
c) 0,1,3,6
d) 1,2,4,8
Segunda Parte: Problema
Una empresa de logística quiere informatizar su actividad. Esta empresa se dedica a la organización
y distribución de flujos de mercancías por vía terrestre, en particular, por ferrocarril.
Se deberá poder tratar un conjunto de solicitudes de clientes, cada una de las cuales deberá tener un
identificador de cliente, un tipo de carga contratada y la cantidad que se quiere transportar.
A partir de cada solicitud, se deberá fletar un tren (en nuestro caso, esto es instanciar un objeto de la
clase Tren) para el transporte de esa mercancía, con un número de vagones que dependerá de la
cantidad y tipo de mercancía a transportar. Al igual que en la práctica de este año, cada tren está
formado por una locomotora y un conjunto de vagones.
Se pide:
1. (1,5 puntos) A partir de la clase Tren mostrada en la figura, representar el diagrama de
clases necesario para llevar a cabo las acciones descritas en el enunciado. No es necesario
especificar las clases Locomotora y Vagón, ni sus métodos. Por tanto, deberán indicarse to
dos los campos y métodos necesarios sólo en la clase o clases que se definan.
2. (2 puntos) Explique en detalle cómo debería implementarse un método capaz de acceder al
conjunto de solicitudes que se tengan almacenadas en un momento dado, e ir fletando trenes
con las características requeridas en cada caso.
3. (1'5 puntos) Crear los objetos y hacer las llamadas necesarias para instanciar dos solicitudes
(Pepe quiere desplazar 5000kg de madera y Juan desea enviar 6000Kg de hierro), así como
gestionlas, es decir, fletar trenes que puedan realizar ambos transportes.
• Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
• Responda el test utilizando la hoja de lectura óptica.
• No olvide indicar en la hoja de lectura óptica el tipo de examen (A,B o C)
• Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y DNI.
TIPO A
a) 132231
b) 31213222
e) 312213
d) 13122322
Una conocida marca de muebles montables sueca, necesita un sistema para el diseño de cocinas.
Para ello se ha de modelar el siguiente problema: Una cocina se compone de una serie de
estructuras. Existen dos tipos de estructuras: altas y bajas. Las altas miden 2 metros de alto por 60
cm de ancho. Las bajas miden 1 metro de alto por 120 cm de ancho. Se asume que un montaje de
cocina ocupa una pared. Una estructura alta puede contener o no una nevera. Una estructura baja
puede contener un horno, unos fuegos o ambas cosas. Se necesita una clase "Cocina" que permita
las siguientes funcionalidades:
l. Añadir una estructura alta a la cocina. Como parámetro de entrada se puede indicar si
contiene o no una nevera.
2. Añadir una estructura baja a la cocina. Como parámetros se puede indicar si contiene horno,
fuegos o ambos.
3. Comprobar que exista ya una nevera.
4. Comprobar que exista ya un horno.
5. Comprobar que existan ya fuegos.
6. Dada una cierta longitud (de pared), comprobar que la cocina que se está diseñando no
exceda dicha longitud.
Se pide (lea con atención todos los apartados antes de empezar a responder y asegúrese de que su
diseño cubra los aspectos requeridos):
•Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
•El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
•Responda el test utilizando la hoja de lectura óptica.
•No olvide indicar en la hoja de lectura óptica el tipo de examen (A,B o C)
•Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y DNI.
TIPO A
3. Para modelar relaciones padre, madre e hijos entre objetos de la clase "persona" en JAVA
aplicaría:
a) Técnica de la herencia.
b) Composición entre clases.
e) Definición de persona como tipo primitivo o clase predefinida.
d) Objetos tipo arreglo o matrices.
7. En la práctica obligatoria de este año, indique en qué clase se implementaba una estructura
de almacenamiento polimórfica.
a) En la clase que representa a un cliente.
b) En la clase que representa a un cliente vip.
e) En la clase que representa a un gestor.
d) En la clase que representa a un cliente avanzado.
a) O, 4, 6, 8.
b) 2, 4, 6, 8.
e) O, 2 , 6, 8.
d) O, 4, 6, 8, 10.
10. Sabiendo que la clase Alumno posee un campo DNI no privado, ¿qué imprimiría el
siguiente fragmento de código?:
Alumno a = new Alumno();
a.DNI="1234567-L";
Alumno b = a;
a.DNI=�3748293-J";
System.out.printLn(b.DNI);
a) 1234567-L
a) Nada. Aparecería un error de ejecución (Null pointer exception)
b) 3748293-J
e) La sintaxis de este fragmento de código es errónea.
Apellidos...............................................Nombre..........................DNI................. .
Se pide (lea con atención todos los apartados antes de empezar a responder y asegúrese de que su
diseño cubra los aspectos requeridos):
•Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
•El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
•Responda el test utilizando la hoja de lectura óptica.
•No olvide indicar en la hoja de lectura óptica el tipo de examen (A,B o C)
•Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y DNI.
2. El estado de un objeto:
a) está representado por su clase.
b) está representado por sus métodos estáticos.
e) está representado por los valores de sus campos.
d) está representado por el compilador.
3. Se desea que el atributo edad de la clase "Persona" sea coherente con el atributo "Fecha de
nacimiento". Para ello:
a) Declararíamos ambos atributos como privados para que sólo se pueda modificar desde
métodos de la clase.
b) Definiríamos ambos atributos como tipos predefinidos.
e) Crearíamos una relación de composición entre ambos atributos.
d) Definiríamos ambos atributos como constantes.
S ystem.out. println(i);
System.out.printlnU);
i = i * 2;
lf ( j > 9) [
y--;
l
J
a) 2, 4, 8, 10, 9, 9.
b) 2, 9, 4, 9, 8, 9.
e) 2, 10, 4,9, 8, 8.
d) 2, 10, 4, 9, 8, 9.
7. En un repositorio se dipone de una clase (.class) "persona" con los atributos típicos
(nombre, dni, edad). Para reutilizar esta clase en un sistema que calcule estadísticas de edad
sobre una población es necesario:
a) Crear una subclase que herede de Persona.
b) Modificar el fichero compilado (.class).
e) No podemos reutilizar la clase por disponer solo del fichero compilado (.class)
d) Crear una clase que importe la clase Persona.
lÜf 1>
e = e+ i;
}
retum e;
a) 10
b) 9
e) 8
d) 11
Apellidos...............................................Nombre..........................DNI..................
La Universidad a Distancia UaD ha decidido informatizar la gestión de sus centros asociados. Para
ello se pide diseñar una aplicación que permita guardar la siguiente información:
Los centros de que dispone la UaD, cada uno con su nombre, una lista de alumnos y otra de
tutores.
Tanto alumnos como tutores tendrán un nombre, unos apellidos y un NIF.
Los alumnos tendrán un número de expediente.
Los tutores tendrán las asignaturas que imparten (a priori se desconoce el número). Basta con
almacenar el nombre de las asignaturas.
Se deben poder añadir, borrar y listar centros, alumnos y tutores.
Se deben poder listar las asignaturas impartidas por un tutor.
Se debe poder obtener la lista de tutores que imparten una asignatura en todos los centros.
Se deben poder buscar tanto alumnos como tutores por NIF.
Se debe poder buscar un alumno por número de matrícula.
Para el caso de los listados y las búsquedas de alumnos y tutores, se ha de buscar en todos los
centros.
Por simplicidad asumimos que cada alumno sólo tiene un número de expediente y estará asociado a
un único centro, y que cada asignatura es tutorizada por un solo tutor en cada centro.
a) Diseñar el sistema requerido, representando el esquema de clases resultante, mostrando las clases
necesarias, sus campos y métodos, así como las relaciones entre las clases. (3 puntos)
b) Detalle el código necesario para (en cada punto se puede utilizar lo del anterior): (1 punto)
bl) Instanciar el sistema para empezar a trabajar con él.
b2) Añadir un centro con los siguientes datos: Nombre=Madrid.
b3) Añadir tutores y alumnos al centro de Madrid (un tutor y tres alumnos, por ejemplo)
b4) Buscar un alumno por número de expediente.
e) Describa detalladamente cómo funcionaría el método que permite obtener la lista de tutores que
imparten una asignatura en la UaD. Suponiendo que pueda haber más de un tutor para una misma
asignatura en un mismo centro, ¿Qué cambios habría que hacer en todo lo anterior? (1 punto)
FUNDAMENTOS DE INFORMÁTICA
res_electricidad_grado_sept10
•Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
•El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
•Responda el test utilizando la hoja de lectura óptica.
•Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y DNI.
2. La herramienta que nos permite obtener un programa objeto a partir de uno fuente se llama:
a) Depurador.
b) Compilador.
e) Intérprete.
d) Controlador.
System.out.print!il;
a) 3,1,2,1,1,3
b) 1,3,2,3,1,2,2,2
e) 1,3,1,2,3,1
d) 3,1,3,2,2,1,2,2
8. Las clases Automóvil, Coche y Camión tienen las tres un campo matrícula. Sólo la clase
Coche tiene un campo plazas y sólo la clase Camión tiene un campo carga. Asumiendo que
esto es todo lo que se desea modelar ¿Cuál es la forma más apropiada de modelarlas en
Java?
a) Con una clase Automóvil de la que heredan Coche y Camión.
b) Con tres clases sin relaciones entre ellas.
e) Con una clase Automóvil de la que herede Coche, de la que a su vez herede Camión.
d) Con una clase Coche de la que herede Camión.
9. Queremos que un objeto "Persona" pueda crearse asignandole un DNI o un DNI más el
nombre completo. ¿Cómo se podría hacer esto?
a) Creando dos constructores con el mismo nombre. Uno con un parámetro de entrada y
otro con dos.
b) Creando dos constructores con distinto nombre.
e) Creando dos clases independientes
d) No es posible.
a) (2.5 Puntos) Realizar el diagrama de clases indicando las clases, métodos, atributos o
campos y relaciones necesarias para modelar el problema.
b) (2.5 Puntos) Implementar los métodos (no las clases completas) implicados en la
generación de las transferencias.
TIPO A madi
• Para la nota del examen, el test vale el30% y el Problema vale el 70%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
• Responda el test en la hoja de lectura óptica.
• Resuelva el Problema en el cuadernillo indicando su nombre y el Centro Asociado en el que ha
realizado la práctica.
a) Un sistema que permite la instalación de nuevos dispositivos con facilidad. Para que
funcione sólo sería necesario enchufar el dispositivo e instalar los drivers adecuados que
vienen con dicho dispositivo. La asignación del número de intenupción asociada al
dispositivo se hace de forma automática.
b) Un sistema que permite la instalación de nuevos dispositivos con facilidad. Para que
funcione sólo se1ía necesario enchufar el dispositivo ya que los drivers los detecta de
forma automática. La asignación del número de interrupción asociada al dispositivo se
hace de forma manual.
e) Un sistema que permite la instalación de nuevos dispositivos con facilidad. Para que
funcione sólo sería necesario enchufar el dispositivo ya que los drivers los detecta de
fmma automática. La asignación del número de interrupción asociada al dispositivo se
hace de forma automática.
d) Un sistema que permite la instalación de nuevos dispositivos. Para que funcione se
tendría que enchufar el dispositivo además de instalar un conversor para que pueda
trabajar de analógico a digital.
a) 1,1,2,2,1,2
b) 1,2,1,2,1,2
e) 1,2,1,1,2,2
d) 1,1,2,1,1,1
7. Dado el siguiente código, sabiendo que la clase Alumno hereda de Persona, y que Persona
dispone de un método imprimir/JNI se ejecutaJía:
d) No, porque siempre es posible instanciar un objeto sin ejecutar ningún constructor.
9. La f in alidad de los métodos de acceso (get) a campos (atributos) en una clase JAVA es:
10. En la práctica obligatoria realizada este año, para implementar que una cuenta (un objeto de
la clase Cuenta) puede tener asociadas varias trujetas (varios objetos de la clase Tarjeta) se
ha utilizado
a) Herencia.
b) Composici ón .
Para modelar este problema habrá que tener en cuenta las siguientes consideraciones. Cada central
deberá tener un nombre, o identificador, y un valor en kWh producción eléctrica. En el caso de las
centrales térmicas, deberá especificarse el tipo de combustible empoleado: petróleo, gas natural o
carbón. En el caso de las centrales nucleares deberá especificarse el tipo de material físil
(fisionable) empleado de entre los siguientes: uranio, plutonio, neptunio, americio y curio.
Cuestiones:
• Para la nota del examen, el test vale el30% y el Problema vale el 70%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para sup erarlo.
• Responda el test en la hoja de lectura óptica.
• Resuelva el Problema en el cuadernillo indicando su nombre y el Centro Asociado en el que ha
realizado la p ráctica
.
2. El software es:
3. Se tiene un sistema informático en JAVA para la gestión de una tienda, compuesto por una
clase Tienda y otra clase Cliente de la que heredan dos: ClienteHabitual y
ClienteEsporádico. Si quisiéramos disponer de una lista de Clientes, ¿dónde sería correcto
incluirla?
a) En la clase Cliente
b) En l a cl ase Tienda
e) En cualquiera de las clases que heredan de Cliente
d) No sería posible la incl usión de listas con el diseño dado.
4. Considerando la instanciación e= new Casa(), y sabiendo que la clase Casa tiene un método
definido como public int getSuperficie(), indique cuál de las siguientes sentencias devolvería
la superficie de una casa concreta:
a) Casa.getSuperficie();
b) Casa().getSuperficie();
e) getSuperficie(c);
d) c.getSuperficie();
5. Una variable local es:
public class B{
private int b;
}
public class e extends B {
private int e;
}
public class D extends B {
private int d;
}
a) Si, ya que al ser C y D clases hijas de la clase padre B por polimorfismo se puede
reconvertir un objeto de la clase D en otro de la clase C.
b) No, porque no se pueden crear dos clases hijas de una misma clase padre.
e) No, porque una clase hija no se puede reconvertir a otra clase hija por tanto hay
incompatibilidad de tipos.
d) No, porque no se ha creado previamente el objeto oC con la sentencia C oC= new C();.
Sin esta sentencia previa no se puede asignar otros objetos al objeto oC.
8. Suponiendo que "Persona" y "Alumno" son dos clases que mantienen una relación de
herencia ("Alumno" hereda de "Persona"), y que la clase "Alumno" dispone de un método
"imprime" (la clase "Persona" no) ¿Cuál es el error de compilación que presenta este
código y por qué?
a) Error en la línea 2, dado que el objeto "a" no puede ser asignado a la referencia "p" de la
clase "Persona".
b) Error en la línea 3, dado que la "p" es una referencia de Persona, que no dispone de un
método "imprime".
e) No hay ningún error
d) Error en la línea 2 dado que e l objeto "p" debe de instanciarse antes de serie asignado el
objeto "a".
}
}
10. En la práctica obligatoria realizada este año, ¿qué podríamos hacer para crear un nuevo tipo
de trujeta que nos ingrese el 2% del dinero ingresado en la cuenta, cuando el ingreso sea
mayor que 10.000€ y no nos cobre comisión cuando realicemos un reintegro, sin modificar
las clases existentes?
a) Crear una nueva clase llamada por ejemplo Tmjetalngresos, tal que la clase Tarjeta
herede de ella.
b) Crear una nueva clase llamada por ejemplo Tmjetalngresos, que herede de la clase
Tarjeta y utilice un método polimórfico pm·a sobrescribir el método encargado de
realizar los ingresos.
e) Crear una nueva clase llamada por ejemplo Trujetalngresos, que herede de la clase
Ta1jetaCredito y utilice un método polimórfico para sobrescribir sólo el método
encargado de realizar los ingresos.
d) No es posible realizar esta taJjeta sin modificar las clases existentes.
Segunda Parte: Problema
Se desea diseñar una aplicación para la gestión de una tienda on-line. Los productos de la tienda
pueden ser dispositivos electrónicos o accesorios para dichos dispositivos.
Todo producto debe tener un un nombre, un precio y un identificador. Los productos que sean del
tipo dispositivo electrónico tendrán además una fecha de fabricación, mientras que los accesorios
tendrán siempre un dispositivo asociado. Todo cliente de esta tienda on-line deberá identificarse por
medio de un nombre y apellidos, una dirección y un identificador personal. Además, a cada cliente
se le podrá añadir una o varias compras, que estarán formadas a su vez por un conjunto de
productos. Cada compra estará identificada por un valor numerico único.
Nota: El alumno debe asumir la existencia de una clase Date con la funcionalidad que se necesite.
Se pide:
l. [3 puntos]. Realizar el diseño de la aplicación, es decir, diseñar el esquema de clases con sus
correspondientes atributos y métodos, estableciendo las relaciones que sean necesarias. El
diseño deberá cumplir con las siguientes funcionalidades:
• Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
• Responda el test en la hoja de lectura óptica.
• Resuelva el Problema en el cuadernillo indicando su nombre y el Centro Asociado en el que ha
realizado la práctica.
a) Los ensambladores traducen lenguaje del tipo java y los compiladores de alto nivel.
b) No hay ninguna diferencia, los dos traducen lenguajes de alto nivel.
e) Los ensambladores traducen lenguaje de alto nivel y los compiladores de bajo nivel.
d) Los ensambladores traducen lenguaje de bajo nivel y los compiladores de alto nivel.
3. ¿Cuál es el valor que se muestra por pantalla tras la ejecución de este código?
intj =O;
switch (j) {
case 0: j+=2;
case 1: j++;
case 2: j+=2;
case 3: j++;
default:j--;
}
System.out.println(j);
a) 2
b) 1
e) 5
d) 3
4. En relación a los atributos y métodos definidos como públicos...
a) pueden ser accedidos desde otra clase, pero del mismo paquete.
b) solo los métodos pueden ser accedidos desde cualquier otra clase.
e) solo pueden ser accedidos desde otro paquete los métodos, no los atributos.
d) ambos pueden ser accedidos desde otro paquete.
6. Si creamos un objeto sin parámetros con la sentencia: A objA = new A(); siendo la clase A la
siguiente:
public class A {
int nA;
public A(int nA){
this.nA = nA;
}
}
a) 1.32
b) false
e) 'b'
d) "mundo"
8. ¿Es correcta la implementación de la siguiente clase?
public class A {
private int x;
private int y;
public A(int x){
this.x=x;
}
public A(int x, int y){
this.x=x;this.y=y;}
}
10. En la práctica obligatoria realizada este año, ¿cómo podemos modificar el límite diario que
nos fija el dinero máximo que podemos sacar con una tarjeta?
Se desea desarrollar un programa informático para una empresa editorial. Dicha editorial desea
gestionar su catálogo de publicaciones, formado por libros y números de revistas. Cada publicación
tiene un título y un código ISBN asociado, y en el caso de las revistas, además, un número de
volumen y un código ISSN que las identifica como publicaciones periódicas. Es importante
destacar que diferentes números de una revista tendrán diferente ISBN pero el mismo ISSN.
Los libros están formados por capítulos y las revistas por artículos. En ambos casos podrán haber
sido escritos por uno o varios autores, y deberán tener un título asociado y un número total de
páginas. De cada autor se debe almacenar su nombre y apellidos, así como un identificador que
permitirá a la editorial identificar todas las publicaciones de un determinado autor.
Cuestiones:
5) El método "main":
a) es llamado por el intérprete de java cuando ejecutamos un programa.
b) es llamado por todos los métodos contenidos en una clase.
e) define los atributos de una clase.
d) define las subclases de una clase.
6) Suponiendo que "Persona" y "Alumno" son dos clases que mantienen una relación de herencia
("alumno" hereda de "Persona"), y que la clase "Alumno" dispone de un método "imprime" (la
clase "Persona" no) ¿Cuál es el error de compilación que presenta este código y por qué?
a) Error en la línea 2, dado que el objeto "a" no puede ser asignado a la referencia "p" de la
clase "Persona".
b) Error en la línea 3, dado que la "p" es una referencia de Persona, que no dispone de un
método "imprime".
e) No hay ningún error
d) Error en la línea 2 dado que el objeto "p" debe de instanciarse antes de serie asignado el
objeto "a".
8) ¿Puede una lista de objetos en JAVA almacenar instancias de clases definidas posteriormente?
a) No, dado que es necesario definir la clase a la que pertenecen los objetos almacenados.
b) Sí, siempre que las clases se implementen dentro del mismo paquete.
e) No, dado que sólo se pueden almacenar atributos en una lista, no objetos.
d) Sí, siempre que las nuevas instancias pertenezcan a clases que hereden de aquellas para la
que se definió la lista.
9) Se tiene este código para un determinado método, ¿Qué salida daría por pantalla?
public void imprime(String nombre)
this.nombre=this.nombrePila;
System.out.println(nombre);
10) En la práctica obligatoria realizada este año, para conseguir que las tarjetas de crédito
funcionen como las tarjetas, excepto que nos cobran una comisión al sacar dinero, ¿qué
mecanismo hemos utilizado?
a) Ninguno, ya que no existe relación directa entre las clases.
b) Excepciones.
e) Herencia.
d) Composición.
SEGUNDA PARTE: PROBLEMA
La Empresa Nacional de Transportes (ENT) desea desarrollar un programa software que permita la
asignación de conductores a autobuses. Dicho software debe cumplir con los siguientes requisitos:
•
Producir el listado completo de autobuses de que disponen, así como la plantilla de
conductores.
•
Cada autobús debe tener asociada su matrícula y el conductor asignado.
•
Cada conductor tendrá un nombre y un identificador de la empresa.
•
Autobuses y conductores deben poder ser añadidos o eliminados del sistema.
•
El sistema debe permitir asignar un conductor de la plantilla a un autobús de la flota.
Se pide:
a) Realizar el diagrama de clases correspondiente. (2 Puntos)
b) Describir el proceso necesario para asignar un conductor a un autobús según su diseño,
detallando la creación de objetos, las llamadas a métodos y el funcionamiento interno de los
mismos. (1,5 puntos)
e) ¿Es posible según su diseño que un conductor sea asignado a más de un autobús? Explique su
respuesta de forma razonada y en caso afirmativo, indique cómo se podría conseguir que un
conductor sólo fuese asignado a un único autobús. (1,5 puntos)
FUNDAMENTOS DE INFORMÁTICA Junio 2012 - 1 IE_1s
•Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
•El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
•Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y DNI.
TIPO A
2. Tenemos varios programas ejecutando simultáneamente en una máquina. Queremos que una de
las ejecuciones tenga preferencia sobre la otra. Para ello, tendríamos que configurar:
a. el sistema operativo.
b. el compilador.
c. el ensamblador.
d. la BIOS.
4. En la práctica obligatoria, ¿qué mecanismo se utiliza para que todos los tipos de notas
escriban sus características particulares (título, comentarios, etc.) por pantalla?
a. Composición.
b. Polimorfismo.
c. Excepciones.
d. Ninguno, lo hace únicamente la clase Nota.
7. Indique cuál de las opciones siguientes se correspondería con la salida del siguiente código:
for (int i=1;i<3;i++){
for (int j=1; j<4;j++){
System.out.print(j);
}
System.out.print(i);
}
a. 11322333
b. 12112212
c. 12311232
d. 23134245
8. Si queremos añadir un nuevo dato "Fecha de término de contrato" a una clase "Empleados",
¿es necesario modificar las clases ya implementadas?
a Sí, si queremos asegurar la consistencia.
b No. Podríamos extender la clase "Empleado" con un nuevo atributo o campo.
c Sí, pero tendríamos que aplicar herencia.
d No. Siempre bastaría con modificar los parámetros de entrada.
NOTA: podemos asumir que existe una clase Fecha, cuyo constructor es
Fecha(String fecha), donde el parámetro representa la fecha como un String. Esta clase
contiene un método cuya signatura es boolean esIgual(Fecha fecha), que devuelve cierto
en caso de que las fechas sean iguales y falso en caso contrario.
Antes de comenzar a responder lea con atención todos los apartados. Se pide:
1. (4 puntos) Dibujar un esquema con las clases necesarias para realizar este gestor de pedidos,
indicando los atributos y métodos que tiene cada una de ellas (sólo indicarlos, sin escribir su
código), aplicando los principios de la programación orientada a objetos.
SOLUCIÓN
Pedido
GestorPedidos
private int id
private List<Pedido> pedidos
private Fecha fecha
private List<Producto> productos public void añadir(Pedido pedido)
public boolean eliminar(int id)
/* metodos set y get de los
public void mostrarPedidos(Fecha fecha)
atributos */
Producto «enumeration»
TipoEnvase
private TipoEnvase envase
private int cantidad 100gr
500gr
/* metodos set y get de los
1kg
atributos */
AceitunasVerdes AceitunasNegras
private boolean saborAnchoa
/* metodos set y get de los /* metodos set y get de
atributos */ los atributos */
2. (4 puntos) Supongamos ahora que la fábrica desea ampliar los productos que ofrece con uno
nuevo denominado Encurtidos, éste tiene las mismas características que el resto excepto que pueden
ser picantes o no. Explicar justificadamente qué debería realizarse para que, sin modificar el gestor,
se permita realizar pedidos que incluyan el nuevo producto ofrecido.
SOLUCIÓN
Pedido
GestorPedidos
private int id
private List<Pedido> pedidos
private Fecha fecha
private List<Producto> productos public void añadir(Pedido pedido)
public boolean eliminar(int id)
/* metodos set y get de los
public void mostrarPedidos(Fecha fecha)
atributos */
Producto «enumeration»
TipoEnvase
private TipoEnvase envase
private int cantidad 100gr
500gr
/* metodos set y get de los
1kg
atributos */
/* metodos set y get de los /* metodos set y get de * metodos set y get de
atributos */ los atributos */ los atributos */
Para solucionar este apartado utilizaremos la herencia. De este modo, crearemos una nueva clase
Encurtido que al ser otro tipo de producto y, por tanto, compartir parte de sus atributos y
funcionalidad, heredará de la propia clase Producto.
3. (2 punto) Escribir el código del método que nos permite mostrar por pantalla todos los pedidos
de una determinada fecha.
SOLUCIÓN
•Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
•El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
•Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y DNI.
TIPO A
8. Indique cuál de las opciones siguientes se correspondería con la salida del siguiente código
int
i=0;
while (i<3){
for (int j=0; j<3; j++){
System.out.print(i+j);
}
i++;
}
a. 123234345
b. 000102101
c. 001020011
d. 012123234
10. En el diseño de un programa JAVA relativo a vehículos, existen coches, motos y autobuses.
Todos ellos tienen algún atributo que no comparten con ningún otro vehículo. ¿Se puede aplicar
herencia?
a. No, dado que ninguno de los tres vehículos puede ser padre del resto.
b. No, dado que no se puede extender atributos de un vehículo a otro.
c. Sí, definiendo una clase abstracta como clase padre.
d. Sí, aplicando composición entre los vehículos.
Apellidos………………………………...……..Nombre……………………..DNI………...……
a)[4 puntos]. Realice un diagrama de clases capaz de cubrir el total de requisitos especificados en el
enunciado, indicando los atributos y métodos que tiene cada clase (sólo indicarlos, sin escribir su
código) y siguiendo los principios de la Programación Orientada a Objetos.
SOLUCIÓN
GestorInmuebles
Inmueble
private List<Inmueble> inmuebles
private int precio private List<Usuario> compradores
private int metros2 private List<Usuario> vendedores
private String caracteristicas
private Usuario vendedor public List<Inmueble> inmueblesComprador(Usuario comprador)
private List<Usuario> compradores public List<Inmueble> inmueblesVendedor(Usuario vendedor)
public List<Inmueble> inmueblesCompradores()
/* metodos set y get de los atributos */ /* necesitaría métodos para añadir inmuebles, compradores y
vendedores */
Usuario
SOLUCIÓN
En primer lugar deberíamos invocar el correspondiente método de la clase GestorInmuebles.
Dicho método recorrerá la lista de inmuebles que tiene almacenada, para lo cual utilizará una
estructura for, recorriendo la lista completamente. Dentro del bucle for, obtendremos un objeto
inmueble concreto y mediante el uso de una estructura if comprobaremos si la lista de
compradores de dicho inmueble está vacía o no. Es decir, en la condición del if invocaremos el
método getCompradores de la clase inmueble y sobre la lista de compradores que nos devuelva
invocaremos el método size() para comprobar si su tamaño es distinto de cero.
En caso afirmativo, es decir, el tamaño de la lista es distinto de cero, quiere decir que existe algún
posible comprador y por tanto ese inmueble tenemos que almacenarlo en una lista auxiliar de
inmuebles que será la que al finalizar este método devolveremos.
En otro caso, si la lista de compradores es cero, no haremos nada y seguiremos comprobando el
siguiente inmueble.
Al finalizar el bucle for, tendremos todos los inmuebles que tienen algún comprador almacenados
en una lista que habremos creado al comienzo de la ejecución y en este punto ejecutaremos el
comando return devolviendo dicha lista de inmuebles.
c)[2 puntos]. Se desea incluir un nuevo tipo de inmuebles, los chalets. La diferencia es que en este
caso se dispone de una parcela. ¿Cómo habría que modificar el diseño para cubrir este nuevo tipo de
inmueble con el menor número de cambios posibles?
SOLUCIÓN
GestorInmuebles
Inmueble
private List<Inmueble> inmuebles
private int precio private List<Usuario> compradores
private int metros2 private List<Usuario> vendedores
private String caracteristicas
private Usuario vendedor public List<Inmueble> inmueblesComprador(Usuario comprador)
private List<Usuario> compradores public List<Inmueble> inmueblesVendedor(Usuario vendedor)
public List<Inmueble> inmueblesCompradores()
/* metodos set y get de los atributos */ /* necesitaría métodos para añadir inmuebles, compradores y
vendedores */
Usuario
Chalet
private String nombre
private int parcela
private String apellidos
/* metodos set y get de los private String dni
atributos */ /* metodos set y get de los
atributos */
Para solucionar este apartado utilizaremos la herencia. De este modo, crearemos una nueva clase
Chalet que al ser otro tipo de inmueble y, por tanto, compartir parte de sus atributos y
funcionalidad, heredará de la propia clase Inmueble inicial.
FUNDAMENTOS DE INFORMÁTICA 2012 Junio 1 A MEC IE_1s
•Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
•El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
•Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y DNI.
TIPO A
4. En la práctica obligatoria, la relación entre una libreta y las notas que contiene es de:
a. herencia.
b. composición.
c. polimorfismo.
d. sobrecarga.
public class B {
private int total;
8. Indique cuál de las opciones siguientes se correspondería con la salida del siguiente código:
int j=0;
for (int i=3;i<5;i++){
do{
System.out.print(i+j);
j++;
}while (j<3);
}
a. 345
b. 357
c. 3457
d. 345456
a. El polimorfismo en Java permite manipular un objeto como si éste fuera de una clase más
general.
b. El polimorfismo en Java permite manipular un objeto como si éste fuera de una clase más
específica.
c. La composicion de objetos en Java permite manipular un objeto como si éste fuera de una
clase más general.
d. La composicion de objetos en Java permite manipular un objeto como si éste fuera de una
clase más específica.
Apellidos………………………………...……..Nombre……………………..DNI………...……
1. Un cliente ha de poder reservar una habitación, momento en el cual se introducen sus datos
en el sistema.
2. Un Cliente tiene asociados su nombre, apellidos, DNI y número de habitación. En nuestro
sistema un Cliente sólo estará asociado a una habitación.
3. El Hotel tendrá diversos terminales de venta (llamados TPV). El sistema gestor debe
funcionar independientemente del número de TPVs que se utilicen.
4. Cada uno de los TPVs deberá almacenar una serie de gastos de los clientes.
5. Un Gasto asocia una cantidad de dinero con un Cliente del Hotel.
6. El Gestor debe poder acceder a todos los gastos del Cliente y presentar la cantidad total
adeudada por el cliente.
Lea atentamente el ejercicio completo antes de comenzar a contestar las preguntas. Se pide:
a) (4 Puntos) Realice el esquema de clases correspondiente al sistema que se desea implementar.
Indique claramente relaciones, atributos y métodos en cada clase.
SOLUCIÓN
GestorHotel
TPV
private List<TPV> tpvs
private String zona private boolean[] habitaciones
private List<Gasto> gastos private List<Cliente> clientes
public void añadirGasto(Gasto g) public GestorHotel(int habitaciones)
/* metodos set y get de los atributos */ public int gastosCliente(Cliente c)
public void imprimirEstadoHabitaciones()
Cliente
Gasto
private String nombre
private Cliente cliente private String apellidos
private int importe private String dni
private int habitacion
/* metodos set y get de los
atributos */ /* metodos set y get de los
atributos */
b) (3 Puntos) Describa, sin implementar el código, pero indicando las llamadas a métodos en cada
clase y su funcionalidad (incluyendo las estructuras de control necesarias, iteraciones sobre listas,
etc.), cómo se calcularían los gastos de un cliente cuando éste deja el Hotel. (1,5 puntos)
SOLUCIÓN
Para calcular los gastos de un cliente lo primero que debemos hacer es invocar el método
correspondiente de la clase GestorHotel (gastosCliente(Cliente c)).
En el cuerpo de este método recorreremos la lista de TPVs que tiene el hotel, para ello utilizaremos
un bucle for, ya que deseamos recorrer la lista entera.
Dentro del bucle debemos recorrer la lista de gastos que tiene almacenada cada TPV, para lo cual
utilizaremos otro bucle for anidado en el bucle anterior. De esta manera, comprobaremos
mediante el uso de una estructura if, si existe algún gasto en dicho TPV realizado por el cliente que
estamos comprobando.
En caso afirmativo, si en la lista de gastos existe un gasto de este cliente, obtendremos el importe
del gasto y lo almacenaremos en una variable auxiliar que nos permitirá guardar el total de todos
los gastos realizados por el cliente en todos los TPVs.
Al finalizar los dos bucles, que nos permiten recorrer los TPVs y los gastos de un TPV,
devolveremos el gasto total almacenado en la variable auxiliar, mediante la instrucción return.
c) (3 Puntos) Describa, sin implementar el código, pero indicando las llamadas a métodos en cada
clase y su funcionalidad (incluyendo las estructuras de control necesarias, iteraciones sobre listas,
etc.), cómo se podría obtener un listado de las habitaciones libres y ocupadas del Hotel. (1,5
puntos)
SOLUCIÓN
Esta funcionalidad se llevaría a cabo en el método imprimirEstadoHabitaciones() de la clase
GestorHotel.
Como podemos observer en la solución propuesta, hemos modelado la lista de habitaciones como
un array de boolean, cuyo tamaño será el número de habitaciones del hotel, que como podemos
observar se indica como parámetro del constructor de la propia clase.
Esta solución nos permite almacenar mediante un valor booleano el estado de cada habitación, por
ejemplo asignando un true en las habitaciones que están ocupadas. De esta forma, para obtener el
estado de las habitaciones, lo que deberíamos hacer es, primero recorrer mediante un bucle for
todo el array de habitaciones y, segundo, acceder al valor de cada una de las posiciones de dicho
array, que corresponderá con el número de habitación y en caso de tener almacenado el valor true
mostraremos por pantalla que la habitación está ocupada, o libre en caso de tener asignado en
dicha posición el valor false.
FUNDAMENTOS DE INFORMÁTICA Junio 2012 2 A MEC Elec_sem1_A
•Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
•El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
•Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y DNI.
TIPO A
1. ¿Qué puerto permite transferir datos más rápidamente de un dispositivo externo al disco duro?
a. Puerto paralelo.
b. Puerto FireWire 800.
c. Puerto USB 2.
d. Puerto Serie.
2. Un programa tiene que realizar cálculos sobre una matriz de n*n números almacenados en el
disco duro. Vemos que se ralentiza cuando n es demasiado grande. Para solucionarlo podríamos:
a. aumentar la memoria del disco duro.
b. aumentar la memoria RAM.
c. aumentar la memoria ROM.
d. aumentar la memoria de la BIOS.
7. Indica, a partir de la siguiente declaración, la expresión correcta en Java (asumiendo que existe
un método public int getKm() en la clase:
a. Coche.getKm();
b. miCoche.getKm();
c. getKm(miCoche);
d. Coche.miCoche.getKm();
a. 11212
b. 12112
c. 11122
d. 11212
10. Teniendo en cuenta el siguiente código, y dada la clase Hombre que extiende la clase Persona a
través de herencia, indique cuál de las siguientes afirmaciones es correcta.
a. Desde la clase Hombre se puede acceder al atributo edad para mostrar su valor.
b. Desde la clase Hombre se puede modificar el valor del atributo edad.
c. Desde la clase Hombre no se puede acceder al atributo edad.
d. No se puede extender la clase Persona porque no tiene constructor.
Apellidos………………………………...……..Nombre……………………..DNI………...……
Vuelo
private int codigo
private String origen
private String destino
private Fecha fechaLlegada
public Vuelo(int codigo)
/* metodos set y get de los
atributos */
Comercial Privado
c) (4 puntos) Se desea ahorrar gastos, para lo que se ha decidido que los vuelos militares también
puedan aterrizar en los aeropuertos públicos. Estos vuelos tienen las mismas características que el
resto de vuelos, excepto que requieren el país al que pertenecen. Explicar justificadamente cómo
podría el sistema gestor asignar los vuelos militares a una pista de aterrizaje de un aeropuerto, sin
modificar las clases aeropuerto y pista de aterrizaje.
SOLUCIÓN
Aeropuerto
PistaAterrizaje
private String nombre
private int id
private List<PistaAterrizaje> pistas
private List<Vuelo> vuelos
public Aeropuerto(String nombre)
public PistaAterrizaje(int id)
public void añadir(PistaAterrizaje pista)
public boolean asignar(Vuelo vuelo)
public boolean asignarPista(vuelo Vuelo, int pista)
/* metodos set y get de los atributos */
public void mostrarVuelos(int pista, Fecha fecha)
Vuelo
• Para calcular la nota del examen, el test supone el 30% y el problema el 70%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
• Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y DNI.
a. La memoria RAM.
b. La memoria ROM.
c. La memoria SRAM.
d. La memoria DRAM.
2) ¿Qué es un hub?
int c=0;
for (int i=1;i<4;i++){
c=c+i;
}
System.out.println(c);
a. 3
b. 4
c. 5
d. 6
a. Sí, usando la notación de punto sobre el nombre de la clase a la que pertenece el objeto.
b. Sí, usando la notación de punto sobre el nombre del objeto.
c. No, desde un método sólo se puede llamar a otros métodos del propio objeto.
d. No, desde un método nunca se puede llamar a otro método.
Segunda Parte: Problema
Una empresa que vende piscinas quiere desarrollar una aplicación informática para la gestión de sus
ventas y beneficios. Esta empresa vende dos tipos de piscinas: de obra y autoportantes. En el primer
caso la depuradora podrá ser de cloración salina o convencional (cloro), y empleará siempre filtros
de arena. En el caso de las autoportantes, la depuración siempre será por medio de cloro y, en
este caso, podrán emplearse filtros de arena o de papel. Todas las piscinas, independientemente del
tipo que sean, tienen una capacidad y un precio de compra. La empresa vende las piscinas
añadiendo el porcentaje siguiente al precio de compra inicial:
Se pide:
SOLUCIÓN
Piscina GestorPiscinas
private int capacidad private List<Piscina> piscinasVendidas
private int precioCompra private List<PAutoportantes> piscinasAutoportantesVendidas
private static final int porcentaje = 25
protected TDepuracion depuracion public int totalPiscinasVendidas()
public void piscinasAutoportantesVendidasFiltroArena()
/* metodos set y get de los atributos */ public int calcularIngresos()
public int precioVenta() public int calcularBeneficios()
«enumeration»
TDepuracion
salina
cloro
PAutoportante
«enumeration»
TFiltro
arena
papel
b) (3 puntos) Escriba cómo se implementaría un método capaz de devolver el total de beneficios
que ha obtenido la empresa por la venta de piscinas autoportantes.
SOLUCIÓN
public int beneficiosPisicinasAutoportantes() {
int beneficios = 0;
for (PAutoportantes p : this.piscinasAutoportantesVendidas) {
beneficios += (p.getPrecioCompra() * (p.getPorcentaje() / 100));
}
return beneficios;
}
SOLUCIÓN
Piscina GestorPiscinas
private int capacidad private List<Piscina> piscinasVendidas
private int precioCompra private List<PAutoportantes> piscinasAutoportantesVendidas
private static final int porcentaje = 25
protected TDepuracion depuracion public int totalPiscinasVendidas()
public void piscinasAutoportantesVendidasFiltroArena()
/* metodos set y get de los atributos */ public int calcularIngresos()
public int precioVenta() public int calcularBeneficios()
«enumeration»
TDepuracion
salina
cloro
PAutoportante
private static final int porcentaje = 10
protected static final TDepuracion depuracion = cloro
protected TFiltro filtro
/* metodos set y get de los atributos */
public int precioVenta()
«enumeration»
TFiltro
PAutoportanteArena arena
papel
private static final int percentaje = 15
protected static final TFiltro filtro = arena
/* metodos set y get de los atributos */
public int precioVenta()
Para abordar los nuevos requisitos utilizaremos el mecanismo de herencia. Para ello crearemos
una nueva clase que representará a las piscinas autoportantes con filtro de arena que heredará de
la propia clase piscina autoportante (PAutoportante). En este caso redefiniremos su atributo filtro
para asignarle el valor arena, igualmente que el porcentaje de beneficios.
FUNDAMENTOS DE INFORMÁTICA spet12-M2
1) ¿Con cuál de las siguientes memorias NO se pierde la información una vez se apaga un
ordenador?
a. Memoria caché.
b. Memoria ROM.
c. Memoria virtual.
d. Memoria RAM.
…
int n = 1;
for (int i=0; i<4; i++) {
System.out.print(i+n);
n++;
}
a. 0135
b. 1357
c. 1235
d. 1347
6) En la práctica obligatoria, el polimorfismo aparece en:
a. el método que permite crear una nueva Libreta.
b. el método que añade una Libreta al GestorLibretas.
c. el método que establece el ISBN de un Libro.
d. el método que escribe por pantalla una Nota.
8) Sin más información a priori, ¿cuál sería la forma más apropiada de modelar los méritos
académicos en un currículum?
a. Por composición, definiendo un campo meritosAcademicos tipo Lista en la clase
Curriculum.
b. Por herencia, donde la clase MeritosAcademicos hereda de Curriculum.
c. Por composición, mediante un campo meritosAcademicos tipo Array de tamaño N.
d. Con un método curriculum en la clase MeritosAcademicos.
9) Dos métodos necesarios en una clase tienen parte de su código duplicado. Según la metodología
de orientación a objetos, lo más apropiado en este caso sería:
a. Eliminar los métodos y crear uno sólo que realice las funciones de los dos.
b. Añadir nuevos métodos que realicen las funciones solapadas.
c. Crear una clase hija para cada método.
d. Definir los métodos como privados.
public class A{
public int mult(int a,int b){
return a*b
}
}
public class B extends A {
public int mult(int a, int b, int c){
return mult(a,b)*c;
}
}
¿Qué devolvería el siguiente código?
B b = new B();
System.out.println(b.mult(2,2,3));
Se desea implementar un simulador de una de una red P2P (peer-to-peer) para compartir ficheros.
Estas redes se caracterizan por estar compuestas por un conjunto de nodos, definidos por un
identificador formado por un número entero. Cada nodo, a su vez, dispone de un conjunto de
ficheros que desea compartir. Cada uno de los ficheros se identifica mediante un nombre y un
tamaño (expresado en megas). Cada uno de los nodos tiene una lista de vecinos, que almacena los
nodos a los que puede realizar una petición para descargarse un fichero. Teniendo en cuenta estos
requisitos, se desea que el simulador sea capaz de:
Se pide:
a) (4 puntos) Dibujar un esquema con las clases necesarias para realizar el simulador,
indicando los atributos y métodos que tiene cada una de ellas (sólo indicarlos, sin escribir su
código), aplicando los principios de la programación orientada a objetos.
SOLUCIÓN
Nodo
Simulador
private int id
private List<Nodo> nodos
private List<Fichero> ficheros
private List<Nodo> vecinos public void añadirNodo(Nodo n)
public boolean eliminarNodo(int id)
/* metodos set y get de los
public void mostrarNodos()
atributos */
Fichero
private String nombre
private int tamaño
/* metodos set y get de
los atributos */
b) (2 punto) Escribir el código del método que nos permite mostrar por pantalla el
identificador de los nodos que hay en el simulador.
SOLUCIÓN
SOLUCIÓN
Nodo
Simulador
private int id
private List<Nodo> nodos
private List<Fichero> ficheros
private List<Nodo> vecinos public void añadirNodo(Nodo n)
public boolean eliminarNodo(int id)
public void enviar(Nodo vecino, Mensaje msg)
public void mostrarNodos()
/* metodos set y get de los atributos */
envia «abstract»
Mensaje
Fichero
private int id
private String nombre private int emisor
private int tamaño private int receptor
contiene
Piece Request
• Para calcular la nota del examen, el test supone el 30% y el Problema vale el 70%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
• Resuelva el Problema en una hoja aparte (máximo 2 caras), indicando su nombre y DNI.
int resultado = O;
int suma = 1;
while (suma <= 5) {
resultado+= suma;
System.out.print (resultado);
a. 1234
b. No imprimiría nada
c. o
d. 5
2) En la práctica obligatoria:
¿Cuál sería la forma correcta de acceder al año de fabricación de un objeto a de la clase Coche
desde otra clase?
a. int X = Coche.getAgnoFabricacion(a);
b. int x = a.getAgnoFabricacion();
C. int x = Coche.agnoFabricacion;
d. int x = a.agnoFabricacion;
4) Si pepe es un objeto de la clase Persona, y Persona tiene el atributo o campo edad, ¿podría
ejecutarse la siguiente sentencia JAVA?
System.out.println(pepe.edad);
Indique cuál de las siguientes afirmaciones es correcta sobre estas definiciones de clases:
a. Las definiciones no son correctas ya que no se puede acceder a un campo declarado como
private desde una subclase.
b. Las definiciones no son correctas ya que no se puede declarar un método como
protected en una superclase.
c. Al crear un objeto de la clase Moto tendrá 2 ruedas.
d. Para acceder a un campo de una superclase, definido como private, no es necesaria la
palabra super.
6) Se dispone únicamente del codigo intermedio y se desea añadir un campo (atributo) de clase al
sistema ¿Es esto posible?
a. La transmisión de datos.
b. La compilación.
c. El cómputo.
d. El almacenamiento.
8) ¿Qué es la memoria virtual?
10) Indica cuál de las siguientes afirmaciones es correcta. Un sistema operativo multitarea es un
sistema que:
Se desea implementar un sistema de votaciones. Existe en cada votación una única lista de votantes
y una única lista de candidatos identificados por su nombre. Cada votante tiene asignada una
papeleta con N casillas donde puede introducir por orden de prioridad hasta N candidatos elegidos
de la lista de candidatos.
Se pide:
a) (4 puntos) Dibujar el esquema de clases para este problema indicando clases, atributos o
campos, métodos y relaciones.
b) (3 puntos) Asumiendo que ya está implementado el sistema anterior, escribir las llamadas
necesanas para:
I) Crear una votación con papeletas de 2 casillas.
2) Introducir tres candidatos "CI", "C2", "C3" y tres votantes de nombres "VI", "V2" y
"V3".
3) Añadir el candidato "CI" a las papeletas de "VI" y "V2" y el candidato "C2" a la
papeleta de "V3".
4) Calcular el ganador o ganadores.
a. 101112
b. 202122
c. 021222
d. 021022
6. Si tenemos una clase A con un método m1, ¿cómo debemos definirlo para
que éste sólo pueda ser invocado desde la misma clase A y desde las
subclases de la misma?
Por otro lado, cada producto está identificado por un número. Además, para el
caso particular de las impresiones, se desea almacenar si ésta es a color, el
ancho y el largo (en cm.) y la lista de fotos que se quieren imprimir. En cuanto a
las cámaras, están identificadas por la marca y el modelo.
NOTA: Para resolver el problema se hará uso de una clase denominada Foto,
definida por un constructor Foto(String fichero) y un método print()
que muestra los datos de una foto.
Foto
public Foto(String fichero)
public void print()
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
«abstract»
Producto
protected int id
ImpresionFotos Camara
private boolean color private String marca
Foto private int ancho private String modelo
private int largo
public Foto(String fichero) private List<Foto> fotos public void print()
public void print() /* metodos set y get de
public void print() los atributos */
/* metodos set y get de los
atributos */
2. (4 puntos) Escribir el código necesario (en las clases que sea necesario)
para mostrar por pantalla todos los pedidos realizados por un cliente. De
manera que se muestren siguiendo el siguiente formato (los datos de las
fotos de una solicitud de impresión se mostrarán utilizando el método
print() de la clase Foto):
Cliente: “Pepito”
Pedidos:
Fecha: “19/03/2013”
Tarjeta: 12345678910
Productos:
Id: 13
Impresión de fotos
Color: si
Ancho: 13 cm
Largo: 18 cm
Fotos: Foto1.jpg, Foto2.jpg
Id: 14
Cámara fotográfica
Marca: Nikon
Modelo: d5100
SOLUCIÓN
GestorPedidos:
public void mostrarPedidos(String cliente) {
System.out.println("Cliente: " + cliente);
for (Pedido p : this.pedidos) {
if (p.getCliente().equals(cliente)) {
p.print();
}
}
}
Pedido:
public void print() {
System.out.println("Fecha: " + this.fecha);
System.out.println("Tarjeta: " + this.tarjeta);
System.out.println("Productos:");
for (Producto p : this.productos) {
p.print();
}
}
Producto:
public abstract void print();
ImpresiónFotos:
/*
* (non-Javadoc)
* @see Producto#print()
*/
@Override
public void print() {
System.out.println("Id: " + this.id);
System.out.println("Revelado de fotos");
System.out.println("Color: " + this.color);
System.out.println("Ancho: " + this.ancho);
System.out.println("Ancho: " + this.largo);
System.out.print("Fotos: ");
for (Foto f : this.fotos) {
f.print();
System.out.print(" ");
}
}
Cámara:
/*
* (non-Javadoc)
* @see Producto#print()
*/
@Override
public void print() {
System.out.println("Id: " + this.id);
System.out.println("Camara fotogr√°fica");
System.out.println("Marca: " + this.marca);
System.out.println("Modelo: " + this.modelo);
}
3. (1 punto) Después de tener en funcionamiento la aplicación, se ha
detectado una importante limitación. Con los requisitos especificados no se
pueden distinguir entre potenciales pedidos realizados por el mismo cliente,
con los mismos productos, en la misma fecha. ¿Qué modificaciones se
podrían realizar para distinguir estos casos?
SOLUCIÓN
Para realizar la solución más sencilla bastaría con añadir un nuevo atributo
a la clase Pedido, que permita identificar a cada uno de los pedidos. En
este caso se ha añadido un atributo denominado id de tipo entero.
• Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para
superarlo.
• Resuelva el problema en una hoja aparte (máximo 2 caras), indicando su
nombre y DNI.
-XQLR- 2 TIPO A
Primera Parte: Test
2. El software de sistema:
int[] a = { 1, 2, 3, 4 };
for (int i = 1; i < a.length; i++) {
a[i - 1] = a[i];
}
System.out.print(a[0]);
a. 1,2
b. 2
c. 1
d. 3
a. El tipo de error.
b. La zona del código donde se produjo el error.
c. En su caso, el nombre del fichero de lectura que ha producido el
error.
d. Los valores de los campos de todos los objetos instanciados en ese
momento.
Por otro lado, una opinión estará definida por la fecha en la que se realizó, el
usuario que la realizó, el objeto sobre el que se está opinando, una valoración
representada por un número entero y un texto que almacena la justificación de
la propia opinión.
Antes de comenzar a responder lea con atención todos los apartados. Se pide:
SOLUCIÓN
1.
y
2.
SistemaOpinion
Usuario private List<Usuario> usuarios
private List<Objetos> objectos
private String nombre
private List<Opinion> opiniones
private List<Opinion> opiniones
public void añadir(Usuario usuario)
public void añadir(Opinion op)
public void añadir(Objecto obj)
/* metodos set y get de los
public void añadir(Opinion op)
atributos */
public doble getValoracionGlobal(Objecto obj)
public List<Objeto> getRanking()
Opinion
Libro
SOLUCIÓN
TIPO A
a. Su número de divisiones.
b. Su tipo de troquelado.
c. Su tipo de tirada.
d. Su tipo de impresión.
a. 000111222
b. 001122
c. 012012012
d. 010203101112202122
a. Todos los objetos de una clase tendrán los mismos atributos pero de
distinto tipo de datos.
b. Todos los objetos de una clase pueden tener distintos atributos pero
iguales métodos.
c. Todos los objetos de una clase tendrán los mismos atributos y métodos.
d. Todos los objetos de una clase tendrán los mismos métodos y los
mismos valores en sus atributos.
this.nombre "Pepe";
=
Una nueva cadena de televisión de pago quiere una aplicación informática para
la gestión de su negocio y, para ello, nos encarga desarrollar un software capaz
de cubrir las siguientes especificaciones. La cadena ofrece canales que
identificará por un nombre y por una frecuencia de emisión. Éstos deberán
poderse agrupar en paquetes prefijados para poder ofrecerlos después a sus
usuarios. De los usuarios se quiere almacenar su nombre y apellidos, su NIF y
su cuenta corriente para poder realizar los cobros, así como los paquetes que
el usuario quiera contratar.
•
Dar de alta y de baja a usuarios en el sistema.
•
Dar de alta y de baja canales en el sistema.
•
Dar de alta y de baja paquetes, tanto en el sistema como en el contrato
de cada usuario.
•
Dar de alta y baja a canales dentro de cada paquete.
•
Generar una factura a cada cliente en función de los paquetes que tiene
contratados.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
TIPOB
a. 001122
b. 010203101112202122
c. 000111222
d. 012012012
6. En la práctica del presente curso, una tirada con troquel tiene de manera
adicional, el siguiente campo:
a. Su tipo de troquelado.
b. Su tipo de impresión.
c. Su número de divisiones.
d. Su tipo de tirada.
7. Indique cuál de las siguientes afirmaciones es falsa:
a. Todos los objetos de una clase pueden tener distintos atributos pero
iguales métodos.
b. Todos los objetos de una clase tendrán los mismos métodos y los
mismos valores en sus atributos.
c. Todos los objetos de una clase tendrán los mismos atributos pero de
distinto tipo de datos.
d. Todos los objetos de una clase tendrán los mismos atributos y métodos.
this.nombre "Pepe";
=
Una nueva cadena de televisión de pago quiere una aplicación informática para
la gestión de su negocio y, para ello, nos encarga desarrollar un software capaz
de cubrir las siguientes especificaciones. La cadena ofrece canales que
identificará por un nombre y por una frecuencia de emisión. Éstos deberán
poderse agrupar en paquetes prefijados para poder ofrecerlos después a sus
usuarios. De los usuarios se quiere almacenar su nombre y apellidos, su NIF y
su cuenta corriente para poder realizar los cobros, así como los paquetes que
el usuario quiera contratar.
•
Dar de alta y de baja a usuarios en el sistema.
•
Dar de alta y de baja canales en el sistema.
•
Dar de alta y de baja paquetes, tanto en el sistema como en el contrato
de cada usuario.
•
Dar de alta y baja a canales dentro de cada paquete.
•
Generar una factura a cada cliente en función de los paquetes que tiene
contratados.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
TIPO A
Primera Parte: Test
1. ¿Qué es la placa base o madre de un computador?
a. 6
b. 7
c. 8
d. Nada, porque se ejecutaría un bucle infinito.
a. Siempre es necesario.
b. No, porque hay una relación de herencia entre progenitores e
hijos.
c. No es necesario.
d. Sólo cuando no haya un campo identificador único del progenitor.
public class A {
public void escribir(String a) {
System.out.print(a);
}
}
Reclamacion GestorReclamaciones
Cliente
Sugerencia
private String DNI
private String Departamento
private String nombre
/* metodos set y get de los private String apellidos
atributos */ private String email
/* metodos set y get de
los atributos */
SOLUCIÓN
SOLUCIÓN
TI POB
Primera Parte: Test
a. 109 Bytes
b. 9*109 Bytes
c. 900 MegaBytes
d. 9*109 Kbytes
public class A {
public voi d escribir(String a) {
System.out.print(a);
A a = new B();
a.escribir("Hola");
a. Hola
b. No devolvería nada puesto que se produciría un error ya que no
se pueden sumar dos Strings.
c. El valor es: Hola
d. No devolvería nada puesto que no podemos asignar un objeto de
clase A en una variable del tipo B.
8. Indique qué se imprimiría por pantalla tras la ejecución del siguiente
código:
a. 7
b. Nada, porque se ejecutaría un bucle infinito.
c. 6
d. 8
3. (2 Puntos) Ampliar el diseño del primer apartado, sin modificar las clases
ya implementadas, para permitir que el sistema pueda gestionar también
sugerencias. Las sugerencias se caracterizan por estar puestas por un
cliente en relación a un envío concreto, tener un número identificativo, el
texto de la sugerencia y un destinatario donde se introduce el
departamento al que van referidas. Dichas sugerencias podrán ser
contestadas.
•
Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
•
El test es eliminatorio y se necesitan 7 respuestas correctas para
superarlo.
•
Resuelva el problema en una hoja aparte (máximo 2 caras), indicando su
nombre y DN l.
1. Un sistema de ficheros:
a. La memoria RAM.
b. La memoria ROM.
c. El disco duro.
d. La memoria virtual
int[] a = { 1, 2, 3, 4 };
int resultado = 1;
for (int i = 1; i < a.length; i++) {
resultado = resultado + a[i];
}
System.out.print(resultado);
a. 11
b. 10
c. 1
d. 7
5. Indica cuál de las siguientes afirmaciones es falsa:
a. Arraylist unidimensional.
b. Arraylist bidimensional.
c. Array unidimensional.
d. Array bidimensional.
1 O. Una de las posibles funciones del manejo de excepciones en Java es:
a. Operar sobre enteros dado que son los únicos campos que no son
objetos.
b. Detectar errores en el proceso de compilación.
c. Crear colecciones de instancias de diferente clase.
d. Evitar que un error de lectura del disco duro detenga un proceso.
Apellidos......................................Nombre..................... DNI ...................
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
5- Para asegurar la consistencia entre dos campos de una clase (por ejemplo,
tieneCarnetConducir solo puede ser TRUE si edad>18) aunque ésta sea
reutilizada por otro desarrollador en otro sistema podemos:
a. Declarar los campos como estáticos.
b. Declarar los campos como privados y modificarlos desde los métodos de
la clase.
c. Declarar los campos como públicos, pero declarar como privados los
métodos que los modifican.
d. No es posible asegurar la consistencia entre dos campos.
int[] a = { 1, 2, 3,4,5,6,7};
int resultado = O;
int i=4;
while (resultado < 1 O) {
resultado = resultado + a[i];
i=i-1;
}
System.out.print(resultado);
a. Ninguno
b. 3
c. 4
d. todos
8- Siendo "Vehículo" y "Coche" dos clases que tienen una relación de herencia
padre-hijo. ¿Es correcto el siguiente código?
a. Sí, es correcto.
b. No es correcto, deberíamos modificar las siguientes líneas:
v = new Coche(); /* Línea 3 */
e = (Coche) v; /* Línea 4 */
c. No es correcto, deberíamos modificar la línea 3 por:
v = new Coche(); /* Línea 3 */
d. No es correcto, deberíamos modificar la línea 4 por:
e = new v; /* Línea 4 */
9-Si se tiene una clase con un campo de tipo lista se dice que:
a) Existe una relación de herencia entre clases.
b) Existe una relación de composición entre clases.
e) Existe polimorfismo entre clases.
d) Se está dando un mecanismo de sobrecarga entre clases.
El sistema debe permitir crear y añadir pedidos del restaurante, así como
luego consultar cuál es el pedido completo de una mesa particular. Se
deberá tener en cuenta que los comensales de una mesa pueden realizar
varios pedidos y que, una vez pagada la cuenta, los pedidos de esa
mesa serán eliminados.
int resultado = O;
int total = 1;
while (total < 3 ) {
resultado = resultado + total;
System.out.println(resultado);
a. O
b. 2
c. 1
d. No imprimiría nada
Se pide
(4 puntos) Dibujar un esquema con las clases necesarias para realizar el
diseño del sistema, indicando los atributos y métodos que tiene cada una de
ellas (sólo indicarlos, sin escribir su código), aplicando los principios de la
programación orientada a objetos.
(1 puntos) Escribir el código necesario para dar de alta un cliente llamado
"Federico García" y de número 63862382. Generar una nueva cita de
limpieza bucal para el día 4 de julio del 2014 a las 13:00.
(3 puntos) Implementar el o los métodos responsables de la confirmación
de que un cliente que se presenta tiene cita y actualizar su historial una vez
atendido.
(2 punto) Después de tener en funcionamiento la aplicación durante un
tiempo, se decide extender el sistema para mostrar la duración estimada de
cada cita. Ésta depende de los servicios a realizar. Indique cómo se incluiría
esta funcionalidad sin modificar el código ya implementado.
FUNDAMENTOS DE INFORMÁTICA
·Para la nota del examen, el test vale el 30% y el problema vale el 70%.
·El test es eliminatorio y se necesitan 7 respuestas correctas para superarlo.
·Resuelva el problema en una hoja aparte (máximo 2 caras), indicando su
nombre y DN l.
a. 1
b. 2
c. 3
d. 4
8. Si queremos definir un método de una clase para que éste no devuelva ningún
resultado, ¿qué utilizaremos?
a. En Java no es posible definir métodos que no devuelvan ningún resultado.
b. Utilizaremos la palabra reservada void.
c. Utilizaremos la palabra reservada static.
d. En Java sólo los constructores pueden no devolver ningún resultado.
a. 7
b. 2*5
c. Un error de compilación.
d. 10
a. Tiene el mismo valor en todos los objetos de la clase donde está definida.
b. Puede contener objetos del tipo declarado o de cualquier subtipo de éste.
c. No devuelve ningún resultado.
d. Sólo puede ser accedida por las clases del mismo paquete en el que esté
definida.
Una empresa de robots cuentacuentos necesita un software para que los niños
puedan pedir a sus robots un cuento. Los robots están conectados a un sistema
central al que le solicitan el texto del cuento dado su título. El sistema informático
debe de tener un registro de todos los cuentos, de los que almacenará el título y
el texto correspondiente. El sistema debe gestionar todos los robots vendidos a
los que puede atender. Un robot se caracteriza por su IP, modelo y zona de venta.
Además, para el pago de derechos de autor, se desea mantener un registro de
todos los robots a los que se ha transmitido cada cuento.
a) El código fuente.
b) El código objeto.
e) El código ejecutable.
d) El código intermedio
a) Al final sólo queda un objeto accesible de tipo Ordenador con precio 900
b) Al final sólo queda un objeto accesible de tipo Ordenador con precio 1100
e) Al final tanto el objeto sobremesa como el objeto portátil apuntan a null
d) Al final hay dos objetos accesibles de tipo Ordenador, uno con precio 900 y
otro con precio 1100
5. Indica cuál de las siguientes afirmaciones sobre modificadores de acceso a
métodos es correcta:
a) Un método private solo puede ser accedido desde la misma clase u otra
clase dentro del mismo paquete.
b) Un método protected solo puede ser accedido desde la misma clase u otra
clase dentro del mismo paquete.
e) Un método private solo puede ser accedido desde la misma clase.
d) Un método protected solo puede ser accedido desde la misma clase.
int x;
x=1;
do{
x = x + 1;
}while (x <= 5);
if (x == 5) {
X= X+ 2;
}
System.out.println(x);
a) 5
b) 6
e) 4
d) 7
�
Cuando una persona llega al salón del Ayuntamiento para votar,
lo primero que hace es identificarse, proporcionando su nombre y
DNI. Estos datos son necesarios para comprobar que en dicha
jornada electoral este votante puede votar y aún no lo ha hecho. En
caso de que el votante ya hubiera ejercido su derecho a voto no se le
permitirá volver a hacerlo.
•
Una vez realizadas las comprobaciones anteriores, el votante
accede a un habitáculo en el que se encuentra un ordenador con
nuestro sistema informático, que le permitirá elegir su opción política
entre las diferentes candidaturas presentadas o votar en blanco. El
sistema registra la hora en la que se ha votado y la opción elegida, de
modo que en un futuro se pudieran realizar estudios estadísticos a
partir de estos datos.
.. Al final de la jornada, cuando todos los electores hayan votado
o se haya llegado a la hora de cierre del colegio electoral, se hace un
recuento automático de los votos, de tal forma que es posible ver la
cantidad de votos que ha recibido cada opción y cuál ha sido la opción
ganadora.
Se pide:
RECUENTO FINAL:
1. La BIOS de un computador:
2. La dirección IP de un ordenador:
public class e {
private int n;
public e (int _n) {
this.n n;
=
}
}
¿Qué pasaría si realizamos la siguiente llamada: e e = new e ()?
a) Que éste sólo puede ser invocado desde la propia clase donde está
definido.
b) Que éste sólo puede ser invocado desde la propia clase donde está
definido y todas sus subclases.
e) Daría un error de compilación, ya que los métodos no pueden ser
definidos como private.
d) Que dicho método debería ser sobre-escrito obligatoriamente en todas
las subclases.
int total = 1;
do {
total = total + (total * 2);
System.out.print(total);
}
while (total < 8);
a) 139
b) 13
e) 39
d) No imprimiría nada
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
a) Administrador de memoria.
b) El compilador.
e) Sistema de entrada/salida.
d) El sistema operativo
a) No, dado que se trata de una acción, luego debe representarse como un
método.
b) Sí. Podría tener como atributos el comprador y vendedor.
e) Sí, pero no podría tener atributos, sólo métodos dado que se trata de una
acción.
d) No, dado que es una relación entre comprador y vendedor. No un objeto.
a) 012012012
b) 001
e) 001012
d) 00100 2
8
De los profesores: nombre y asignaturas que imparte.
•
De los tutores: nombre, DNI, Centro Asociado al que pertenece y
asignaturas que imparte.
•
De los Centros Asociados: nombre, tutores que imparten ciase en
dicho centro, asignaturas impartidas y alumnos matriculados.
8
De los alumnos: nombre, DNI y asignaturas en las que está
matriculado.
e De cada asignatura: nombre, código único, Equipo Docente
(profesores que imparten dicha asignatura).
Se pide:
3. Linux NO es:
a. Su cardinalidad y su tipo.
b. Sus atributos y sus métodos.
c. La forma en que establece comunicación e intercambia mensajes.
d. Su interfaz y los eventos asociados.
a. O
b. 8
c. 18
d. 20
Entrada e ; 1* Línea 1 *1
EntradaDíaEspectador d ; 1* Línea 2 *1
e = new EntradaDíaEspectador ( ) ; 1* Línea 3 *1
d = e; 1* Línea 4 *1
a. Sí, es correcto.
b. No es correcto, deberíamos eliminar o comentar la línea 4.
c. No es correcto, deberíamos eliminar o comentar la línea 3.
d. No es correcto, deberíamos modificar la línea 3 por:
d = new EntradaDíaEspectador ( ) ; / * Línea 3 * 1
4. Dos objetos de la misma clase tienen los mismos atributos siempre que:
a. 012
b. 222
c. 20 21 2 2
d. 031323
a. Se generará una clase hija de las clases con las que tiene relación de
composición.
b. Heredará los atributos y por tanto también las relaciones de composición.
c. Dará error de compilación.
d. Sólo podrá generarse la clase hija como clase abstracta.
Se debe permitir:
•
Calcular los puntos de un determinado equipo en una competición,
asumiendo el siguiente reparto de puntos por partido:
•
Calcular los goles de un determinado jugador en una competición.
a. La CPU
b. El sistema operativo.
c. El sistema de ficheros.
d. La memoria caché.
a. Los objetos pueden crear otros objetos pero no pueden invocar sus
métodos.
b. Los objetos pueden crear otros objetos e invocar sus métodos.
c. Sólo las clases pueden crear otros objetos.
d. Los métodos de los objetos sólo pueden ser invocados por clases.
6. Desde el código de otra clase se puede modificar el valor de un atributo
privado de un objeto:
a. Puede ser invocado desde la clase donde está definido y desde las
clases del mismo paquete.
b. Un método declarado como private no puede ser invocado.
c. Puede ser invocado desde la clase donde está definido y desde las
clases que heredan de la misma.
d. Puede ser invocado sólo desde la clase donde está definido.
int [ ] numeras { 1, 2, 3, 4, 5, 6 } ;
=
a. 2 3456
b. 1 2 3456
c. 012345
d. 1 2 3456
Por otro lado, la aplicación también debe manejar los pedidos de la tienda.
Cada pedido se caracteriza por un número de pedido, el nombre y apellidos del
cliente, la fecha de compra y los muebles que lo componen. Al igual que en el
caso del catálogo, cada pedido se debe poder imprimir, mostrando su
información. Además, en un pedido se debe poder añadir un mueble nuevo y
eliminar uno a partir de su referencia.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
3. (2 Puntos) Escriba el código del método del sistema que imprime (por
pantalla) todos los pedidos de un cliente, a partir de su nombre y apellidos.
5. Dos objetos de la misma clase tienen los mismos métodos siempre que:
a. Binario.
b. Byte.
c. Bit.
d. Megabyte.
int [ ] a = { O , 2 , 4 , 6 } ;
for ( int i= l ; i<a . length ; i++ ) {
a[i] = a[i] + i;
}
System . out . print ( a [ O ] ) ;
a. 2
b. o
c. 1
d. 3
class ClasePadre { }
class ClaseHij a l extends ClasePadre { }
class ClaseHija2 extends ClasePadre { }
a. varO = var1;
b. var2 = (CiaseHija2 ) var1;
c. var2 = var4;
d. var1 = var2;
a. Sobrecargar un método.
b. Cambiarle el nombre dejándolo con la misma funcionalidad.
c. Modificarlo para los objetos de una subclase.
d. Crear un método con el mismo nombre pero diferentes
argumentos.
1 O. Cuál es la forma correcta de declarar el método main?
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
2. (2,5 Puntos) Escribir el código del método del centro logístico que asigna
un paquete al repartidor encargado de la zona donde va dirigido el envío.
Tenga en cuenta que el estado del paquete debe cambiarse a "en reparto"
al realizar la asignación.
3. (2,5 Puntos) Escribir el código del método que permite marcar un paquete
como entregado. Además, el paquete debe de dejar de estar asignado al
repartidor que ha realizado la entrega.
a. Software de desarrollo.
b. Software de aplicación.
c. Software de sistema.
d. Software de compilación
a. Su cardinalidad y su tipo.
b. Sus atributos y sus métodos.
c. La forma en que establece comunicación e intercambia mensajes.
d. Su interfaz y los eventos asociados.
5. ¿Qué podemos decir de las siguientes instrucciones, sabiendo que MiCiase
es una clase correctamente definida y el método main está definido en una
clase llamada A?:
int l 1;
int J 5;
do {
System. o u t.print ] + " ") ;
J
; - -
a. 5, 1, 4, 1,
b. 5, 1 ' 2, 1 '
c. 5, 1 ' 1 ' 1 '
d. 5, 1 ' 3, 1 '
8. Teniendo en cuenta las siguientes definiciones de clases:
pub l ic c l a s s A {
}
pub l ic c l a s s B extends A {
}
pub l ic c l a s s e extends A {
}
a. Sí, es correcto.
b. No es correcto, deberíamos eliminar o comentar las líneas 2 y 4.
c. No es correcto, deberíamos eliminar o comentar la línea 4.
d. No es correcto, deberíamos modificar la línea 4 por:
l i sta . add ( new A ( ) ) ; / * Línea 4 * /
1 O. Un método realiza una operación que toma como entrada bien un String o
bien un entero. La forma más apropiada de implementar este caso es:
1. Añadir una nueva reserva para un día y turno con los datos
correspondientes comprobando que haya sitio en dicho turno. Si es la
primera reserva que se hace para ese día, el sistema debe incorporar
dicho día en el registro, con los tres turnos correspondientes.
2. Anular una reserva dado un día, un turno y el nombre.
3. Listar las reservas de un día y un turno, indicando por cada reserva el
nombre y el número de comensales.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
a. Software.
b. Firmware.
c. Hardware.
d. Malware.
a. En la CPU.
b. Fuera de la CPU, en una tarjeta de memoria en la placa madre.
c. Formando parte de la memoria RAM.
d. En el disco duro.
class Test {
int var ;
Test (int var) { CONTEN I DO C ONSTRUC T OR }
a. var=var;
b. int var=var;
c. this.var=var;
d. No se puede llamar igual el parámetro del constructor que el
atributo de la clase.
5. ¿Qué condiciones son necesarias para crear una instancia de una clase?
a. su tamaño.
b. el tipo de objetos que puede contener y el tamaño fijo.
c. el tipo de objetos que puede contener.
d. el tipo de objetos que puede contener y un tamaño variable dentro
de un intervalo de posibles valores.
J -- ;
System. o u t.print l + " ") ;
a. 5, 1, 4, 1,
b. 5, 1 ' 2, 1 '
c. 5, 1 ' 1 ' 1 '
d. 5, 1 ' 3, 1 '
•
Buscar un documento por su título y código dentro de la biblioteca.
•
Prestar un documento a un usuario y posteriormente devolverlo.
•
Generar un informe de préstamos, mostrándose por pantalla la
información relativa a los documentos prestados: título, año de
publicación (si es un libro), código, plazo de préstamo, día de préstamo y
DNI del usuario al que se la ha prestado. El formato debe ser
exactamente el mostrado a continuación:
I n f o rme de p r é s t am o s :
Se pide:
6. Dada una lista de objetos tipo "Persona", con un campo "DNI", al modificar
dicho campo de una de las personas de la lista, el elemento de la lista:
int tot a l = 3 ;
for ( int i= l ; i<tota l ; i=i+2 ) {
System . out . print ( i ) ;
System . out . print ( total ) ;
tot a l = tot a l + 1 ;
a. 13 34
b. 13 3455
c. 11 33
d. 11 3355
8. Se desea hacer uso de una clase ya compilada (.class) llamada "Libro" para
implementar una nueva clase llamada "Biblioteca". ¿Qué mecanismo habría
que aplicar para no tener que implementar de nuevo la clase "libro"?
a. No, todos los métodos de una clase deben devolver algún resultado.
b. Sí, utilizando la palabra reservada static para definir el método.
c. Sí, utilizando la palabra reservada void para definir el método.
d. No, todos los métodos de una clase deben devolver algún resultado, o
en su defecto modificar algún objeto.
a. Periféricos de entrada.
b. Tarjetas de expansión del ordenador.
c. Periféricos de salida.
d. Son puertos USB.
a. Si es de familia numerosa.
b. Si está empadronado.
c. Del número de horas a las que esté apuntado en dicha materia.
d. Del precio asociado a la materia.
8. ¿Qué clases son siempre accesibles desde otras clases, bien sea de forma
directa o por herencia?
a. Final.
b. Abstract.
c. Priva te.
d. Static.
9. Siendo CPadre una clase padre de CHija, ambas con el atributo nombre
tipo String declarado como público, ¿qué imprimiría el siguiente código?:
CPadre p=new CPadre();
CHija h=new CHija();
h.nombre="Juan";
p.nombre="Pepe";
System.out.println(h.nombre);
a. Pepe
b. Juan
c. Una excepción
d. null
7. ¿Cuál de los siguientes mecanismos nos permite crear varios métodos con
el mismo nombre en la misma clase?
a. La abstracción.
b. El polimorfismo.
c. La herencia.
d. La sobrecarga.
a. 123456
b. 23456
c. 12345
d. 23456
a. 30
b. 20
c. 29
d. 19
Segunda Parte: Problema
Se desea implementar una aplicación para su uso dentro de una empresa de
venta de bicicletas. Esta empresa permite configurar sus productos al gusto de
sus clientes, y para ello necesita una aplicación informática que le permita
automatizar el proceso de configuración del producto.
Toda bicicleta deberá tener la siguiente configuración a elegir por el cliente:
un cuadro, un manillar, ruedas delantera y trasera, y opcionalmente puede
añadir un conjunto de complementos.
En primer lugar se deberá elegir un cuadro que podrá ser de aluminio o fibra
de carbono y un manillar, que podrá o no tener reposabrazos, y que podrá ser
de tipo multiposición o de triatlón. En el caso de que sea un manillar
multiposición deberá indicarse si es de longitud ajustable, y si es de triatlón si
permite fijación de mandos. A continuación deberá seleccionarse el tipo de
ruedas que tendrá la bicicleta (delantera y trasera), indicando si tendrán o no
freno de disco, y si la cubierta es lisa o de tacos. En el caso de la rueda trasera
habrá que indicar el número de piñones. Por último, el usuario podrá añadir los
complementos que desee a la bicicleta configurada, y que podrán ser bidones
para el agua (medianos o grandes), portaequipajes, luces (ledo reflectores).
Todos los componente con los que se configura una bicicleta, así como todos
sus complementos, tienen un precio y un código de referencia asociado.
Además de permitir la configuración de una bicicleta a partir de lo
mencionado anteriormente, esta aplicación informática deberá permitir las
siguientes funcionalidades:
a) Ver por pantalla la información de la configuración final del producto
indicando los códigos de referencia de cada componente y cada
complemento añadido.
b) Calcular el precio de la bicicleta considerando la suma de todos los
elementos y complementos que la conforman, y aplicando un 20% de
descuento a los complementos añadidos.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
1. (4 Puntos) Dibujar un esquema con las clases necesarias para realizar esta
aplicación, indicando los atributos y métodos que tiene cada una de ellas
(sólo indicarlos, sin escribir su código), aplicando los principios de la
programación orientada a objetos.
2. (2 Puntos) Escribir el código necesario para instanciar una nueva bicicleta.
Se deja a la elección del alumno la selección de componentes y
complementos, pero deberá cubrirse la especificación mínima indicada en el
enunciado.
3. (2,5 Puntos) Escriba la implementación del método (incluyendo la
cabecera) que devuelve el precio total de la bicicleta.
4. (1,5 Puntos) Explique razonadamente qué mecanismo(s) de la
programación orientada a objetos están involucrados en el método
expresado en la funcionalidad a).
• Para la nota del examen, el test vale el 20% yel Problema vale el 80%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para
superarlo.
• Resuelva el problema en una hoja aparte (maximo 2 caras), indicando su
nombre y ON I.
7. GQue hay que hacer en Java para crear una variable polimorfica?
a. Utilizar la palabra reservada polimorphic.
b. Declarar una variable como referencia a un objeto de una clase
determinada y posteriormente asignar a esa variable referencias a
objetos de otras clases de otro paquete.
c. Declarar una variable como referencia a un objeto de una clase
determinada que tenga clases derivadas y asf posteriormente se
podran asignar a esa variable referencias a objetos de subclases de
la clase inicial.
d. En Java no es posible el polimorfismo.
a. 01122334
b. 11223344
c. 00112233
d. 44
9. Siendo CPadre una clase padre de CHija, ambos con el atributo nombre
tipo String declarado como publico, Lque imprimirfa el siguiente codigo?:
CPadre p=new CPadre();
CHija h=new CHija();
h=p;
h.nombre="Juan";
p.nombre="Pepe";
System.out.prinln(p.nombre);
a. Pe pe
b. Juan
c. null
d. Una excepcion.
a. 2.
b. 4.
c. 3.
d. La inicializacion del array es incorrecta.
Segunda Parte: Problema
Se desea implementar una aplicacion para la gestion de los alquileres de una
empresa de coches de alquiler. Esta empresa desea mantener la informacion
de sus clientes, en concreto quiere almacenar su nombre, apellidos, fecha de
nacimiento y fecha de su carnet de conducir. Tambien necesita guardar
informacion sobre la flota de coches que tiene. Los coches los tiene
catalogados en tres tipos: coches pequenos, medianos y grandes. De todos
ellos necesita almacenar su matrfcula, si esta alquilado y el precio base por dfa
que cobra por su alquiler. Este precio es comun para todos los coches y, a
cada uno de los tres tipos les aplica un porcentaje de incremento sobre el
precio base, siendo este de 10%, 15% Y 20%, respectivamente. Ademas,
tambien quiere gestionar y almacenar los alquileres que se producen. Para
cada alquiler quiere guardar el cliente que 10 realizo, el coche que se alquilo y
el numero de dfas de alquiler. El precio se calcula en base a los dfas de alquiler
y el coste del coche.
El sistema debera permitir anadir, modificar y borrar clientes, coches y
alquileres que se realicen. Ademas de 10 mencionado anteriormente, la
aplicacion debera permitir:
• Ver por pantalla la informacion de todos los alquileres realizados por un
cliente, a partir de su nombre y apellidos.
• Ver por pantalla la matricula de todos los coches que estan alquilados.
Antes de comenzar a responder, lea con atencion todos los apartados. Se pide:
1. (4 Puntos) Dibujar un esquema con las clases necesarias para realizar el
diseno del sistema, indicando los atributos y metodos que tiene cada una de
ellas (solo indicarlos, sin escribir su codigo), aplicando los principios de la
programacion orientada a objetos.
2. (2 Puntos) Escribir el codigo necesario para instanciar un nuevo coche
pequeno de matrfcula 1234ABC y un coche mediano de matrfcula 4321 CBA.
Anadir ambos coches a la flota de la empresa, asumiendo que existe una
instancia de la clase Empresa almacenada en la variable denominada
"empresa". Ademas, instancie un nuevo cliente Pepe Flores, nacido el
12/11/1981 Y con fecha de carnet de conducir 5/1/2001. Anada este cliente
como nuevo cliente de la empresa. Despues de esto debemos pedir a la
empresa que muestre la matrfcula de todos los coches que estan alquilados
(no se pide implementar el metodo).
3. (2 Puntos) Escriba la implementacion del metodo del sistema que imprime
(por pantalla) la matrfcula de los coches de la flota que estan alquilados.
4. (2 Puntos) Explique que mecanismo(-s) de la programacion orientada a
objetos utilizarfa para recoger el requisito que nos permita calcular el precio
de cada coche, independientemente del tipo de coche que sea.
SOLUCIÓN
1.
Cliente
private String nombre
private String apellido
private Date fechaNacimiento
private Date fechaCarnet
/* metodos set y get de los atributos */
EmpresaAlquileresCoche
Alquiler
private List<Coche> flota
private Cliente cliente private List<Cliente> clientes
private Coche coche private List<Alquiler> alquileres
private Date fechaInicio
private Date fechaFin public void añadirCoche/Cliente/Alquiler( )
public boolean eliminarCoche/Cliente/Alquiler( )
public int calcularPrecio() public boolean modificarCoche/Cliente/Alquiler( )
/* metodos set y get de los atributos */ public void mostrarAlquileres(String cliente, String apellidos)
public void mostrarCochesAlquilados()
«abstract»
Coche
a. RAM.
b. Caché.
c. ROM.
d. No existen memorias no volátiles.
a. MS Windows.
b. MacOS.
c. Linux.
d. Todos ellos pueden ejecutarse en cualquier tipo de hardware.
a. Su cardinalidad y su tipo.
b. Sus atributos y sus métodos.
c. La forma en que establece comunicación e intercambia mensajes.
d. Su interfaz y los eventos asociados.
a. La abstracción.
b. La herencia.
c. El polimorfismo.
d. La sobrecarga.
6. ¿Se pueden crear objetos de una clase con métodos abstractos?
a. Sí, siempre.
b. No, nunca.
c. Sí, siempre que tengamos el código fuente de la clase.
d. No, ya que no existen los métodos abstractos.
i.nt cont;
for (cont=9; cont>3; cont--)
System.out.pri.nt(cont);
System.out.pri.nt(cont);
a. 998877665544
b. 98765432
c. 99887766554433
d. 9876543
a. varO = var1;
b. var2 = (CiaseHija2) var1;
c. var2 = var4;
d. var1 = var2;
1O. ¿Qué mostraría por pantalla el siguiente fragmento de código, asumiendo
que edad es un atributo público tipo entero de la clase Persona?
a. 30
b. 20
c. 29
d. 19
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
a. ROM.
b. RAM.
c. Cach é.
d. Virtual.
this.nombre 11Juan";
=
System.out.print(p.nombre);
int i O;=
int j 6;=
while (i < O) {
i++;
j++;
}
System.out.println(j);
a. 7
b. o
c. 6
d. 5
int [ ] edad = { 1, 2, 3, 4} ;
a. edad. 1==1
b. edad[1]==2
c. edad[1]==1
d. edad. 1==2
El sistema permite dos tipos de socios, uno denominado vip, que permite
realizar préstamos de los dos tipos de bicis (convencional y eléctricas) y otro
tipo denominado socio convencional, que únicamente permite realizar
préstamos de bicis convencionales, pudiendo el sistema realizar la gestión de
ambos tipos de préstamos (convencionales y eléctricos).
•
Registrar un nuevo préstamo cuando un socio coge una bici de una
estación, almacenando la fech a y h ora de inicio del préstamo, así como
el socio y la bici que coge, cambiando el estado de la bici a prestada.
•
Realizar la devolución de un préstamo activo, registrando la fecha, h ora
y estación donde el socio devuelve la bici, modificando, además, el
estado de la bici a disponible.
NOTA: Para las fechas y h ora puede asumir que existe una clase denominada
Date, que permite almacenar tanto h oras, como fech as.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
a. OSI
b. TCP-IP
c. POP3
d. http
1
22
333
4444
a. La definición:
public static void metodo(int altura) {
for (int n = 1; n <= altura; n++) {
for (int i = O; i < n; i++) {
System.out.print(n);
}
System.out.println("");
}
}
La invocación: A. metodo ( 4) ;
b. La definición:
public static void metodo(int altura) {
for (int n = 2; n <= altura; n++) {
for (int i = O; i < n; i++) {
System.out.print(n);
}
Systemooutoprintln("");
}
}
La invocación: Aometodo ( 4) ;
c. La definición:
pub1ic static void metodo(int altura) {
for (int n = 1; n <= altura; n++) {
for (int i = O; i < n; i++) {
Systemooutoprint(n);
}
Systemooutoprintln("");
}
}
La invocación: Aometodo ( 5) ;
d. La definición:
pub1ic static void metodo(int altura) {
for (int n = 1; n <= altura; n++) {
for (int i = O; i <= n; i++) {
Systemooutoprint(n);
}
Systemooutoprintln("");
}
}
La invocación: Aometodo ( 4) ;
a. Cuota.
b. Aula.
c. Medios audiovisuales.
d. Grupos
thisocalculaMinimo(2 ,3,49);
thisocalculaMinimo(4,3);
thisocalculaMinimo(5,3,2 );
Vehiculo v;
Coche a = new coche();
a. v=a;
b. a=v;
c. v=(Coche) a;
d. v=new Coche();
•
Almacenar todas las mudanzas que se han gestionado o se están
gestionando.
•
Añadir un nuevo equipo al sistema.
•
Registrar una nueva mudanza, mostrando en pantalla los identificadores
de los equipos que cubran la ciudad correspondiente, que su vehículo
acepte la carga de la mudanza y que estén disponibles en ese día.
•
Asignar una mudanza un equipo. En ese momento la mudanza pasa de
"registrada" a "asignada".
•
Consultar o actualizar el estado de una mudanza a partir de su
identificador.
•
Imprimir todas las mudanzas realizadas por un equipo hasta el momento.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
a. La memoria RAM.
b. La memoria ROM.
c. El disco duro.
d. La memoria caché.
public A(int x) {
this.a x; =
}
}
a. Identificador.
b. Horario.
c. Alumnos.
d. Precio.
4. Dado el siguiente fragmento de código:
public class A {
a. El método a es polimórfico.
b. El código es incorrecto porque una clase no puede tener dos métodos
con el mismo identificador.
c. El método a está sobrecargado.
d. El método a está siendo sobreescrito, modificando su cuerpo.
5. Dada una clase Coche con un método getMatricula() para acceder al valor
de un campo matricula, ¿cuál sería el resultado del siguiente fragmento de
código, perteneciente a un método de la clase coche?
a. Poligono p = r;
b. Triangulo t = (Triangulo) r;
c. Triangulo t = (Triangulo) p;
d. r = ( Poligono) p;
a. Administración de memoria.
b. Control de concurrencia.
c. Carga en memoria del disco de arranque.
d. Control de ejecución de programas.
Apellidos......................................Nombre..................... DNI ...................
Se desea implementar una aplicación para su uso en una empresa que trabaja
en el campo de la robótica educativa. Esta empresa necesita configurar robots
que contengan diferente número y tipo de sensores para su posterior
comercialización.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
1. (3,5 Puntos) Dibujar un esquema con las clases necesarias para realizar
esta aplicación, indicando los atributos y métodos que tiene cada una de
ellas (sólo indicarlos, sin escribir su código), aplicando los principios de la
programación orientada a objetos. Debe considerarse que el tipo de
sensores a montar en un robot puede aumentar y que el diseño debe estar
preparado para ello; por tanto, no deberían de tener que modificarse las
clases ya existentes cuando se considere un nuevo tipo de sensor.
a. ROM
b. Caché
c. RAM
d. Virtual
a. LaBIOS.
b. La Unidad Central de Procesos.
c. El Sistema Operativo.
d. El bus de memoria.
4. Dado el siguiente código:
pub1ic c1ass A {
private void a() {
}
}
¿Cuál de las siguientes afirmaciones es correcta?
int j = 1;
for (int i = -13; i <= -10; i++) {
j++;
}
System.out.println(j);
a. 4
b. 3
c. 5
d. -13
Se desea implementar una aplicación para su uso en una empresa que trabaja
en el ámbito del ferrocarril. Esta empresa necesita configurar rutas y asignar
convoyes de trenes en función de las necesidades del servicio ferroviario, y
para ello necesita una aplicación informática que le permita automatizar este
proceso.
Un convoy está formado por un conjunto de vagones tirados por una máquina
de cabecera (también llamada locomotora), que a su vez es un tipo especial de
vagón y que, por tanto, puede formar parte del convoy sin ejercer su función de
arrastre. Dependiendo de la potencia de esta locomotora el número de vagones
arrastrados en el convoy variará, pudiendo ser de un máximo de 1O vagones en
el caso de locomotoras "grandes" (con potencia de 10. 000 KW), 7 vagones en
locomotoras "medias" (con potencia de 7.000 KW) y de 5 en el caso de ser
arrastrados por locomotoras "pequeñas" (con potencia de 5.000 KW). Además,
hay otros tipos especiales de vagones, los correspondientes al coche-bar, los
vagones de transporte de mercancía y los vagones de pasajeros. Cada convoy
se asigna a una ruta que tendrá una estación de salida y otra de llegada.
A la hora de permitir la configuración de un convoy, a partir de lo mencionado
anteriormente, esta aplicación informática deberá permitir las siguientes
funcionalidades:
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
1. (4 Puntos) Dibujar un esquema con las clases necesarias para realizar esta
aplicación, indicando los atributos y métodos que tiene cada una de ellas
(sólo indicarlos, sin escribir su código), aplicando los principios de la
programación orientada a objetos.
2. (2 Puntos) Escribir el código necesario para crear una nueva ruta y añadir
un convoy con 5 vagones tirado por una locomotora pequeña. Se deja a la
elección del alumno la selección de los tipos de vagón y las estaciones de
salida y llegada.
a. O 2 4 6 8
b. 13 579
c. 1 3 5 7 9 11
d. Nada. Se lanzaría una excepción.
Se pide:
1. (4 Puntos) Dibujar un esquema con las clases necesarias para realizar esta
aplicación, indicando los atributos y métodos que tiene cada una de ellas
(sólo indicarlos, sin escribir su código), aplicando los principios de la
programación orientada a objetos.
1.
2.
// Instanciación de una nueva canción
// Instanciamos 4 instrumentos
guitarra = new Guitarra(2);
bajo = new Bajo(2,24);
saxo1 = new Saxo(“ALTO”);
saxo2 = new Saxo(“TENOR”);
Iterator<Pista> it = this.pistas.iterator();
while(it.hasNext()){
Pista p = it.next();
if (p.mismaPista(id) {
p.activarMute();
}
}
}
4. El mecanismo involucrado es la composición, dado que el método del apartado 3
debe recorrer una lista de objetos Pista dentro de un objeto de una clase Cancion.
•
Para la nota del examen, el test vale el 20% y el Problema vale el 80%.
•
El test es eliminatorio y se necesitan 7 respuestas correctas para
superarlo.
•
Resuelva el problema en una hoja aparte (máximo 2 caras).
1O. Suponiendo una clase Alumno con el atributo público nombre, de tipo
string, ¿Qué se imprime al ejecutar el siguiente fragmento de código?
a. "Pepe" y "Pepe".
b. "Juan", y "Pepe".
c. "Juan".
d. "Pepe".
Segunda Parte: Problema
En los hoteles es común pedir a recepción que llamen a la habitación a una
determinada hora, a modo de despertador. Por otro lado, sería interesante que
un cliente pudiera también fijar la hora a partir de la cual el servicio debe pasar
a limpiar la habitación o pedir que no se pase un determinado día.
Se pide:
1. (4 Puntos) Dibujar un esquema con las clases necesarias para realizar esta
aplicación, indicando los atributos y métodos que tiene cada una de ellas
(sólo indicarlos, sin escribir su código), aplicando los principios de la
programación orientada a objetos.
a. El software de usuario.
b. La cantidad de accesos a memoria por segundo.
c. El diseño del sistema operativo.
d. El tipo de puerto de entrada y salida.
3. -----
es instanciar dicha clase.
a. int X = Camion.getMatricula(a);
b. int X = a.getMatricula();
c. int a = Camion.matricula;
d. int X = a.getMatricula;
p h;
p m;
h m;
a. O12 34
b. 432 1o
c. 1
d. 2
a. 1.
b. 2.
c. 3.
d. El código es incorrecto.
Segunda Parte: Problema
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
a. La capacidad de almacenamiento.
b. El tamaño y tipo de monitor.
c. La velocidad del equipo.
d. Los tipos de las tarjetas gráficas y de audio.
2. Indique cuál de estas afirmaciones es correcta:
En la práctica de este año, entre las clases Robot y Sensor se establecían
los siguientes mecanismos de la Programación Orientada a Objetos:
a. Composición y polimorfismo.
b. Herencia y composición.
c. Herencia.
d. Composición.
a.
Duplicar una clase.
b.
Crear un objeto a partir de una clase.
c.
Eliminar una clase.
d.
Relacionar dos clases entre sí.
4. Indique cuál de las siguientes instrucciones permiten instanciar un objeto
de una clase A:
a. A a = new A();
b. a.new();
c. A = a new A();
d. A = new a();
6. Indica cuál de las siguientes afirmaciones es correcta en relación al
mecanismo de sobreescritura de métodos:
a. Un método Java no puede reescribirse salvo que sea definido como
void.
b. Al sobreescribir un método en Java se ejecuta la definición más baja en
la jerarquía de herencia respecto al objeto al que pertenece el método.
c. Un método en Java solo puede reescribirse si ha sido definido como
final.
d. Al sobreescribir un método en Java se ejecuta la definición más alta en
la jerarquía de herencia respecto al objeto al que pertenece el método.
a. 0102103210
b. 010210
c. 1213214321
d. 121321
•
Mostrar por pantalla todas las publicaciones de un investigador, a partir
de su nombre, apellido e institución.
•
Mostrar por pantalla todos los artículos de revista de un investigador, a
partir de su nombre, apellido e institución.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
a. No, todos los métodos de una clase deben devolver algún resultado.
b. Sí, utilizando la palabra reservada static para definir el método.
c. Sí, utilizando la palabra reservada void para definir el método.
d. No, todos los métodos de una clase deben devolver algún resultado, o
en su defecto modificar algún objeto.
int i O;
=
int j 5;
=
while (i > j) {
Systemooutoprint (i);
i i + 1;
=
j j= 1;
-
}
Systemooutoprint (i + j);
a. O 1 2 5
b. o 1 2
c. No se imprime nada por pantalla porque se entra en un bucle infinito.
d. 5
public class A {
public void escribir(String a) {
System.out.print(a);
}
}
A a new B();
=
a.escribir (nHola");
a. Hola
b. No devolvería nada puesto que no podemos asignar un objeto de
clase A en una variable del tipo B.
e . El valor es: Hola
int i = -9;
System.out.println("l" + i + "1 es " + Math.abs(i));
a. 7
b. 5
e. 4
d. null
Por otro lado, se quiere almacenar los datos de las personas que realizan las
solicitudes (solicitantes), en concreto: su nombre, apellido, email, el nombre del
niño o niña para el que se pide la solicitud y el conjunto de solicitudes
realizadas. Cada solicitud debe contener un número identificativo, referencia a
la persona que la realiza, el niño o niña para el que se solicita, el curso y el
conjunto de guarderías para el que solicita plaza.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
a. int x = Alumno.edad;
b. int x = a.darEdad();
c. int x = a.edad;
d. int x = Alumno.darEdad(a);
4. Indique qué resultado mostraría por pantalla el siguiente fragmento de
código:
array.length 2; =
int sum O; =
sum sum + 1;
=
}
System.out.println(sum);
a. O.
b. 5
c. 2
d. Error de compilación. No es posible modificar el tamaño de un array en
tiempo de ejecución.
int[] a = {0, 1, 2, 3 };
for (int l = 1; i < a.length; i++) {
a[i - 1] = a[i];
}
System.out.print(a[1]);:
a. O
b. 1
c. 2
d. 3
8. Dos objetos de una misma clase no comparten necesariamente:
public class A {
}
public class B extends A{
}
public class e extends B {
}
a. A a = newB();
b. A a = new C();
c. B b = newB();
d. e e = newB();
a. En la 3 y la 5.
b. En la 5.
c. En la 2,3,5 y 6.
d. En la 3.
Apellidos..................................... Nombre.................. O NI...................
Antes de comenzar a responder, lea con atención todos los apartados. S e pide:
a. Código fuente.
b. Código objeto.
c. Código máquina.
d. Código ejecutable.
2. Teniendo en cuenta la siguiente definición de un atributo de una clase:
private static int TOTAL = 10;
a. Está permitido definir varios métodos con el mismo nombre siempre que
éstos sean constructores y tengan diferentes parámetros de entrada.
b. Está permitido siempre definir varios métodos con el mismo nombre si
éstos tienen diferentes parámetros de entrada.
c. No está permitido definir más de un método con el mismo nombre.
d. No está permitido definir más de un método con el mismo nombre, salvo
que sean de tipo 'static'.
int resultado = 0;
int total = 1;
while(total < 4) {
resultado = resultado + total;
}
System.out.println(resultado);
a. 1
b. 3
c. 0
d. No imprimiría nada.
public class A {
protected int numeroA;
public void setNumeroA(int num){ numeroA = num;}
public int suma(int num){return numeroA+num; }
}
int a = 1;
int b = 2;
a = b;
System.out.print(a);
System.out.print(b);
a. 12
b. 22
c. 11
d. 21
Solo hay tres tipos de multas: por exceso de tiempo, aparcamiento indebido y
no haber sacado el tique de establecimiento regulado. El importe de las multas
depende del tipo y del tiempo que ha pasado desde la infracción.
1. Añadir una multa, de cualquiera de los tres tipos, con todos los datos
asociados.
2. Anotar una multa como pagada dado el identificador de la multa.
3. Sumar el importe total de las multas no pagadas de un conductor dado
su DNI.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
a. Su valor sólo puede ser accedido por la propia clase, sus subclases y
las clases que estén en el mismo paquete que ella.
b. Su valor sólo puede ser accedido por la propia clase y sus subclases.
c. La definición es incorrecta ya que los atributos no pueden ser
definidos como protected.
d. El atributo total es un atributo de clase, compartido por todos los
objetos.
3. Un "gigabyte" es equivalente a:
a. 1024 bits.
b. 1024 bytes.
c. 1024 Kilobytes
d. 1024 Megabytes
4. En programación orientada a objetos, un objeto se crea cuando:
a. Se ejecuta un programa
b. Se crea el código objeto de su clase.
c. Se crea el código fuente de su clase.
d. Finaliza la ejecución de un programa.
int j=O;
for (int i=l; i<S; i=i+2) {
j = j + i;
}
System.out.print(j);
a. 10
b. 4
c. 5
d. 3
A a = new A();
B b = new B();
a.id = 11j23";
System.out.prinln(b.id)
a. j23
b. Nada. El atributo id de b no puede tener asignado ningún valor.
c. null dado que se ejecuta el constructor por defecto.
d. Depende de cómo esté definida la clase B.
A a:::new A();
B b:::new B ();
e c:::ne\v e ( ) ;
b.c::::a;
a. Entre By e
b. Entre A y e
c. Entre By A
d. No hay relación de composición en ningún caso.
Apellidos ......................................Nombre..................... DNI ...................
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
a. public getSuma(){. . . }
b. public void getSuma(){. . . }
c. int private getSuma(){ . . . }
d. protegido int getSuma(){. . . }
a. Todos los objetos de una misma clase tendrán los mismos campos.
b. El tipo de dato de los campos se define en los objetos.
c. Todos los objetos de una misma clase tendrán los mismos valores en
sus campos.
d. No todos los objetos de una clase tendrán los mismos métodos.
a. obj =dameSuma(5,6);
b. obj.dameSuma(int 5, int 6);
c. int.dameSuma(5,6);
d. obj.dameSuma(5,6);
a. Definir una clase Puesto que contenga un atributo de tipo String donde
se almacene el puesto concreto.
b. Definirlo como una lista de objetos de tipo String, donde cada objeto
almacena un tipo de puesto.
c. Definirlo de tipo String para almacenar el nombre del puesto.
d. Definir un tipo enumerado con los valores que representen al conjunto
de puestos definidos en el enunciado.
public class A {
public void a() {
1** implementación 1 **/
}
}
public class B extends A {
public void a() {
1** implementación 2 **/
}
}
int[ ] edad { 1, 2, 3, 4} ;
=
System.out.println(edad[1+1]+1);
a. 2
b. 3
c. 4
d. 5
9. ¿Qué es una excepción?:
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
1A, 2B, 3A, 4D, 5A, 6D, 7B, 8C, 9B, 10B
•
Para la nota del examen, el test vale el 20% y el Problema vale el 80%.
•
El test es eliminatorio y se necesitan 7 respuestas correctas para
superarlo.
•
Resuelva el problema en una hoja aparte (máximo 2 caras), indicando su
nombre y DN l.
2. Dada una clase Persona con un atributo edad tipo entero, y dado el
siguiente fragmento de código perteneciente a un método de la clase
Persona, ¿qué imprimiría?
int[] a { 1, 2, 3, 4 };
=
}
System.out.print(a[O]);
a. 1
b. 2
c. 3
d. 4
int i O; =
int j 6; =
a. 10
b. No imprimiría nada.
c. 9
d. 1
1O. Indique qué se entiende por excepción en Java:
a. Un mecanismo para el manejo de errores.
b. Una clase que no puede ser instanciada.
c. Un bucle que no finaliza.
d. Un objeto que no puede ser instanciado.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
a. Un compilador es un proceso.
b. Un proceso es un programa en ejecución.
c. Un proceso se compone del código que se ejecuta y de los datos
asociados.
d. El sistema operativo controla la asignación de variables dentro de los
procesos.
a. int suma= O;
b. suma int;
c. suma int= O;
d. int suma= new lnt();
a. constructor A(){ . . . }
b. public constructor A(){ . . . }
c. public A(){ . . . }
d. public void A(){ . . . }
5. En Java:
public class A {
public void a() {
1** implementación 1 **/
}
}
public class B extends A {
public void a(String s) {
1** implementación 2 **/
}
}
a. Luis
b. Juan
c. José
d. Miguel
9. Indique qué se imprimiría por pantalla tras la ejecución del siguiente código:
public static void main(String args[]){
int numero= 4557888;
int digitos= O;
do {
numero= numero 1 1O;
digitos++;
} while ( numero> O );
System.out. println(digitos);
}
a. 6
b. 7
c. 8
d. Nada, porque se ejecutaría un bucle infinito.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
3. Sabiendo que A y B son dos clases bien definidas: ¿es correcto el siguiente
fragmento de código?
a. No, dado que dos clases no pueden tener métodos con el mismo
nombre.
b. Sí, podría ejecutarse.
c. No, porque las instanciaciones son incorrectas.
d. No, porque en un método main no pueden instanciarse objetos.
4. Indique cuál de las siguientes instrucciones puede representar una
invocación correcta a un método estático o de clase:
a. static.metodo();
b. System.out. println("A");
c. class.metodo();
d. System.out. println(String A);
6. ¿Entre qué dos clases existe una relación de herencia en la práctica de este
curso?
public class A { }
public class B extends A { }
public class e extends B { }
public static void main(String[] args) {
A a new A();
=
B b new A();
=
a = new e ();
}
int i = O;
int j = 6;
while ((i -- 0) && (j<lO)) {
j++;
}
System.out.println(j);
a. Nada.
b. 9
c. 11
d. 10
•
Añadir una carrera al sistema.
•
Eliminar una carrera a partir de su nombre, fecha y hora.
•
Añadir un corredor a una carrera, como inscrito.
•
Imprimir por pantalla la información de los avituallamientos de una
carrera.
•
Asignar los dorsales a los corredores inscritos en una carrera, dado el
nombre de la carrera y su fecha y hora.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
1A, 2D, 3B, 4B, 5C, 6D, 7C, 8B, 9D, 10B
• Para la nota del examen, el test vale el 20% y el Problema vale el 80%.
• El test es eliminatorio y se necesitan 7 respuestas correctas para
superarlo.
• Resuelva el problema en una hoja aparte (máximo 2 caras).
Primera Parte: Test
1. Indique cuál de los siguientes tipos de memoria NO es memoria volátil:
a. RAM.
b. ROM.
c. Caché.
d. Virtual.
a. 1;
b. null;
c. Daría error de compilación.
d. El programa finalizaría sin imprimir nada.
............ i............ )
�············ ............ ,
Ir�::;;��:
::.:�
a. 1,2,
b. 1' 2, 3,4,
c. 2,1'
d. 1,2,1, 3,1,4,
Por otro lado, cada producto está identificado por un número y un nombre.
Además, para el caso particular de los productos perecederos, se desea
almacenar su grupo dentro de alguno de estos cuatro tipos: "leche y derivados",
"carne, pescado y huevo", "cereales, legumbres y patatas", "Frutas y verduras".
También debe guardase su fecha de caducidad y su forma de conservación,
que podrá ser "congelador", "nevera" o "a temperatura ambiente". En cuanto a
los productos no perecederos, incluyen también una marca.
Id: 421
Nombre: Vino tinto
Marca: Pesquera
Personal
Universitario
· ...
Personal
Docente 1¡1 1 �����=:
Ad ivo
'::: : : : : L: : : : : : : : �
•"""""""'"'("""""'""·; ---""""""""' """"""""'·
•1 - -T-u-o
t _r_ � j1 JefeSeccion ' - mmTecnico :]
'--
a. Profesor p = new Tutor();
b. JefeSeccion js = new PersonaiAdministrativo();
c. PersonaiUniversitario pu = new Profesor();
d. PersonaiDocente pd = new PersonaiUniversitario();
a. Herencia.
b. Composición.
c. Polimorfismo.
d. Abstracción.
System.out.print(total);
a. 20
b. 18
c. 12
d. No se imprimiría nada.
1O. ¿Cuántos objetos String se crean mediante la siguiente declaración?
S tring [ ] etiquetas = new String[20];
NOTA: Para las fechas puede asumir que existe una clase denominada
"Date(String fecha)" que permite trabajar con fechas a partir de un String que
almacene fechas del estilo "dd/mm/aaaa", donde dd es el día con 2 dígitos, mm
el número de mes y aaaa el año.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide:
a. Puede ser invocado desde la clase donde está definido y desde las
clases del mismo paquete.
b. Sólo puede ser invocado desde la clase donde está definido.
c. No puede ser invocado.
d. Puede ser invocado desde la clase donde está definido y desde
subclases de la misma.
a. @version
b. @author
c. @return
d. @class
a. 1 , 1 ,2, 1 ,
b. 1 ' 2,2, 1 '
c. 1 ' 1 ' 2,2,
d. 1 ' 2,3, 4,
Esta aseguradora trabaja con dos tipos de pólizas de salud: una nacional, que
se paga en una prima anual y se necesita saber si la renovación es automática
o no; y otra dedicada para los viajes al extranjero. Esta última se caracteriza
por el país al que se viaja y la fecha de fin de vigencia.
Para todas las pólizas se quiere poder visualizar por pantalla su información
concreta.
NOTA: Para las fechas puede asumir que existe una clase denominada
"Date(String fecha)" que permite trabajar con fechas a partir de un String que
almacene fechas del estilo "dd/mm/aaaa", donde dd es el día con 2 dígitos, mm
el número de mes y aaaa el año.
Antes de comenzar a responder, lea con atención todos los apartados. Se pide: