7/23/2019 Exmenes Fundamentos Informtica
1/247
UNIVERSIDAD NACIONAL DE EDUCACIN A DISTANCIA. ESCUELA DE INGENIERATCNICA INDUSTRIALEXAMEN DE FUNDAMENTOS DE INFORMTICA (ESPECIALIDAD ELECTRNICA)
ENERO / FEBRERO 2005
NO EST PERMITIDO EL USO DE MATERIAL ADICIONAL
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 cdigo de asignatura es 621040 y el tipo A.
Resuelva el Problema en una hoja aparte (mximo 2 caras), indicando su nombre y el Centro Asociado
en el que ha realizado la prctica.
Primera Parte: Test
1. Cuntos Terabytes hay en un Gigabyte?a. 1/2
b. 2
c. 1/1024
d. 1024.
2. Qu es la memoria RAM?
a. Memoria permanente de acceso aleatorio.
b. Memoria de slo lectura.
c. Memoria voltil de acceso directo.
d. Memoria donde se almacena la configuracin de los componentes del ordenador.
3. Cul de las siguientes afirmaciones es falsa?
a. Programar con lenguajes de bajo nivel exige conocer la estructura del equipo.
b. Se llama lenguaje mquina al lenguaje ensamblador.
c. El lenguaje ensamblador es de bajo nivel.
d. Los lenguajes orientados a objetos son de alto nivel.
4. Supongamos que necesitamos hacer una compra de un billete de avin por Internet. Qu proceso
sera el ms 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.
5. Dado el siguiente programa, indicar qu resultado dara por pantalla:for (int i=1;i
7/23/2019 Exmenes Fundamentos Informtica
2/247
UNIVERSIDAD NACIONAL DE EDUCACIN A DISTANCIA. ESCUELA DE INGENIERATCNICA INDUSTRIALEXAMEN DE FUNDAMENTOS DE INFORMTICA (ESPECIALIDAD ELECTRNICA)
ENERO / FEBRERO 2005
NO EST PERMITIDO EL USO DE MATERIAL ADICIONAL
6. En qu punto comienza la ejecucin de un programa en Java?
a. En un mtodo esttico cualquiera, que hay que definir previamente.
b. En el constructor de una de las clases.
c. En el mtodo esttico main.
d. En el mtodo esttico begin.
7. Sea la clase:
Persona persona1 = new Persona();
Persona persona2;
persona1.setNombre(Pepe);persona2 = persona1;
System.out.print(persona1.getNombre());
System.out.print(persona2.getNombre());
persona2.setNombre(Juan);
System.out.print(persona1.getNombre());
System.out.print(persona2.getNombre());
Indicar lo que se imprimira en pantalla:
a. PepePepePepePepe
b. PepePepePepeJuan
c. PepePepeJuanPepe
d. PepePepeJuanJuan
8. Dada una clase declarada con la palabra reservada extends, indicar de cuntas clases padre puede
heredar directamente:
a. De ninguna.
b. De una.
c. De menos de 5.
d. De todas las que se necesiten.
9. Qu tipos de acceso puede tener el atributo de una clase?
a. public, private, protected, package
b. public, private, associated
c. public, private, protected
d. public, private, protected, associated
10. Cmo se crea un objeto de la clase Calendar de Java?
a. Primero hay que programar el cdigo de la clase adaptndolo al sistema horario local.
Despus se usa new Calendar( );
b. El objeto se crea con new Calendar( );
c. El objeto se crea con Calendar.getInstance( );
d. Se crea con new Calendar( ); pero antes de usarlo es necesario ejecutar
Calendar.getInstance( );
7/23/2019 Exmenes Fundamentos Informtica
3/247
UNIVERSIDAD NACIONAL DE EDUCACIN A DISTANCIA. ESCUELA DE INGENIERATCNICA INDUSTRIALEXAMEN DE FUNDAMENTOS DE INFORMTICA (ESPECIALIDAD ELECTRNICA)
ENERO / FEBRERO 2005
NO EST PERMITIDO EL USO DE MATERIAL ADICIONAL
Segunda Parte: Problema
Se desea disear un programa que tendr que ser capaz de gestionar obras cinematogrficas, literarias y
musicales, permitiendo la creacin, modificacin y acceso de las diferentes obras y sus autores, as como la
impresin por pantalla de sus datos ms caractersticos. De todas las obras necesitamos saber su ttulo, su
autor y ao de edicin. Adems, en concreto, de los libros nos interesa su editorial y su nmero de pginas;
de los discos queremos saber la discogrfica que lo edita y el nmero de canciones; y de las pelculas
interesan los intrpretes y la productora. Todos los autores de una obra, as como los intrpretes de una
pelcula, se consideran artistas. De cada artista queremos saber su nombre y su ao 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 mtodos que
tiene cada una (slo indicarlos, sin escribir su cdigo). El esquema debe reflejar grficamente la herencia de
clases en caso de que la haya. (3,5 puntos)
2.Codificar la clase correspondiente a las pelculas. (3,5 puntos)
Supongamos a partir de ahora que estamos programando el mtodo main, y que hemos creado los
siguientes objetos:
Clase Nombre objeto DatosArtista gonzaloSuarez Nombre: Gonzalo Surez; Ao de nacimiento: 1954Artista carmeloGomez Nombre: Carmelo Gmez; Ao de nacimiento: 1962Artista maribelVerdu Nombre: Maribel Verd; Ao de nacimiento: 1970Libro ciudadanoSade Ttulo: Ciudadano Sade; Autor: gonzaloSuarez; Ao de produccin: 1999;
Editorial: Plaza&Jans; Nmero de pginas: 256
3. Escribir el cdigo necesario para crear el objeto correspondiente a la pelcula "El portero" (Gonzalo
Surez, 2000, Lola Films, interpretada por Carmelo Gmez y Maribel Verd). (1,5 puntos)
4.Codificar en una sola lnea exactamente la siguiente modificacin: "la fecha de nacimiento del autor de lapelcula 'El Portero' es 1934". Si a continuacin 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)
7/23/2019 Exmenes Fundamentos Informtica
4/247
7/23/2019 Exmenes Fundamentos Informtica
5/247
PROBLEMA DE LA PRIMERA SEMANA
Solucin al apartado 1:
Solucin al apartado 2:
public class Pelicula extends Obra {
private Artista[] interpretes;private String productora;
public Pelicula(String titulo, Artista autor, int ao,String productora, Artista[] interpretes) {
this.setTitulo(titulo);
this.setAutor(autor);this.setAoProduccin(ao);this.productora = productora;this.interpretes = interpretes;
}
public void imprimir() {System.out.print("OBRA: " + this.getTitulo() + "; AUTOR: " +
this.getAutor() + "; AO DE PRODUCCIN:" + this.getAoProduccin()+ "; PRODUCTORA: " + this.productora + "; INTRPRETES:");
int i;for (i=0; i
7/23/2019 Exmenes Fundamentos Informtica
6/247
Esta solucin es posible porque no hemos definido ningn constructor para la clase Obra, por lo que
sigue disponible su constructor por defecto. En otro caso habra que programar el constructor de la
siguiente forma:
public Pelicula(String titulo, Artista autor, int ao,String productora, Artista[] interpretes) {
super(titulo, autor, ao);this.productora = productora;this.interpretes = interpretes;
}
Solucin al apartado 3:
Artista[] interpretes_portero = new Artista[2];interpretes_portero[0] = carmeloGomez;interpretes_portero[1] = maribelVerdu;
Pelicula elPortero = new Pelicula("El portero", gonzaloSuarez ,2000, "Lola Films", interpretes_portero);
Solucin al apartado 4:
Si se han declarado los atributos private y se han definido para ellos mtodos get y set
(opcin ms correcta):
elPortero.getAutor().setAoNacimiento(1934);
En caso contrario:
elPortero.autor.aoNacimiento=1934;
Al imprimir datos del libro, la fecha de nacimiento del autor sera 1934, ya que la modificacin
hecha con la lnea anterior afecta permanentemente al objeto gonzaloSuarez.
Solucin Text Sem. 1:
1)c 2)c 3)b 4)d 5)b 6)c 7)d 8)b 9)c 10)c
7/23/2019 Exmenes Fundamentos Informtica
7/247
UNIVERSIDAD NACIONAL DE EDUCACIN A DISTANCIA. ESCUELA DE INGENIERATCNICA INDUSTRIAL
EXAMEN DE FUNDAMENTOS DE INFORMTICA (ESPECIALIDAD ELECTRNICA)ENERO/FEBRERO 2005
NO EST PERMITIDO EL USO DE MATERIAL ADICIONAL
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 cdigo de asignatura es 621040 y el tipo A.
Resuelva el Problema en una hoja aparte (mximo 2 caras), indicando su nombre y el Centro Asociado
en el que ha realizado la prctica.
Primera Parte: Test
1. Los buses de control, qu funcin realizan?
a. Controlan qu instruccin se carga en la Unidad de Control para ser ejecutada.
b. Comunican los perifricos con el procesador (CPU).
c. Llevan los datos de la RAM al procesador.
d. Llevan los datos que han sido procesados por la CPU de la RAM al disco duro.
2. Indicar cul de las siguientes afirmaciones sobre memoria es errnea:
a. Hay tres tipos de memoria temporal: RAM, cach y virtual.
b. La memoria ROM es permanente y su contenido no se pierde al apagar el ordenador.
c. El acceso a la memoria virtual es ms rpido que el acceso a RAM.
d. Se suele llamar memoria principal a la combinacin de ROM y RAM.
3. Cul es la caracterstica fundamental que diferencia a un sistema operativo multitarea?
a. Permite que varios usuarios puedan trabajar simultneamente.
b. Permite gestionar dos o ms procesadores.
c. Permite que se ejecuten varios procesos a la vez.
d. Permite ejecutar procesos en tiempo real.
4. El administrador de memoria se encarga de:
a. Seleccionar el proceso que se va a ejecutar a continuacin
b. Dejar en memoria principal alguno de los componentes del SO.
c. Asignar memoria a los diferentes procesos.
d. Procesa los programas que se encargan de las entradas y salidas relacionadas con losperifricos.
5. Qu diferencia fundamental existe entre vectores y arrays?
a. Los vectores no se tienen que declarar y los arrays s.
b. Los vectores pueden redimensionar su tamao mientras que los arrays no.
c. No hace falta crear instancias de vectores porque se encuentran en libreras predefinidas de
java, cosa que en los arrays s ocurre.
d. Los vectores pueden tener varias dimensiones, es decir se puede crear un vector de vectores
(por ejemplo una matriz), mientras que en arrays no.
7/23/2019 Exmenes Fundamentos Informtica
8/247
UNIVERSIDAD NACIONAL DE EDUCACIN A DISTANCIA. ESCUELA DE INGENIERATCNICA INDUSTRIAL
EXAMEN DE FUNDAMENTOS DE INFORMTICA (ESPECIALIDAD ELECTRNICA)ENERO/FEBRERO 2005
NO EST PERMITIDO EL USO DE MATERIAL ADICIONAL
6. Qu ocurre cuando en un mtodo se pasa un parmetro por valor?
a. Que los cambios que se producen sobre el parmetro dentro del mtodo permanecen cuando
se termina su ejecucin.
b. Que los cambios que se producen sobre el parmetro dentro del mtodo no permanecen
cuando se termina su ejecucin.
c. Que sea cual sea el tipo del parmetro se convierte en un valor entero.
d. Que la variable de salida debe ser del mismo tipo que el parmetro.
7. Un mtodo de clase (static), se podra llamar sin instanciarse un objeto de la clase?
a. No, siempre hay que declarar el objeto y luego llamar al mtodo.
b. No, siempre hay que declarar el objeto, crearlo y a continuacin llamar al mtodo.c. S, se podra llamar al mtodo desde la misma clase.
d. S, se podra llamar al mtodo pero slo si la clase es abstracta.
8. Cundo se utilizara la estructura de repeticin do-while?
a. Cuando se desea ejecutar el bloque de cdigo que est en esa estructura al menos una vez
aunque no se cumplan las condiciones.
b. Cuando se desea ejecutar el bloque de cdigo slo si se cumplen unas condiciones.
c. Cuando se desea ejecutar un bloque una vez al menos pero slo si las condiciones se
cumplen.
d. Ninguna de las anteriores.
9. Si tenemos el siguiente programa:public class Arit{
public int sumar2(int sum){
return sum + 2;
}
public String sumar2(String sum){
return sum + 2;
}
public static void main (String[] args){
Arit x = new Arit();
System.out.println(x.sumar2("2"));
}
}
Qu mostrara el siguiente cdigo?
a. Un error de compilacin por sobrecarga.
b. 4
c. 22
d. Un error de ejecucin por no poder sumar un tipo string con el literal 2.
10. En relacin al enunciado de la prctica, indicar cul 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 {
7/23/2019 Exmenes Fundamentos Informtica
9/247
UNIVERSIDAD NACIONAL DE EDUCACIN A DISTANCIA. ESCUELA DE INGENIERATCNICA INDUSTRIAL
EXAMEN DE FUNDAMENTOS DE INFORMTICA (ESPECIALIDAD ELECTRNICA)ENERO/FEBRERO 2005
NO EST PERMITIDO EL USO DE MATERIAL ADICIONAL
Segunda Parte: Problema
Una empresa de telecomunicaciones nos encarga realizar la primera versin de un programa para gestionar
mensajes de texto en diferentes formatos: e-mail, SMS (mensajes cortos de telefona mvil) y chat
(mensajera instantnea). Todos los mensajes, independientemente del formato, tienen un usuario emisor, un
usuario receptor y un texto de mensaje. Adems, 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 nmero del centro servidor, y un
mensaje instantneo tiene un protocolo de mensajera. De cada usuario podemos necesitar su nombre, su
direccin de correo electrnico, su nmero de telfono mvil y su direccin 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 mtodos
que tiene cada una (slo indicarlos, sin escribir su cdigo). No es necesario incluir mtodos get y
set. El esquema debe reflejar grficamente 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 mvil, debe imprimirse
un mensaje de error. Adems, si el mensaje SMS ocupa ms de 145 caracteres, antes de imprimirlo debemos
irlo reduciendo hasta que no sobrepase ese tamao. La reduccin se hace con el mtodo String
reduce(String cadena), programado por otra empresa e incluido en el package smstools. Cada vez que se
ejecuta este mtodo, mediante un diccionario de abreviaturas se reduce levemente la longitud del texto.
2. Explicar, en relacin al concepto de herencia, cul sera la mejor solucin para encajar en el diseo
anterior este comportamiento particular del mtodo enviar para los SMS. Indicar una solucin
alternativa sin utilizar herencia y comentar sus ventajas o inconvenientes. (3 puntos)
3. Codificar el constructor de la clase correspondiente a los SMS. La presencia o ausencia de
constructor en una clase padre, afecta de alguna manera a la clase que hereda? (2 puntos)
4. Codificar el mtodo que permite enviar mensajes SMS. (2 puntos)
7/23/2019 Exmenes Fundamentos Informtica
10/247
7/23/2019 Exmenes Fundamentos Informtica
11/247
PROBLEMA DE LA SEGUNDA SEMANA
Solucin al Apartado 1:
Solucin al Apartado 2:
Habra que reescribir el mtodo enviar en la clase Sms, de forma que el mtodo enviar
original permaneciera en la clase Mensaje. As, cuando se imprima un email o un mensaje
instantneo, se recurrir al mtodo heredado de la clase padre, pero cuando se imprima un SMS se
ejecutar el mtodo redefinido.
La alternativa sin herencia sera eliminar el mtodo enviar de la clase padre y escribirlo
individualmente para cada formato de mensaje. Sin embargo, esta solucin es peor, porque implica
duplicar informacin al escribir un mismo cdigo varias veces (en este caso dos, pero podran ser
ms), con la consiguiente dificultad para mantener la coherencia en caso de un cambio en el cdigo.
Solucin al Apartado 3:
Al crear un objeto de la clase que hereda, lo primero que se hace es llamar implcitamente al
constructor por defecto de la clase padre, por lo que no es necesario escribir cdigo 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 explcitamente 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;
}
Mensaje
private Usuario emisor;private Usuario receptor;
private String texto;
void enviar()
private String asunto;private Usuario[] receptores;
Email(Usuario, Usuario,
String, boolean, int)
Sms
private int servidor;
Sms(Usuario, Usuario,
String, int)
Chat
private String cliente;
Chat(Usuario, Usuario,
String, String)
Mensaje
void enviar()
Email(Usuario, Usuario,
String, boolean, int)
Sms
Sms(Usuario, Usuario,
String, int)
Chat
Chat(Usuario, Usuario,
String, String)
Usuario
private String nombre;private String email;private String movil;private String ip;
Usuario(String, String,movil, ip)
Usuario
Usuario(String, String,movil, ip)
7/23/2019 Exmenes Fundamentos Informtica
12/247
Solucin al Apartado 4:
public void enviar() {
if (this.getReceptor().getMovil()== null) {
System.out.println("ERROR: El receptor carece de mvil.");
}
else {
while(this.getTexto().length()>145) {this.setTexto(Smstools.reduce(this.getTexto()));
}
System.out.println(this.getTexto());
}
}
Solucin Text Sem. 2:
1)b 2)c 3)c 4)c 5)b 6)b 7)c 8)a 9)c 10)a
7/23/2019 Exmenes Fundamentos Informtica
13/247
UNIVERSIDAD NACIONAL DE EDUCACIN A DISTANCIA.ESCUELA DE INGENIERATCNICA INDUSTRIAL
EXAMEN DE FUNDAMENTOS DE INFORMTICA (ESPECIALIDAD ELECTRNICA)SEPTIEMBRE2005
NO EST PERMITIDO EL USO DE MATERIAL ADICIONAL
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 cdigo de carrera es 62, el de la asignatura 104 y
examen es de tipo A.
Resuelva el Problema en una hoja aparte (mximo 2 caras), indicando su nombre y el Centro Asociado
en el que ha realizado la prctica.
Primera Parte: Test
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.
2.
Qu se imprime al ejecutarse el siguiente cdigo?
int resultado = 0;int suma = 1;
while (suma < 5)resultado+= suma;
System.out.print (resultado);
a.
0
b. 5
c.
1234
d. No imprimira nada
3.
Qu es la tecnologa plug-and-play?
a.
Un sistema que permite la instalacin de nuevos dispositivos con facilidad. Para que
funcione slo sera necesario enchufar el dispositivo e instalar los drivers adecuados que
vienen con dicho dispositivo. La asignacin del nmero de interrupcin asociada aldispositivo se hace de forma automtica.
b. Un sistema que permite la instalacin de nuevos dispositivos con facilidad. Para que
funcione slo sera necesario enchufar el dispositivo ya que los drivers los detecta de forma
automtica. La asignacin del nmero de interrupcin asociada al dispositivo se hace de
forma manual.
c.
Un sistema que permite la instalacin de nuevos dispositivos con facilidad. Para que
funcione slo sera necesario enchufar el dispositivo ya que los drivers los detecta de forma
automtica. La asignacin del nmero de interrupcin asociada al dispositivo se hace de
forma automtica.
d.
Un sistema que permite la instalacin de nuevos dispositivos. Para que funcione se tendra
que enchufar el dispositivo adems de instalar un conversor para que pueda trabajar de
analgico a digital.
7/23/2019 Exmenes Fundamentos Informtica
14/247
UNIVERSIDAD NACIONAL DE EDUCACIN A DISTANCIA.ESCUELA DE INGENIERATCNICA INDUSTRIAL
EXAMEN DE FUNDAMENTOS DE INFORMTICA (ESPECIALIDAD ELECTRNICA)SEPTIEMBRE2005
NO EST PERMITIDO EL USO DE MATERIAL ADICIONAL
4.
Cual de estas afirmaciones es falsa:
a.
Un array puede estar constituido por objetos de cualquier clase.
b. El valor inicial por defecto de un array es null.
c.
Es posible redimensionar el tamao de un array una vez instanciado.
d. Un array puede ser creado en la misma lnea en la que se declara.
5. Una mquina virtual
a.
hace que un computador se comporte como si fuera otro distinto.
b.
es un computador en la red.
c. es un compilador de alto nivel.
d.
es un compilador de bajo nivel.
6.
Sean Mamfero y Gato dos clases que mantienen una relacin de herencia padre-hijo. Qu
habra que modificar para que el siguiente cdigo sea correcto y por qu?
Animal a; /*Lnea 1*/Gato b; /*Lnea 2*/a= new Animal(); /*Lnea 3*/b=a; /*Lnea 4*/
a.Nada. Es correcto.
b. No se puede asignar un objeto a otro de otra clase, luego cambiamos la lnea 2:Animal b;
c.
Es necesario explicitar el tipo cuando asignamos un objeto a otro objeto perteneciente a una
clase hija, luego cambiamos la lnea 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 lnea 4:b = new (Gato) a;
7.
Un sistema operativo...
a. gestiona los recursos del sistema de forma eficiente.
b.
es bsicamente un compilador.
c. es un componente hardware.
d.
convierte el procesador en multi-procesador.
8. Dada una clase alumno:
public class Alumno{private int edad;public int darEdad(){
return this.edad;}public Alumno(int edad){this.edad=edad;}
}
Cul sera la forma correcta de acceder a la edad de un objeto a de tipo Alumno desde otra
clase?
a. int x=Alumno.edad;
b.
int x= a.edad;
c. int x=Alumno.darEdad(a);
d.
int x=a.darEdad();
9. En la prctica del Rent a Car, qu opcin sera mejor para representar un contrato?
7/23/2019 Exmenes Fundamentos Informtica
15/247
UNIVERSIDAD NACIONAL DE EDUCACIN A DISTANCIA.ESCUELA DE INGENIERATCNICA INDUSTRIAL
EXAMEN DE FUNDAMENTOS DE INFORMTICA (ESPECIALIDAD ELECTRNICA)SEPTIEMBRE2005
NO EST PERMITIDO EL USO DE MATERIAL ADICIONAL
a.
Se creara la clase contrato definiendo como atributos los datos de ste y la composicin de
las clases vehculo y cliente.
b. Se creara la clase contrato definiendo como atributos los datos de ste y los atributos que se
necesiten del vehculo y el cliente.
c. Se creara la clase contrato definiendo como atributos los datos de ste. En el programa main
se definiran las relaciones necesarias entre el objeto contrato y los objetos vehculo y
cliente.
d.
No hara falta la clase contrato, dentro del programa principal se pueden crear variables que
almacenan las fechas del contrato y se relacionen con la creacin de un objeto cliente y un
objeto coche por ejemplo.
10.
Sea la clase A
classA {
voidimprimir () {System.out.print(3);}
}
y la clase B que hereda de A.
classB extendsA {
voidimprimir () {super.imprimir();System.out.print(5);}
publicstaticvoidmain (String [] args) {
B varB = newB();
A varA = varB;
varA.imprimir();
}
}
Qu se imprimira en pantalla?a.
3
b.
5
c. 35
d.
Hay un error de compilacin ya que no se puede asignar un objeto de la clase hija a otro
objeto de la clase padre.
7/23/2019 Exmenes Fundamentos Informtica
16/247
UNIVERSIDAD NACIONAL DE EDUCACIN A DISTANCIA.ESCUELA DE INGENIERATCNICA INDUSTRIAL
EXAMEN DE FUNDAMENTOS DE INFORMTICA (ESPECIALIDAD ELECTRNICA)SEPTIEMBRE2005
NO EST PERMITIDO EL USO DE MATERIAL ADICIONAL
Segunda Parte: Problema
Un controlador que regula la automatizacin de una lavadora cuenta con una serie de componentes que son:
una vlvula, un tambor, un motor y una bomba. El motor se caracteriza por el tiempo de duracin 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. Adems, el tambor tiene un
estado que puede ser lleno o vaco. La vlvula realiza la accin de dar agua al tambor y la bomba realizar la
funcin de sacar agua del tambor. El controlador tambin se caracteriza por tener un detector de nivel queindica 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
mtodos que tiene cada una (slo indicarlos, sin escribir su cdigo). (4 puntos)
2.
Supongamos ahora que se quiere introducir en el controlador la funcionalidad programa de Lavado
en Fro. Este programa debera ejecutar los siguientes pasos:
a.
La vlvula 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 vaco no se indica en el detector de nivel)
c.
El motor realiza 50 ciclos de lavado, asignando al motor 40 segundos de duracin de ciclo. d.
La bomba vaca al tambor de agua.
e.
Se comprueba que el tambor est vaco y se indica en el detector de nivel (mientras el
tambor permanece lleno no se indica en el detector de nivel)
Escribir el cdigo de dicho mtodo. (6 puntos)
Solucin Text:
1)d 2)d 3)c 4)c 5)a 6)c 7)a 8)d 9)a 10)c
7/23/2019 Exmenes Fundamentos Informtica
17/247
Solucin al apartado 1:
Nota: En esta solucin hemos dejado el constructor por defecto por lo que no aparece en el
diseo anterior.
Solucin al apartado 2:
public void lavado_en_frio (){
// 1. Llenar el tambor de agua mediante la vlvula
valvula.llenarTambor(tambor);
// 2. Detectar que el tambor est lleno indicndolo en el detector de nivel.
while (tambor.getEstado().equals("vacio"))
System.out.println("Todava no se ha llenado el tambor");
detectorNivel = true;
// 3. Hacer que el motor realice 50 ciclos asignando al motor 40 seg. por cada sentido del giro.
motor.setSegundos(40);
for (int nCiclos = 0; nCiclos < 50; nCiclos++)motor.realizarCiclo();
// 4. Vaciar el tambor de agua mediante la bomba.
bomba.vaciarTambor(tambor);
// 5. Detectar que el tambor est vaco indicndoselo en el detector de nivel.
while (tambor.getEstado().equals("lleno"))
System.out.println("Todava no se ha vaciado el tambor");
detectorNivel = false;
}
Controlador
private boolean detectorNivel
private Motor motor;
private Tambor tambor;
private Bomba bomba;
private Valvula valvula;
boolean getDetectorNivel()
void setDetectorNivel(boolean)
Motor getMotor()
void setMotor(Motor)
Tambor getTambor()
void setTambor(Tambor)
Bomba getBomba()
void setBomba(Bomba)
Valvula getValvula()
void setValvula(Valvula)
Motor
private String sentGiro;
private Boolean estado;
private int segundos;
String getSentGiro()
void setSentGiro(String)
Boolean getEstado()
void setEstado(Boolean)
int getSegundos()
void setSegundos(int)
void setGiro(String)
void realizarCiclo()
Tambor
private String estado;
String getEstado()
void setEstado(String)
Valvula
void llenarTambor(Tambor)
Bomba
void vaciarTambor(Tambor)
Controlador
private boolean detectorNivel
private Motor motor;
private Tambor tambor;
private Bomba bomba;
private Valvula valvula;
boolean getDetectorNivel()
void setDetectorNivel(boolean)
Motor getMotor()
void setMotor(Motor)
Tambor getTambor()
void setTambor(Tambor)
Bomba getBomba()
void setBomba(Bomba)
Valvula getValvula()
void setValvula(Valvula)
Controlador
private boolean detectorNivel
private Motor motor;
private Tambor tambor;
private Bomba bomba;
private Valvula valvula;
boolean getDetectorNivel()
void setDetectorNivel(boolean)
Motor getMotor()
void setMotor(Motor)
Tambor getTambor()
void setTambor(Tambor)
Bomba getBomba()
void setBomba(Bomba)
Valvula getValvula()
void setValvula(Valvula)
Motor
private String sentGiro;
private Boolean estado;
private int segundos;
String getSentGiro()
void setSentGiro(String)
Boolean getEstado()
void setEstado(Boolean)
int getSegundos()
void setSegundos(int)
void setGiro(String)
void realizarCiclo()
Motor
private String sentGiro;
private Boolean estado;
private int segundos;
String getSentGiro()
void setSentGiro(String)
Boolean getEstado()
void setEstado(Boolean)
int getSegundos()
void setSegundos(int)
void setGiro(String)
void realizarCiclo()
Tambor
private String estado;
String getEstado()
void setEstado(String)
Tambor
private String estado;
String getEstado()
void setEstado(String)
Valvula
void llenarTambor(Tambor)
Valvula
void llenarTambor(Tambor)
Bomba
void vaciarTambor(Tambor)
Bomba
void vaciarTambor(Tambor)
7/23/2019 Exmenes Fundamentos Informtica
18/247
7/23/2019 Exmenes Fundamentos Informtica
19/247
7/23/2019 Exmenes Fundamentos Informtica
20/247
7/23/2019 Exmenes Fundamentos Informtica
21/247
7/23/2019 Exmenes Fundamentos Informtica
22/247
7/23/2019 Exmenes Fundamentos Informtica
23/247
Solucin Primera Semana Feb 2006
Solucin apartado 1
Solucin apartados 2 y 3.
i mpor t j ava. ut i l . Vect or ;publ i c cl ass Venta{
pri vat e Vect or obr as_vendi das = new Vector ( ) ;
publ i c Vent a ( ) {}publ i c Vent a ( Vect or obr as_vendi das){t hi s. obr as_vendi das = obr as_vendi das; }
publ i c voi d addObra( Obra obr a){obr as_vendi das. addEl ement ( obr a) ; }
publ i c Vect or getObr as_vendi das( ){return obr as_vendi das; }
publ i c voi d setObr as_vendi das( Vect or obr as_vendi das){thi s. obr as_vendi das = obr as_vendi das; }
publ i c doubl e i mport eVent a( ){doubl e cost eTot al = 0;Obra ob;f or ( i nt i =0; i < obr as_vendi das. si ze( ) ; i ++){
ob = ( Obr a)obr as_vendi das. el ement At ( i ) ;cost eTot al += ob. cal cul ar I mpor t e( ) ;
}return cost eTot al ;
}}
La estructura ms adecuada sera la del Vector ya que no se sabe a priori las ventas quese van a realizar.
No se han puesto en el esquema pero tambin seran necesarios los mtodos get y set de cada atributo en cada clase.
Ventaprivate Vector obras_vendidas = new Vector();
public Venta ()
public Venta (Vector obras_vendidas)
public void addObra(Obra obra)
public double importeVenta()
Obra (Abstract)private int id;
private String nombre;
private String autor;
private String editorial;private int aoEdiccion;
private double precio;
public Obra(int id, String nombre,
String autor, String editorial, int
aoEdiccion, double precio)
public abstract double
calcularImporte()
Comicprivate String nDibujante;
private static final double iva = 10;
public Obra(int id, String nombre,
String autor, String editorial, intaoEdiccion, double precio,
String nDibujante)
public double calcularImporte()
Libroprivate static final double iva = 3;
public Libro(int id, String nombre,
String autor, String editorial, int
aoEdiccion, double precio)public double calcularImporte()
Revistaprivate int numSerie;
private static final double iva = 7;
public Revista(int id, String
nombre, String autor, Stringeditorial, int aoEdiccion, double
precio, int numSerie)
public double calcularImporte()
No se han puesto en el esquema pero tambin seran necesarios los mtodos get y set de cada atributo en cada clase.
Ventaprivate Vector obras_vendidas = new Vector();
public Venta ()
public Venta (Vector obras_vendidas)
public void addObra(Obra obra)
public double importeVenta()
Ventaprivate Vector obras_vendidas = new Vector();
public Venta ()
public Venta (Vector obras_vendidas)
public void addObra(Obra obra)
public double importeVenta()
Obra (Abstract)private int id;
private String nombre;
private String autor;
private String editorial;private int aoEdiccion;
private double precio;
public Obra(int id, String nombre,
String autor, String editorial, int
aoEdiccion, double precio)
public abstract double
calcularImporte()
Obra (Abstract)private int id;
private String nombre;
private String autor;
private String editorial;private int aoEdiccion;
private double precio;
public Obra(int id, String nombre,
String autor, String editorial, int
aoEdiccion, double precio)
public abstract double
calcularImporte()
Comicprivate String nDibujante;
private static final double iva = 10;
public Obra(int id, String nombre,
String autor, String editorial, intaoEdiccion, double precio,
String nDibujante)
public double calcularImporte()
Comicprivate String nDibujante;
private static final double iva = 10;
public Obra(int id, String nombre,
String autor, String editorial, intaoEdiccion, double precio,
String nDibujante)
public double calcularImporte()
Libroprivate static final double iva = 3;
public Libro(int id, String nombre,
String autor, String editorial, int
aoEdiccion, double precio)public double calcularImporte()
Libroprivate static final double iva = 3;
public Libro(int id, String nombre,
String autor, String editorial, int
aoEdiccion, double precio)public double calcularImporte()
Revistaprivate int numSerie;
private static final double iva = 7;
public Revista(int id, String
nombre, String autor, Stringeditorial, int aoEdiccion, double
precio, int numSerie)
public double calcularImporte()
Revistaprivate int numSerie;
private static final double iva = 7;
public Revista(int id, String
nombre, String autor, Stringeditorial, int aoEdiccion, double
precio, int numSerie)
public double calcularImporte()
Solucin Text Sem. 1:
1)c 2)b 3)a 4)a 5)b 6)a 7)d 8)c 9)d 10)d
7/23/2019 Exmenes Fundamentos Informtica
24/247
7/23/2019 Exmenes Fundamentos Informtica
25/247
7/23/2019 Exmenes Fundamentos Informtica
26/247
7/23/2019 Exmenes Fundamentos Informtica
27/247
7/23/2019 Exmenes Fundamentos Informtica
28/247
PROBLEMA
Una planta de tratamiento de piedras dispone de un conjunto de mquinas, siendo
stas de dos tipos: cortadoras y pulidoras. Un tipo de piedra se caracteriza por su
nombre y su resistencia. Cada maquina se caracteriza por su identificador. Por otro
lado, todas las mquinas se caracterizan por un lmite mximo de resistencia de lapiedra que aceptan. Las cortadoras en particular requieren adems un mnimo de
resistencia de la piedra para que esta no se deshaga.
Con el objetivo de controlar la usabilidad de las mquinas de la planta, se desea
disponer de un sistema que, ante un tipo de piedra, pueda mostrar la lista de
identificadores de mquinas de la planta, y para cada identificador, si acepta o no
dicho tipo de piedra.
Se pide
1. Realizar un esquema indicando las clases y relaciones necesarias para laimplementacin del sistema. Indicar tambin los atributos y mtodos
necesarios y sus tipos. (4 puntos)
2. Implementar la clase que gestione la lista de mquinas (planta) y elmtodo que muestra la lista. (3 puntos)
3. Sobre el sistema diseado, generar el cdigo que permita:i. Crear un nuevo tipo de piedra de resistencia 5 y una nueva
mquina pulidora con resistencia mxima de piedra 4. (1 punto)
ii. Crear Crear un objeto tipo Planta y aadirle dicha mquina.(1 punto)
iii. Comprobar si la mquina acepta la piedra. (1 punto)
Requisitos de diseo del ejercicio
1. El diseo de las clases es independiente de criterios de eficiencia.
2. El objetivo del sistema es concreto: controlar la usabilidad de las mquinas.
3. No hay ambigedad en cuanto a modelos posibles.
Objetivos del ejercicio:
1. El alumno debe identificar la jerarqua de herencia dada por los tipos de mquina, con
peso_mximo y resistencia_mxima como atributos comunes, y resistencia_mnima como
atributo particular de las pulidoras.
2. El alumno debe definir una clase planta con un vector de mquinas, no de pulidoras ni
cortadoras, dado que para el control de la usabilidad slo interesan los identificadores demquinas.
3. El alumno debe introducir un mtodo admitePiedra en la superclase mquina y en la
subclase pulidora. Este mtodonopuede estar en la clase planta porque la relacin de
herencia no le da acceso al atributo resistencia mnima de la subclase pulidora. En la
superclase mquinasies necesario dado que a este mtodo se accede desde la clase
planta. En la subclase pulidora estambien necesario dado que el mtodo ha de
considerar un atributo propio de la subclase.
(Una opcin alternativa es definir un mtodo admitePeso solo en la superclase, y un mtodo
admiteResistencia en ambas clases).
4. El alumno debe saber implementar un recorrido simple sobre los elementos de un vector.
7/23/2019 Exmenes Fundamentos Informtica
29/247
Nota: La clase Maquina y Pulidora tendran los mismos atributos y mtodos. Al no
diferenciarse se podra decir que una pulidora es una mquina, no siendo necesario crear
una clase Pulidora.
Maquina
private String id;private int resistenciaMax;
Cortadora
private int resistenciaMin;
Planta
private Vector maquinas;
public void maquina(id,int)public String getId()
public void setId(String)public int getResistenciaMax()
public void setResistenciaMax(int)public boolean aceptaPiedra(Piedra)
public void Cortadora(id,int,int)public int getResistenciaMin()
public void setResistenciaMin(int)public boolean aceptaPiedra(Piedra)
public void mostrarLista()public void aadirMaquina(maquina)
Piedra
private String nombre;private int resistencia;
public void Piedra(String, int)public void setResistencia(int)
public int getResistencia()public void setNombre(String)
public String getNombre()
7/23/2019 Exmenes Fundamentos Informtica
30/247
IMPLEMENTACIN DE LA CLASE PLANTA
Import java.util.Vector;
public class Planta{
private Vector maquinas;
public void aadirMaquina(Maquina maquina){this.maquinas.add(maquina);
}
public void mostarLista(Piedra p){Maquina maquina;for (int i=0;i < maquinas.length();i++){
maquina = (Maquina) maquinas.elementAt(i);if (maquina.aceptaPiedra(p)){
System.out.println MAQUINA+ maquina.getId()+ SI;}else{
System.out.println MAQUINA+maquina.getId()+ NO;}
}}
LLAMADAS A MTODOS
/* DEFINICIN 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.aadirMaquina(pulidora);if (pulidora.aceptaPiedra(piedra))
System.out.prinln(La piedra es aceptada);else
System.out.prinln(La piedra no es aceptada);
Solucin Text Sem. 2:
1)b 2)c 3)b 4)c 5)d 6)a 7)b 8)b 9)a 10)b
7/23/2019 Exmenes Fundamentos Informtica
31/247
ORIGINAL
7/23/2019 Exmenes Fundamentos Informtica
32/247
7/23/2019 Exmenes Fundamentos Informtica
33/247
Solucin tipo A:
1)C 2)A 3)C 4)D 5)B 6)C 7)C 8)C 9)C 10)C
7/23/2019 Exmenes Fundamentos Informtica
34/247
FUNDAMENTOS DE LA INFORMTICA
SOLUCIN AL EJERCICIO DE EXAMEN DE SEPTIEMBRE 2006
Se necesita una aplicacin informtica para la venta de entradas en un multi-cine.
Cada sesin se caracteriza por la pelcula proyectada, la sala en la que se proyecta,
el da y la hora de comienzo de la pelcula, y el nmero de entradas vendidas.
Todas las salas tienen el mismo nmero de asientos numerados del uno al cien.
Una sesin puede ser numerada o no. Si la sesin es numerada es necesario
recordar qu asientos han sido vendidos. Si es no numerada basta con llevar el
recuento de entradas vendidas.
La funcionalidad del sistema debe incluir:
1. Un mtodo sugerir_asiento para sesiones numeradas que proponga
el primer asiento no vendido (segn su numeracin). Si la sala est
completa el mtodo debe imprimir sala completa.
2. Un mtodo comprar_entrada que, para sesiones no numeradas
incremente el nmero de asientos vendidos. Si no quedan asientos
libres el mtodo debe imprimir sala completa. Para sesiones
numeradas el mtodo recibe como entrada un nmero de asiento. Si el
asiento est libre lo vende. Si est vendido imprime asiento vendido.
Se pide:
1. Dibujar un esquema con las clases necesarias para este programa,
indicando y comentando brevemente los atributos, mtodos y relaciones
entre clases (slo indicarlos, sin escribir cdigo) (3 puntos)
Comentarios al esquema:
- Las sesiones numeradas y no numeradas se comportan de manera distinta(distintos mtodos y atributos), luego deberan ser dos clases distintas.
- Ambas clases comparten algunos atributos, luego definimos una clase padresesin.
- Solo existen sesiones numeradas o no numeradas, por lo que la clase padresesin es abstracta. Adems, esta clase padre no tiene constructor.
- Las sesiones numeradas necesitan una estructura de almacenamiento, mientrasque en las sesiones no numeradas basta con un contador de entradas vendidas,por lo que el recuento de asientos no en un atributo comn en ambas clases.
- El mtodo comprar entrada posee argumentos de entrada distintos en cadasubclase, por lo que se trata en realidad de mtodos distintos aunque se llamende la misma forma y no pueden definirse en la clase padre.
7/23/2019 Exmenes Fundamentos Informtica
35/247
2. Qu estructura sera la ms adecuada para poder almacenar qu asientos
han sido reservados? Por qu? (1 punto)
La estructura de datos ms adecuada sera un ARRAY, dado que el nmero de asientosmximo es conocido y no mucho mayor que el nmero de asientos que se ocuparn.
public abstract class Sesin
private String pelcula;private int sala;private int dia;private int hora
public SesionNumerada(String pelcula,int sala, int dia, int hora)
public class SesinNumerada
private boolean[] asientosVendidos
public SesionNumerada(String pelcula,int sala, int dia,int hora)
public int sugerirAsiento();
public void comprarntrada(int);
public class SesinNoNumerada
private int numntradasVendidas;
public SesionNoNumerada(Stringpelcula, int sala, int dia, int hora)
public void comprarntrada();
7/23/2019 Exmenes Fundamentos Informtica
36/247
2. Implementar el/los mtodos comprar entrada e indicar su localizacin en
las clases. (3 puntos)
En la clase SesinNoNumerada tendramos
public void comprarntrada()! i" (this#NumntradasVendidas$%&'')! Sstem#out#println(Sala *ompleta+);
else! this#NumntradasVendidas-%&;
En la clase SesinNumerada:
public void comprarntrada(int numAsiento)! i" (numAsiento$&'')!
Sstem#out#println(Solo se dispone de &'' asientos+);else!
i" (this#asientosVendidos[numAsiento])!Sstem#out#println(Asiento .cupado+);else! this#asientosVendidos[numAsiento]%true;
3. Escribir el cdigo necesario para:
a. Crear una sesin numerada de la pelcula ET el da 5 a las 18
horas.
SesionNumerada sesion&%ne/ SesionNumerada( 0+,&,1,&2)
b. Crear una sesin no numerada de la pelcula COMANDO el da 5
a las 20 horas.SesionNumerada sesion3% ne/ SesionNoNumerada( *.4AN5.+,&,1,3')
c. Comprar 2 entradas con asientos 1 y 5 en la sesin numerada.sesioncomprarntrada(&);sesioncomprarntrada(3);
d. Pedir al sistema que sugiera un asiento para la sesin numerada.
Cul sera la respuesta del sistema?sesionsugerirAsiento();
5evolvera el asiento 3#
7/23/2019 Exmenes Fundamentos Informtica
37/247
Reserva
7/23/2019 Exmenes Fundamentos Informtica
38/247
Solucin tipo A Reserva:
1)A 2)B 3)C 4)B 5)C 6)B 7)B 8)D 9)B 10)C
Reserva
7/23/2019 Exmenes Fundamentos Informtica
39/247
SOLUCIN EXAMEN RESERVA 2006
1. Diseo de clase
2. Implementar la clase Letra del tesoro.
i mpor t j ava. ut i l . Gr egor i anCal endar ;i mpor t j ava. ut i l . Cal endar;
publ i c cl ass Letra ext ends Deuda {f i nal pr i vat e i nt i aosPl azo = 2;
publ i c Let r a (Gr egor i anCal endar gcFechaSuscr i pci on, i nt dTi poI nt er es, i nt i Val or){thi s. gcFechaSuscr i pci on = gcFechaSuscr i pci on;i f ( ( dTi poI nteres > 0) &&( dTi poI nt eres
7/23/2019 Exmenes Fundamentos Informtica
40/247
3. Resolviendo el ejemplo de Manuela. Ejemplo:
Gr egor i anCal endar f echa1 = new Gr egor i anCal endar ( 2005, 10, 1) ;Gr egor i anCal endar f echa2 = new Gr egor i anCal endar ( 2004, 6, 1) ;Let r a l et r a1 = new Let r a( f echa1, 4, 500) ;Let r a l et r a2 = new Let r a( f echa2, 5, 900) ;
Gr egor i anCal endar f echa3 = new Gr egor i anCal endar ( 2003, 6, 10) ;Bono bono1 = new Bono( f echa3, 7, 3000) ;Bono bono2 = new Bono( f echa3, 7, 3000) ;
Cart era car t era1 = new Car t er a( ) ;car t er a1. addDeuda( l et r a1) ;car t er a1. addDeuda( l et r a2) ;cart era1. addDeuda(bono1) ;cart era1. addDeuda(bono2) ;
b.
Implementar el mtodo calcularTotalIntereses, mtodo de la claseCartera.
publ i c doubl e cal cul ar Tot al I nt er eses ( Gr egor i anCal endar f echa){doubl e t otal Deudas = 0;Deuda auxDeuda;
f or ( i nt i =0; i
7/23/2019 Exmenes Fundamentos Informtica
41/247
TIPO 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.
Responda el test en una hoja de lectura ptica. No olvide rellenar en dicha hoja el cdigo de carrera, el
de la asignatura y el tipo de examen.
Resuelva el Problema en una hoja aparte (mximo 2 caras), indicando su nombre y el Centro Asociado enel que ha realizado la prctica.
FEBRERO 2007 Primera semana
Apellidos..Nombre..DNI
Primera Parte: Test
1. Cul de las siguientes memorias no es voltil?
a.
Memoria cach.b. Memoria RAM.
c.
Memoria virtual.
d. Memoria ROM.
2. Qu es un hub?
a. Es un dispositivo de distribucin de comunicaciones que permite la conexin de ms
perifricos.
b. Es un bus como PCI.
c.
Es un protocolo de comunicacin como los puertos serie y paralelo.
d. Es un comunicador unidireccional entre el computador y los perifricos.
3. Entre las funciones fundamentales del sistema operativo no est:
a. El control de los procesos de entrada/salida.
b. La asignacin de recursos a los procesos.
c. La gestin de ficheros.
d.
Traducir cdigo fuente a cdigo objeto.
4. De las siguientes sentencias, cul 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 mdulos de programa que necesite el proceso de ejecucin.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 utilizara mejor en la prctica a la hora de almacenar los modelos dentro de la clase
GestinMaquinaria?
a. Un array de tamao N.
b. Una array de tamao ilimitado.
c. Un ArrayList.
d.
Una matriz de N x N.
6.
Cul de los siguientes tipos no es primitivo?
a. 1.32
b. false
c. b
d. mundo
7/23/2019 Exmenes Fundamentos Informtica
42/247
7. Es correcta la siguiente sentencia?
Syst em. out . pr i nt l n( Mat h. sqr t ( 25) ) ;
a.
No es correcta ya que no se puede llamar a un mtodo de una clase sin crearse previamente unobjeto.
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 mtodo sqrt(int).
8. Es correcta la implementacin de la siguiente clase?
publ i c cl ass A{pr i vat e i nt x;
pr i vat e i nt y;publ i c A( i nt x) {t hi s. x=x; }publ i c A( i nt x, i nt y) {t hi s. x=x; t hi s. y=y; }
}
a. No, ya que dentro de una clase slo 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 parmetros d entrada a los constructores no se pueden llamar de la misma forma
que los atributos de la clase.
9. Es correcto el siguiente cdigo?
publ i c cl ass B{pr i vat e i nt b; }publ i c cl ass C extends B {pr i vat e i nt c; }publ i c cl ass D extends B {pr i vat e i nt d; }
Dent r o del mt odo mai n se r eal i zan l as si gui ent essent enci as:
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.
7/23/2019 Exmenes Fundamentos Informtica
43/247
10.Qu resultado da la siguiente estructura de control? El operador % es el operador resto.
i nt x = 2;do{
try{i f ( x%2 == 0)throw new Except i on( ) ;
x++;}cat ch( Except i on e) {x- - ; }f i nal l y
{x=x+2;Syst em. out . pr i nt ( x + " " ) ;
}}whi l e ( x < 10) ;
a. 3 6 7 10b. 4 6 8 10c.
3 5 7 9d. 3 6 8 10
Segunda Parte: Problema
Un circuito elctrico puede estar formado, al menos, por una serie de resistencias elctricas (R) medidas enohmios y una fuente elctrica que es capaz de generar una diferencia de potencial V (que es la que se
almacena en el circuito). Dentro de los circuitos podemos ver que hay dos tipos, los circuitos en serie y los
circuitos en paralelo. Los circuitos en serie calculan la intensidad con la siguiente frmula de la ley de Ohm
V= I(R1 + ... + Rn) mientras que los circuitos en paralelo calculan la intensidad con la siguiente formula I= V
(1/R1 + + 1/Rn).
1. Dibujar un diagrama de clases con los atributos y mtodos necesarios, incluidos los mtodos constructores.
(2 puntos)
2. Implementar la clase circuito serie. (2 puntos)
3. Implementar la creacin del siguiente objeto de un circuito en serie:
a.
Circuito con 3 resistencias de 3, 5 y 6 ohmios y una fuente de alimentacin cuyo potencial es
medido a 4 voltios. (1 punto)
b. Hacer la llamada al mtodo correspondiente. Qu resultado dara por pantalla? (1 punto)
4. Definimos un circuito mixto como una composicin donde puede haber circuitos en serie y/o circuitos en
paralelo. Implementar un mtodo 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)
Solucin test febrero 2007 primera semana tipo A:
1D, 2A, 3D, 4C, 5C, 6D, 7C, 8C, 9C, 10A
7/23/2019 Exmenes Fundamentos Informtica
44/247
7/23/2019 Exmenes Fundamentos Informtica
45/247
Problema 1 semana Febrero 2007 Electrnica-Electricidad
Apartado 1
Apartado 2
i mpor t j ava. ut i l . Ar r ayLi s t ;publ i c cl ass Ci r cui t oSer i e ext ends Ci r cui t o{
publ i c Ci rcui t oSer i e ( ) {super ( ) ; }publ i c Ci r cui t oSer i e ( doubl e v){super ( v ) ;
}publ i c doubl e cal cul ar I nt ensi dadCi r cui t o( ){
doubl e t ot al Resi st enci as = 0;doubl e i nt ensi dad;f or ( doubl e r : r es i stenci as)
t ot al Resi st enci as += r ;i nt ensi dad = v / t ot al Resi st enci as;return i nt ensi dad;
}}
Apartado 3
publ i c st at i c voi d mai n ( St r i ng[ ] ar gs){/ / 3. a. Se crea un ci r cui t o en ser i eCi r cui t oSer i e cs = new Ci rcui t oSer i e( ) ;/ / Se aaden l as resi st enci as una a unacs. addResi st enci a( 3) ;cs. addResi st enci a( 5) ;cs. addResi st enci a( 6) ;/ / Se aade el Vcs. set V( 4) ;/ / 3. b. Ll amada a cal cul ar I nt ensdi dad y se i mpr i me por pant al l a
System. out . pr i nt l n( cs. cal cul ar I nt ensi dadCi r cui t o( ) ) ;}
Circuito (Abstract)
protected ArrayList resistencias = new ArrayList ();protected double v;
public Circuito ()
public Circuito (double v)
public double getV()
public void setV(double v)
public void addResistencia(double r)
public void removeResistencia(double r)
public abstract double calcularIntensidadCircuito();
CircuitoSerie
public CircuitoSerie ()
public CircuitoSerie (double v)
public double calcularIntensidadCircuito()
CircuitoParalelo
public CircuitoParalelo ()
public CircuitoParalelo (double v)
public double calcularIntensidadCircuito()
CircuitoMixto
private ArrayList circuitos = new ArrayList ();
public void addResistencia(double r)
public void removeCircuito(Circuito c)
public double calcularIntensidadTotal()
Circuito (Abstract)
protected ArrayList resistencias = new ArrayList ();protected double v;
public Circuito ()
public Circuito (double v)
public double getV()
public void setV(double v)
public void addResistencia(double r)
public void removeResistencia(double r)
public abstract double calcularIntensidadCircuito();
CircuitoSerie
public CircuitoSerie ()
public CircuitoSerie (double v)
public double calcularIntensidadCircuito()
CircuitoParalelo
public CircuitoParalelo ()
public CircuitoParalelo (double v)
public double calcularIntensidadCircuito()
Circuito (Abstract)
protected ArrayList resistencias = new ArrayList ();protected double v;
public Circuito ()
public Circuito (double v)
public double getV()
public void setV(double v)
public void addResistencia(double r)
public void removeResistencia(double r)
public abstract double calcularIntensidadCircuito();
Circuito (Abstract)
protected ArrayList resistencias = new ArrayList ();protected double v;
public Circuito ()
public Circuito (double v)
public double getV()
public void setV(double v)
public void addResistencia(double r)
public void removeResistencia(double r)
public abstract double calcularIntensidadCircuito();
CircuitoSerie
public CircuitoSerie ()
public CircuitoSerie (double v)
public double calcularIntensidadCircuito()
CircuitoSerie
public CircuitoSerie ()
public CircuitoSerie (double v)
public double calcularIntensidadCircuito()
CircuitoParalelo
public CircuitoParalelo ()
public CircuitoParalelo (double v)
public double calcularIntensidadCircuito()
CircuitoParalelo
public CircuitoParalelo ()
public CircuitoParalelo (double v)
public double calcularIntensidadCircuito()
CircuitoMixto
private ArrayList circuitos = new ArrayList ();
public void addResistencia(double r)
public void removeCircuito(Circuito c)
public double calcularIntensidadTotal()
CircuitoMixto
private ArrayList circuitos = new ArrayList ();
public void addResistencia(double r)
public void removeCircuito(Circuito c)
public double calcularIntensidadTotal()
7/23/2019 Exmenes Fundamentos Informtica
46/247
Apartado 4
publ i c doubl e cal cul ar I nt ensi dadTot al ( ){doubl e i nt ensi dadTot al = 0;f or (Ci rcui t o c: ci rcui tos )
i nt ensi dadTot al += c. cal cul ar I nt ensi dadCi r cui t o( ) ;return i nt ensi dadTot al ;
}
7/23/2019 Exmenes Fundamentos Informtica
47/247
TIPO 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.
Responda el test en una hoja de lectura ptica. No olvide rellenar en dicha hoja el cdigo de carrera, el
de la asignatura y el tipo de examen.
Resuelva el Problema en una hoja aparte (mximo 2 caras), indicando su nombre y el Centro Asociado enel que ha realizado la prctica.
FEBRERO 2007 Segunda Semana
Apellidos..Nombre..DNI
Primera Parte: Test
1. Cul de las siguientes memorias no es voltil?
a.
Memoria cach.b. Memoria RAM.
c.
Memoria virtual.
d. Memoria ROM.
2. Qu es un hub?
a. Es un dispositivo de distribucin de comunicaciones que permite la conexin de ms
perifricos.
b. Es un bus como PCI.
c.
Es un protocolo de comunicacin como los puertos serie y paralelo.
d. Es un comunicador unidireccional entre el computador y los perifricos.
3. Entre las funciones fundamentales del sistema operativo no est:
a. El control de los procesos de entrada/salida.
b. La asignacin de recursos a los procesos.
c. La gestin de ficheros.
d.
Traducir cdigo fuente a cdigo objeto.
4. De las siguientes sentencias, cul 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 mdulos de programa que necesite el proceso de ejecucin.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 utilizara mejor en la prctica a la hora de almacenar los modelos dentro de la clase
GestinMaquinaria?
a. Un array de tamao N.
b. Una array de tamao ilimitado.
c. Un ArrayList.
d.
Una matriz de N x N.
6.
Cul de los siguientes tipos no es primitivo?
a. 1.32
b. false
c. b
d. mundo
7/23/2019 Exmenes Fundamentos Informtica
48/247
7. Es correcta la siguiente sentencia?
Syst em. out . pr i nt l n( Mat h. sqr t ( 25) ) ;
a.
No es correcta ya que no se puede llamar a un mtodo de una clase sin crearse previamente unobjeto.
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 mtodo sqrt(int).
8. Es correcta la implementacin de la siguiente clase?
publ i c cl ass A{pr i vat e i nt x;
pr i vat e i nt y;publ i c A( i nt x) {t hi s. x=x; }publ i c A( i nt x, i nt y) {t hi s. x=x; t hi s. y=y; }
}
a. No, ya que dentro de una clase slo 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 parmetros d entrada a los constructores no se pueden llamar de la misma forma
que los atributos de la clase.
9. Es correcto el siguiente cdigo?
publ i c cl ass B{pr i vat e i nt b; }publ i c cl ass C extends B {pr i vat e i nt c; }publ i c cl ass D extends B {pr i vat e i nt d; }
Dent r o del mt odo mai n se r eal i zan l as si gui ent essent enci as:
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.
7/23/2019 Exmenes Fundamentos Informtica
49/247
10.Qu resultado da la siguiente estructura de control? El operador % es el operador resto.
i nt x = 2;do{
try{i f ( x%2 == 0)throw new Except i on( ) ;
x++;}cat ch( Except i on e) {x- - ; }f i nal l y
{x=x+2;Syst em. out . pr i nt ( x + " " ) ;
}}whi l e ( x < 10) ;
a. 3 6 7 10b. 4 6 8 10c.
3 5 7 9d. 3 6 8 10
Segunda Parte: Problema
Un circuito elctrico puede estar formado, al menos, por una serie de resistencias elctricas (R) medidas enohmios y una fuente elctrica que es capaz de generar una diferencia de potencial V (que es la que se
almacena en el circuito). Dentro de los circuitos podemos ver que hay dos tipos, los circuitos en serie y los
circuitos en paralelo. Los circuitos en serie calculan la intensidad con la siguiente frmula de la ley de Ohm
V= I(R1 + ... + Rn) mientras que los circuitos en paralelo calculan la intensidad con la siguiente formula I= V
(1/R1 + + 1/Rn).
1. Dibujar un diagrama de clases con los atributos y mtodos necesarios, incluidos los mtodos constructores.
(2 puntos)
2. Implementar la clase circuito serie. (2 puntos)
3. Implementar la creacin del siguiente objeto de un circuito en serie:
a.
Circuito con 3 resistencias de 3, 5 y 6 ohmios y una fuente de alimentacin cuyo potencial es
medido a 4 voltios. (1 punto)
b. Hacer la llamada al mtodo correspondiente. Qu resultado dara por pantalla? (1 punto)
4. Definimos un circuito mixto como una composicin donde puede haber circuitos en serie y/o circuitos en
paralelo. Implementar un mtodo 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)
Solucin test febrero 2007 segunda semana tipo A:
1A, 2A, 3A, 4A, 5D, 6C, 7A, 8A,9C, 10C
7/23/2019 Exmenes Fundamentos Informtica
50/247
Se desea implementar un sistema para la gestin de zonasde tala. Cadazonase caracteriza por el nmero de rboles que posee, pero adems, haydos tipos de zonas, las zonas de tala anual y las zonas de talaespordica. Las zonas de tala espordica se talan completamente cada 10aos, y se caracterizan por el ao de la ltima poda. Las zonas de talaanual se talan todos los aos pero slo un cierto porcentae de rboles.Cada zona de tala anual tiene asociada dicho porcentae. Sabiendo que lacantidad de madera promedio que se obtiene de un rbol es de 1000!ilo"ramos, el sistema debe permitir calcular, dado un ao, la cantidadde madera que se espera obtener dicho ao en el conunto de zonas"estionadas.
1. #ibuar un esquema con las clases necesarias para este pro"rama,indicando los atributos y m$todos en caso de haberlos %sloindicarlos, sin escribir su cdi"o&. %' puntos&
(. )mplementar el*los m$todos que calculen la cantidad de maderae+trada dado un ao en una zona determinada y en todas las zonas.
-#nde se encontrara cada uno de dichos m$todos%' puntos&/. )mplementar en cdi"o 2 la creacin de los si"uientes obetos %(
puntos&3a. 4na zona de tala espordica que con 1000 rboles que se
tal en 1556.b. 4na zona de tala anual con (000 rboles en donde se tala
anualmente un 107 de los rboles.c. 4n obeto "estin de zonas que incluya ambas zonas.
EJERCICIO 1:
Zona GestorZonasprivate ArrayList zonas;
public Zona(String nombre,
int numArboles);
/!eto"os get y set/
public int calcula#g!a"era(int a$o)
public GestorZonas();
public int calcula#g!a"era(int a$o)
public voi" a$a"irZona(Zona zona)
Zona%ala&spora"ica
private String nombre;
private int numArboles;
private int ultimoA$o%ala;
Zona%alaAnual
private int porcenta'e;
public Zona(String nombre,
int numArboles);
public int getltimoA$o%ala();public voi" setltimoA$o%ala(int a$o);
public int calcula#g!a"era(int a$o);
public Zona(String nombre,
int numArboles);
public int getorcenta'e();public voi" setorcenta'e(int porcent);
public int calcula#g!a"era(int a$o);
7/23/2019 Exmenes Fundamentos Informtica
51/247
EJERCICIO 2
En primer lugar, ser necesario un mtodo en la claseestion!onas" #ue sume la madera recogida en las distintas zonas#ue gestiona$
public void calculaKgMadera (int ao){int kgs=0;for (int i=0;i < zonas.size();i++){
kgs=kgs+this.zonas.get(i).calculaKgMadera(ao);}
}return kgs;
}
%ado #ue el mtodo #ue calcula la cantidad de madera generada en
un a&o en una zona depende del tipo de zona, este mtodo de'eestar implementado en am'as clases (i)as de !ona$ *dems, estemtodo tendr #ue estar tam'in de+inido en la clase padre !ona,para #ue pueda aplicarse polimor+irsmo$ Es decir, para #ue puedaaccederse al mtodo sin necesidad de conocer a #u su'clasere+erencia el o')eto$
En la clase !onaalaEspordica tendr-amos
public int calculaKgMadera(int ao){
int kgs=0;/*Si el ao fue un ao de tala(la diferencia ente el ltimo ao de talay el ao en cuestines mltiplo del intervalo entre talas 10)*/if ((ao-ultimo_ao_tala)%10)==0){
kgs=numArboles*1000;}return kgs;
}
En la clase !onaala*nual tendr-amos:
public int calculaKgMadera(int ao){int kgs=0;kgs=numArboles*porcentaje*10; // porcentaje/100 * 1000}return kgs;
}
7/23/2019 Exmenes Fundamentos Informtica
52/247
EJERCICIO .:
!ona a/ne0 !ona*",134a$set5ltimo*&oala166734
!ona a/ne0 !ona8",234a$set9orcenta)e134
estor!onas gz/ne0 estor!onas34gz$a&adir!onaa34gz$a&adir!ona'34
O*: am'in podr-a (a'erse de+inido un constructor #ue inclu;eracomo parmetro de entrada los atri'utos ultimo*&oala" ;porcenta)e"$ o ser-a necesario en ese caso llamar al mtodo setcorrespondiente$
7/23/2019 Exmenes Fundamentos Informtica
53/247
SEPTIEMBRE 2007
TIPO A Na (ele)
Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
El test es eliminatorioy se necesitan 7 respuestas correctas para superarlo.Responda el test en una hoja de lectura ptica. No olvide rellenar en dicha hojael cdigo de carrera, el de la asignatura y el tipo de examen.
Resuelva el Problema en una hoja aparte (mximo 2 caras), indicando su nombrey el Centro Asociado en el que ha realizado la prctica.Rellene sus datos en esta hojay entrguela junto a la de lectura ptica.
Apellidos..Nombre..DNI
Primera Parte: Test
1.
Indica,de las siguientes opciones, aquella que no es un componente dela placamadre:
a. Puertos de entrada salida.
b.
InterfaceIDE.
c. Tarjetasde memoria.
d. Fuente de alimentacin.
2. Afecta la memoria cach a lacantidad de instrucciones que un computador ejecuta en un cierto
tiempo?
a. No, dado que depende nicamente de la frecuenciade reloj.
b. S, dado que ampla la memoria de almacenamiento permantente.
c. S, dado que acelera losaccesos a datos en memoria.
d. No. La memoria cach solo preserva losdatos ante una cada delsistema.
3. El proceso en tiempo compartido (time-sharing) consiste en:
a. Distribuir losprocesos en diferentesprocesadores.
b. Sincronizar los relojes de diferentesprocesadores.
c. Asignar a losprocesos ranuras detiempo en el procesador central.
d. Que losprocesos compartan los canalesde entrada/salida.
4. Indica culde lossiguientes programas NO es un programas decontrolde un sistema operativo:
a. Cargador de mdulos.b. Controlador de tareas.
c. Administrador de memoria.
d. Compilador.
5. La composicin entre clasessirve para:
a. Establecer mecanismos de herencia entre clases.
b. Implementarconstructores por defecto.
c. Definir atributos de una clase como instanciasde otras clases.
d. Implementaruna listade enteros (int).
7/23/2019 Exmenes Fundamentos Informtica
54/247
6. Cmo diseara un sistema que gestione productos en un supermercado deformaque el vendedor pueda
introducirnuevas marcas de productos en susistema?
a. Definiendo cada nueva marca como una nueva clase hijade producto.
b. Definiendo marcacomo un valor (String) de un atributo de la claseproducto.
c. Definiendo cada nueva marca como un nuevo atributo (booleano) dela clase producto.
d. No es posible que el usuario introduzca nuevas marcas sinimplementarde nuevo el sistema.
7. La herencia es un mecanismo muy til para:
a. La reutilizacin de cdigo en la implementacinde nuevos sistemas.
b. Implementarestructuras dinmicas de almacenamiento.
c. Generar cdigo portable a otros sistemas operativos.
d. La implementacinde bucles.
8. Que secuenciade valores imprimirael siguiente cdigo?
for (int i=1;i
7/23/2019 Exmenes Fundamentos Informtica
55/247
Segunda Parte: ProblemaSe desea implementar un sistema para el control de gastos de cambio de piezas en losautomviles de una empresa de transporte. Cada ao, los conductores que considerenque se requiere un cambio de pieza por desgaste pedirn una revisin en el taller demantenimiento de la flota. El encargado del taller anotar la informacin relativa a lasrevisiones realizadas. De cada revisin se anotar la fecha de revisin, la matrcula delautomvil y el conjunto de piezas sustitudas. De cada pieza es necesario conocer sucdigo y coste. El sistema de control de revisiones debe disponer de un mtodo quepermita calcular el coste total de todas las piezas de una revisin. Adems, el sistemadebe tener en cuenta que, a efectos de facturacin, existen tres tipos de piezas: lasimportadas, las de fabricacin nacional y las de desguace. A las importadas hay queaadirles un porcentaje por gastos de envo, especfico para cada pieza. A las defabricacin nacional el porcentaje de IVA fijo, y a las de desguace no se les aadeningn porcentaje.
Se pide:
1. Dibujar un diagrama de clases con los atributos y mtodos necesarios, incluidos losmtodos constructores. Justificar en qu clase o clases se implementara el o losmtodos para calcular el coste final de UNA pieza. (5 puntos)
2. Implementar el mtodo necesario para calcular el coste total de una revisin. (3puntos)
3. En un cdigo aparte, escribir las instrucciones necesarias (creacin de objetos y
llamadas a mtodos) para (2 puntos):
a. Crear dos objetos que representen una revisin y una pieza de importacinnacional (con valores arbitrarios en sus atributos).
b. Incluir en la revisn la pieza instanciada.
c. Calcular el coste total de la revisin.
Solucintestseptiembre2007,tipoA:
1d),2c),3c),4d),5c),6b),7a),8c),9c),10c)
7/23/2019 Exmenes Fundamentos Informtica
56/247
SOLUCIN PARTE PRCTICA DEL EXAMENSEPTIEMBRE 2007, ESPECIALIDAD MECNICA
Se desea implementar un sistema para el control de gastos de cambio depiezas en los automviles de una empresa de transporte. Cada ao, los
conductores que consideren que se requiere un cambio de pieza por desgastepedirn una revisinen el taller de mantenimiento de la flota. El encargadodel taller anotar la informacin relativa a las revisiones realizadas. De cadarevisin se anotar la fe!" #e revisin, $" %"&r'($" #e$ "(&)%vi$ * e$)n+(n&) #e ie-"s s(s&i&('#"s. De cada pieza es necesario conocer su#i.) y )s&e. El sistema de control de revisiones debe disponer de unmtodo que permita "$($"r e$ )s&e &)&"$ #e &)#"s $"s ie-"s de unarevisin. !dems, el sistema debe tener en cuenta que, a efectos defacturacin, e"isten tres tipos de piezas# las i%)r&"#"s, las de f"/ri"inn"i)n"$y las de #es.("e. ! las importadas $ay que aadirles un porcenta%epor gastos de env&o, espec&fico para cada pieza. ! las de fabricacin nacionalel porcenta%e de '(! fi%o, y a las de desguace no se les aade ning)nporcenta%e.
Se pide#
*. Dibu%ar un diagrama de clases con los atributos y mtodos necesarios,incluidos los mtodos constructores. +ustificar en qu clase o clases seimplementar&a el o los mtodos para calcular el coste final de -! pieza. /puntos0
1. 'mplementar el mtodo necesario para calcular el coste total de una
revisin. 2 puntos02. En un cdigo aparte, escribir las instrucciones necesarias creacin deob%etos y llamadas a mtodos0 para 1 puntos0#
a. Crear dos ob%etos que representen una revisin y una pieza deimportacin nacional con valores arbitrarios en sus atributos0.
b. 'ncluir en la revisn la pieza instanciada.c. Calcular el coste total de la revisin.
7/23/2019 Exmenes Fundamentos Informtica
57/247
EJERCICIO 1:
COMENTARIOS DEL EQUIPO DOCENTE:
1.Dado que existen diferentes tipos de piezas con diferentesatributos, como los gastos de envo o el IVA, y diferentecomportamiento en sus mtodos, como el c!lculo del coste, es
indispensable establecer una "erencia entre clases para seguirel paradigma de programaci#n orientada a ob$etos. %n caso deimplementar todos ellos en una sola clase &ieza, sera necesarioreimplementar el sistema para incluir en un futuro nuevos tiposde piezas en el sistema. 'in embargo, aplicando "erenciabastara con extender una nueva clase "i$a.
(.'iguiendo el paradigma de programaci#n orientada a ob$etos esimportante que el proceso de c!lculo de costes sea invisiblepara la clase )evis#n, de forma que no sea necesarioreimplementar esta clase para introducir nuevos tipos de piezas.
Pieza Revisin
private ArrayList piezas_sustituidas;
ublic Pieza(String codigo,int coste);
*Metodos get y set*/public int calculaCoste(int ao)
public Revisn();public int calculaCosteotal()public void aadirPieza(Pieza p)
Pieza!"portada
private #trin$ cdi$o;private int coste;
private int $astos_envio;
Pieza_!"p_%acional
public static int iva;
public PiezaImportada(String codigo,int coste,int gastos_envio);
public int $et&astos_envio();
public void set&astos_envio(int $);public int calculaCoste();
public PiezaImportada(String codigo,int coste);
public int calculaCoste();
7/23/2019 Exmenes Fundamentos Informtica
58/247
*.+a clase )evisi#n se relaciona por composici#n con &iezamediante el atributo piezassustituidas. -ste es un Vectordin!mico Array+ist/ que contendr! ob$etos de la clase &ieza. 0odebe ser un array, dado que no conocemos a priori el nmero depiezas que conlleva una revisi#n.
2.0o es estrictamente necesario implementar una clase "i$a paralas piezas de desguace si consideramos que enca$a con elcomportamiento por defecto de la clase padre. %sto es posibledado que las piezas de desguace no poseen atributos ni mtodosque no aparezcan en el resto de las clases "i$as.
3.&ara que el mtodo calcula4oste de la clases tipo &ieza seaaccesible desde )evisi#n, debe implementarse para la clase padreque es con la que se relaciona )evisi#n. Adem!s, el mtodo debereescribirse en las clases "i$as, ya que en stas el mtodo va acomportarse de diferente modo.
5.A diferencia del atributo gastosenvo, el IVA es un atributocuyo valor lo comparten todas las instancias ob$etos/ de laclase &iezaImp0acional. %s decir, si se modifica el IVA parauna instancia de la clase, se modifica para todas. %sto seimplementa definiendo IVA como variable estatica.
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:
Revision r=new Revision(!Pie"# $=new Pie"#%I&$%N#'ion#()*we+12,-,3++,!r.#/#0irPie"#($!in 'ose=r.'#'#rCoseTo#(!
7/23/2019 Exmenes Fundamentos Informtica
59/247
FEBRERO 2008 Primera Semana
7/23/2019 Exmenes Fundamentos Informtica
60/247
7/23/2019 Exmenes Fundamentos Informtica
61/247
7/23/2019 Exmenes Fundamentos Informtica
62/247
Solucin test Febrero 2008 Primera Semana(Tipo A):
1-A, 2-B, 3-A, 4-B, 5-D, 6-C, 7-D, 8-A, 9-B, 10-D
7/23/2019 Exmenes Fundamentos Informtica
63/247
FEBRERO 2008 Segunda Semana
7/23/2019 Exmenes Fundamentos Informtica
64/247
7/23/2019 Exmenes Fundamentos Informtica
65/247
7/23/2019 Exmenes Fundamentos Informtica
66/247
Solucin test Febrero 2008 Segunda Semana(Tipo A):
1-A, 2-B, 3-B, 4-D, 5-C, 6-B, 7-C, 8-A, 9-A, 10-D
7/23/2019 Exmenes Fundamentos Informtica
67/247
TIPO A ORIG (elec)
Para la nota del examen, el test vale el 30% y el Problema vale el 70%.
El test eseliminatorio y se necesitan 7 respuestas correctas para superarlo.
Responda el test en una hoja de lectura ptica. No olvide rellenar en dicha hoja el cdigo de carrera, elde 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 prctica.
Entregue la hoja de lectura ptica, enunciados y el cuadernillo completo.
Primera Parte: Test
1. Cmo se llama la tcnica que utiliza un rea del disco duro para almacenar datos destinados a la
memoria RAM cuando no queda espacio libre en sta?a) Memoria fsica.
b) Memoria virtual.
c) Memoria esttica.
d) Memoria cach.
2. Un puerto USB:
a) Evita el uso de tarjetas especializadas para cada perifrico.
b) Establece una conexin directa entre los dispositivos perifricos.
c) Establece un nivel hardware entre el sistema operativo y el compilador.
d) Es un hub que interconecta conjuntos de mquinas.
3. Un lenguaje orientado a objetos frente a un ensamblador:
a) Permite un manejo ms directo de los registros del computador.
b) Es ms cercano al lenguaje natural.
c) Es ms fiable ante cadas del sistema.
d) Evita la necesidad de compiladores complejos.
4. Cul de las siguientes funciones no depende sistema operativo:
a) Gestin de ficheros.
b) Gestin del arranque del computador.c) Gestin de la memoria.
d) Planificacin de trabajos.
5. Qu es una clase interna?
a) Una clase cuya definicin est dentro de otra clase.
b) Una clase definida dentro de un paquete.
c) Una clase que hereda de otra.
d) Una clase que extiende a otra (utilizando el mecanismo de extensin).
Septiembre 2008 tipo A (electrnica)
7/23/2019 Exmenes Fundamentos Informtica
68/247
6. Que secuencia de valores imprimira el siguiente cdigo?
publicclassPrueba {
publicstaticvoidmain(String[] args) {
for(inti = 1; i < 3; i++) {
intj = 0;
do{
System.out.println(j);
j++;
} while(j
7/23/2019 Exmenes Fundamentos Informtica
69/247
9. Dado el siguiente cdigo, sabiendo que la clase Alumno hereda de Persona, y que Persona dispone de
un mtodo imprimirDNI se ejecutara:
...
Alumno a = new Alumno(726382-L);
Persona b = a;
b.imprimirDNI();
...
a) El mtodo imprimirDNI de la clase Persona.
b)Nada. Un error de compilacin.
c) imprimirDNI pero slo si est redefinido en la clase Alumno.
d)Nada. Aparecera un error de ejecucin (Null pointer exception)
10. En la prctica obligatoria, el tipo de cuerda se represent mediante un tipo:
a) String.
b)Enumerado.
c) Object.
d)Se emple una clase distinta para cada tipo de cuerda.
7/23/2019 Exmenes Fundamentos Informtica
70/247
Apellidos..Nombre..DNI...
Centro asociado ..
Segunda Parte: Problema
Se desea gestionar las citas en un hospital. El centro debe administrar su lista de citas con especialistas y de citas para
pruebas mdicas. Tanto las citas con especialistas como las citas para pruebas medicas deben incluir su hora y da y
nombre del paciente. Las citas con especialistas incluyen adems 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. Adems, debe de ser posible crear
una nueva cita introduciendo los datos de la misma (strings). Antes de proceder al diseo leanse las tres cuestiones
siguientes:
Se pide:
1. (2 puntos) Dibujar un esquema con las clases necesarias para este programa, indicando los atributos y mtodos
que tiene cada una (slo indicarlos, sin escribir su cdigo), aplicando los principios de la programacin
orientada a objetos.
2. (1 punto)Implementar el mtodo que permite imprimir las citas de un determinado especialista.
3. (2 puntos)Explicar justificadamente cmo se hara para, sin modificar el sistema existente y aplicando los
principios de la programacin orientada a objetos, reutilizar el cdigo para hacer un nuevo programa que
gestione otro hospital anlogo que incluya adems la posibilidad de modificar una cita. Qu clases han de
extenderse y con qu nuevos mtodos y atributos? Qu mtodos se reutilizan?
Solucin al test septiembre 2008 tipo A (electrnica):
1-b, 2-a, 3-b, 4-b, 5-a, 6-b, 7-c, 8-a, 9-a, 10-b
7/23/2019 Exmenes Fundamentos Informtica
71/247
SOLUCIN PARTE PRCTICA DEL EXAMENSEPTIEMBRE 2008, ESPECIALIDAD ELECTRNICA
Se desea gestionar las citas en un hospital. El centro debe administrar su listade citas con especialistas y de citas para pruebas mdicas. Tanto las citas con
especialistas como las citas para pruebas medicas deben incluir su hora y da ynombre del paciente. Las citas con especialistas incluyen adems el nombredel especialista y su especialidad. Las citas para pruebas incluyen el nombrede la prueba. El sistema debe de ser capaz de imprimir en pantalla todas lascitas existentes para un especialista concreto o para todos, y para una o todaslas pruebas. Adems, debe de ser posible crear una nuea cita introduciendolos datos de la misma !strings". Antes de proceder al dise#o leanse las trescuestiones siguientes$Se pide$
%. (2 puntos)&ibu'ar un es(uema con las clases necesarias para esteprograma, indicando los atributos y mtodos (ue tiene cada una !s)loindicarlos, sin escribir su c)digo", aplicando los principios de laprogramaci)n orientada a ob'etos.
*. ( punto)+mplementar el mtodo (ue permite imprimir las citas de undeterminado especialista.
. (2 puntos)Explicar 'usti-icadamente c)mo se hara para, sin modi-icar elsistema existente y aplicando los principios de la programaci)n orientadaa ob'etos, reutilizar el c)digo para hacer un nueo programa (ue
gestione otro hospital anlogo (ue incluya adems la posibilidad demodi-icar una cita. /u clases han de extenderse y con (u nueosmtodos y atributos0 /u mtodos se reutilizan0
7/23/2019 Exmenes Fundamentos Informtica
72/247
EJERCICIO 1:
Hospital
public List imprimirCitasEspecialista(String nombre);public List imprimirCitasEspecialista();public List imprimirCitasPruebas(String nombre);public List imprimirCitasPruebas();public void CrearCitaEspecialista(String hora, String da, StringnombrePaciente, String nombreEspecialista, String especialidad);public void CrearCitaPrueba(String hora, String da, String nombrePaciente,Strin nombrePrueba
protected List citasEspecialista;protected List citasPrueba;
abstract Cita
private String hora;private String da;private String nombrePaciente;
!"#$todos get % set"!
CitaCitaEspecialista
private String nombreEspecialista;private String especialidad;
public CitaEspecialista(String hora,String da,String nombrePaciente,String nombreEspecialista,String especialidad);
!"#$todos get % set"!
CitaCitaPruebas
private String nombrePrueba
public CitaPrueba(String hora,String da,String nombrePaciente,String nombrePrueba);
!"#$todos get % set"!
7/23/2019 Exmenes Fundamentos Informtica
73/247
PRIMER PROBLEMA:
1. Dado que todas las citas son o de especialista o de prueba, la clase genricacita debe de ser abstracta.
2. Para poder imprimir conjuntos de citas es necesario crear una estructura de
composicin mediante una lista sobre las clases CitaPrueba yCitaEspecialista.
3. Dado que las listas de pruebas y citas de especialista se imprimen de maneraindependiente, el parmetro de salida de los mtodos !imprimir" debe de seruna lista
Top Related