Examen de Métodos de Programación Ingeniería Informática Primera Parte

Documentos relacionados
1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

Tema: Introducción al IDE de Microsoft Visual C#.

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

Tutorial básico del entorno de desarrollo Eclipse.

Guía - Taller # 2 (JAVA)

FACULTAD DE INGENIERÍA

5. Sentencias selectivas o condicionales

Examen de Prácticas de Programación Ingeniería Informática

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Programación Orientada a Objetos. Java: Excepciones

PROYECTO FIGURAS DIAGRAMA DE FLUJO

Ejercicios del tema 7: Clases y objetos

Programación Orientada a Objetos. Java: Excepciones

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Pruebas de unidad con JUnit

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

TEMA 1. Introducción a la programación. CONSIDERACIONES GENERALES.

Universidad Carlos III de Madrid Ingeniería de Telecomunicación. Examen de Programación Febrero Parte de Ejercicios

FACULTAD DE INGENIERÍA

Curso Informática Lección 2. Introducción a la programación en Java

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

USO DE LOS OBJETOS JLABEL, JTEXTFIELD Y JBUTTON

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Tema 4. Excepciones en Java

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

2. Estructura de un programa en Java

15. Parámetros o argumentos

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto !

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Tema 9: Paquetes. Índice

Introducción al lenguaje Java

Práctica: Creación de un programa C# sencillo

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape.

EXAMEN PARCIAL 23 de Octubre de 2015 Programación I. Grado en Matemáticas e Informática ETSIINF UPM

FACULTAD DE INGENIERÍA

Por ejemplo, considerando la jerarquía de herencia de Figuras Geométricas de la siguiente figura, es posible hacer uso del concepto de polimorfismo.

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Examen de Ingeniería del Software / 3º de Informática de Gestión 7 de febrero de 2007

Ficheros y streams. Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream].

Introduciendo datos desde el

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Práctica III: Streams, Readers y Writers

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Curso Fundamentos de Informática Lección 7. Programación Orientada a Objetos

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

Derechos de Acceso: COMPOSICION

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

Ejercicios de evaluación de fundamentos de programación en Java

Metodología y Tecnología de la Programación

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase

Uso de excepciones en Java

Vectores y matrices. Arrays Declaración Creación Acceso a los elementos de un array Manipulación de vectores y matrices

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Diseño Basado en Componentes. Curso 2008 / 09

EXAMEN PROGRAMACIÓN 21 de Septiembre de 2007 INGENIERÍA INFORMÁTICA Primera parte: Cuestiones 1,5 horas

Introducción a Java LSUB. 30 de enero de 2013 GSYC

1. Qué tipos de relación hay entre las siguientes clases?

b c b c b b a a c a a c b c c b b c b c d c c c b

Metodología y Tecnología de la Programación

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:...

Universidad Nacional del Santa F A C U L T A D D E I N G E N I E R I A E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0

1. Manejo de memoria estática 2. Manejo de memoria dinámica

Programación orientada a objetos

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Soluciones Ejercicios Tema 3

Universidad ORT - Arquitectura de Software. Requisitos

Programación. Test Autoevaluación Tema 3

Entrada y Salida con Java

James Gosling, creador de Java

Lenguajes de Programación Curso Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces Clases abstractas 2

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro

Primer Parcial Septiembre 5 de 2009

1. El entorno de desarrollo Eclipse

Bloque III. Herramientas

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar

1 HILOS (THREADS) EN JAVA

También añado a la clase Libro los siguientes métodos: (que programaré más adelante)

FACULTAD DE INGENIERÍA

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO ESCUELA DE INGENIERIA EN SISTEMAS

Las clases Java Socket y ServerSocket

Prácticas de Programación

Universidad de Managua

FUNDAMENTOS DE INFORMÁTICA

Transcripción:

