exámenes fundamentos informática

Upload: mireya-claramonte-garcia

Post on 19-Feb-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 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()

    Email

    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

    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