Examen de Métodos de Programación Ingeniería Informática Primera Parte Cuestión 1. (2 puntos) Se pretende guardar y recuperar matrices de números reales de cualquier dimensión en ficheros binarios de tipos primitivos. Describe el formato en el que se almacenarían las matrices y escribe un método que permita leer la matriz contenida en un fichero que tenga el formato descrito. El método a realizar deberá tener la siguiente cabecera: public static double[][] leematriz(string nomfich) throws IOException Cuestión 2. (1 punto) La clase PuertaConClave, que representa una puerta con cerradura digital que se abre utilizando una clave numérica, se encuentra parcialmente implementada: public class PuertaConClave { /** * Abre la puerta si la clave proporcionada es correcta * @param clave clave proporcionada * @return verdadero si se ha abierto la puerta (la clave era * correcta) */ public boolean abre(int clave) {... // código no relevante para el problema Se pide escribir el código de un método de esa misma clase que llame al método abre y, utilizando el patrón de excepciones recuperables, verifique el comportamiento descrito por el siguiente comentario de documentación: /** * Trata de abrir la puerta pidiendo la clave al usuario como * máximo el número de intentos pasado como parámetro. * Utiliza una ventana de Lectura del paquete fundamentos para * pedir la clave al usuario. * Cuenta como intento cada clave introducida por el usuario. Tanto * si la clave es un valor entero que no abre la puerta, como si el * usuario introduce en la ventana de Lectura un String que no * representa un número entero. * @param numintentos número máximo de intentos que puede realizar * el usuario * @return verdadero si se ha logrado abrir la puerta y falso si se * han completado los intentos sin que se haya proporcionado la * clave correcta */ Página 1/5

Examen de Métodos de Programación Junio 2011 Cuestión 3. (1 punto) Se dispone de la siguiente jerarquía de clases: public class Abuelo { private int numero = 1; public void cambianumero(int n) { numero = n; public int numero() { return numero; public class Padre extends Abuelo { public class Hijo extends Padre { public void cambianumero(int n) { super.cambianumero(n*2); public class Cuest_Herencia { public static void main(string[] args) { Hijo h = new Hijo(); Padre p = new Padre(); Abuelo a = new Abuelo(); Padre ph = new Hijo(); h.cambianumero(2); System.out.println("h1:" + h.numero()); p.cambianumero(7); System.out.println("p:" + p.numero()); a.cambianumero(10); System.out.println("a:" + a.numero()); ph.cambianumero(21); System.out.println("ph:" + ph.numero()); ((Hijo)p).cambiaNumero(100); System.out.println("p:" + p.numero()); ((Hijo)ph).cambiaNumero(300); System.out.println("ph:" + ph.numero()); Página 2/5

En el método main hay una línea incorrecta, indicar cual es esa línea y la razón del error. Indicar la salida por consola que se produciría al ejecutar el programa (con la línea incorrecta y su correspondiente println comentados). Cuestión 4. (1 punto) Responde a las siguientes cuestiones relativas al código mostrado a continuación: Indica la salida por consola que produciría la ejecución del programa. Indica los objetos que se crean y en qué línea se produce la creación, así como aquellas líneas en las que un objeto se convierte en basura. public class UnaClase { public static int num = 0; public String nombre; public UnaClase(String nombre, int n) { this.nombre = nombre; num = n; @Override public String tostring() { return "(" + nombre + ", " + num + ")"; public class Cuestion_Ref_Objs { public static void metodo(unaclase a, UnaClase b) { a = b; public static void main(string[] args) { UnaClase a = new UnaClase("A", 1); UnaClase b = new UnaClase("B", 2); UnaClase c = new UnaClase("C", 3); b=c; b.nombre = "B1"; System.out.println("A:" + a + " B:" + b + " C:" + c); metodo(b, c); System.out.println("A:" + a + " B:" + b + " C:" + c); Página 3/5

Examen de Métodos de Programación Junio 2011 Examen de Métodos de Programación Ingeniería Informática Segunda Parte Cuestión 5. (5 puntos) Completa el diseño e implementación de la aplicación (únicamente de las partes solicitadas) que verifica los siguientes requisitos: Se desea realizar una aplicación que gestione la venta de billetes de tren a los viajeros abonados a una compañía ferroviaria. Cada abonado se identifica por un número entero que es su identificador. La compañía tiene dos tipos de abonados: normales y jubilados. Además del identificador, en el caso de los jubilados se almacena también su nombre. Los abonados jubilados tienen un descuento del 10% en el precio de los billetes. La compañía puede vender billetes para distintos trenes. Un abonado puede comprar billetes para varios trenes y/o más de un billete para el mismo tren. Cada tren se identifica mediante un código alfanumérico (p.e. AB120T). Además, para cada tren se almacenan los nombres de las ciudades de destino y origen de la ruta que cubre. Un tren tiene un número limitado de plazas en primera clase y otro número de plazas en clase turista. Cada tren tiene un precio base del billete que coincide con el precio de una plaza en clase turista. El precio del billete en primera clase es el doble del precio base. La interacción entre el empleado de la compañía ferroviaria y la aplicación es la descrita en los siguientes casos de uso: Compra billete Informe ocupación tren Empleado Comprueba billetes Una aplicación real tendría otros casos de uso (por ejemplo añade abonado o añade tren ). No se piden para limitar la complejidad del problema propuesto. A continuación se procede a describir los casos de uso. No se entra en detalles de la interacción entre el empleado y la aplicación (punto 1 de cada caso de uso), puesto que no va a ser tarea del alumno desarrollar esa parte. Caso de uso Compra billete : 1. El empleado elige la opción Compra billete e introduce el identificador del abonado, el identificador del tren y el tipo de billete (primera o turista). 2. La aplicación comprueba que existe un abonado con el identificador indicado 3. La aplicación comprueba que existe un tren con el identificador indicado Página 4/5

4. La aplicación comprueba que existen plazas libres del tipo deseado en el tren - Si no hay plazas libres, se notifica y finaliza el caso de uso. 5. La aplicación genera un billete para el abonado y muestra el precio para el abonado teniendo en cuenta los posibles descuentos. Caso de uso Informe ocupación tren : 1. El empleado elige la opción Informe ocupación tren e introduce el identificador del tren y el nombre del fichero en el que guardar el informe. 2. La aplicación comprueba que existe un tren con el identificador indicado 3. La aplicación escribe en el fichero la información sobre los billetes vendidos para el tren respetando el formato y la alineación por columnas mostrado a continuación: Santander -> Madrid Primera Clase 675567 Lucía González García 21.00 444555 21.00 Clase Turista 345678 10.50 123456 Antonio Pérez Pérez 9.45 444555 10.50 Para los jubilados se muestra su identificador, su nombre y el precio de su billete, para los abonados normales se muestra su identificador y el precio de su billete. Caso de uso Comprueba billetes : 1. El empleado elige la opción Comprueba billetes e introduce el identificador del abonado y el identificador del tren. 2. La aplicación comprueba que existe un abonado con el identificador indicado 3. La aplicación comprueba que existe un tren con el identificador indicado 4. La aplicación muestra el número de billetes comprados por el abonado para ese tren. La aplicación contaría con un programa principal basado en menú (Dicho programa principal se supone encargado a otro programador, por lo que no deberá ser realizado por el alumno). Se pide: Diagrama de clases (detallado) de la parte de la aplicación encargada al alumno. Código de las clases que sean el origen de una relación de agregación. Código de las clases que componen la jerarquía de clases Abonado. En el código no es necesario incluir los métodos observadores y cambiadores sencillos. Para la corrección se entenderá que existen todos los métodos de este tipo que aparezcan en el diagrama de clases. Página 5/5