APELLIDOS, Nombre: // Resto de s e r v i c i o s p ú b l i c o s e n t r e l o s que s e e n c u e n t r a n i n s e r t a r y // b o r r a r //...

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

FUNDAMENTOS DE PROGRAMACIÓN Curso: 2013/14 EXAMEN PARA ALUMNOS PRESENTADOS AL PRIMER PARCIAL PRIMERA PARTE. EJERCICIO 1 Cuestiones (1 punto)

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

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)

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

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

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

Examen Parcial de Programación II Ejercicio Práctico

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos

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

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

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

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

Principios de Computadoras II

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

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

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

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

Pasos a seguir para crear una aplicación visual en el lenguaje de programación Java con Netbeans IDE.

FUNDAMENTOS DE INFORMÁTICA

FCS03-3 Manual de Usuario ED. 2 MANUAL DE USUARIO

COLEGIO HERMANAS MISIONERAS DE LA CONSOLATA Formando en Valores Líderes del Tercer Milenio NIT

Programación. Test Autoevaluación Tema 3

Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos]

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

La Herencia: Teoría (1)

Programación Modular. Informática aplicada al medio ambiente curso 2010/2011

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

4. Operadores Operador asignación

Java para programadores

El Concepto De Objeto y Clase

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar.

CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B)

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación con Visual C#

Java Avanzado Facultad de Ingeniería. Escuela de computación.

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

Clases en Java. Declaración de clases en Java 02/09/16. Ing. Roberto Martínez Román - public class Alumno { private int matricula;

PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Guía práctica de estudio 11: Funciones

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

Guía práctica de estudio 05: Diagramas de flujo

Curso de Java Introducción a la Programación III

LABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I)

CREAR TABLAS EN BASES DE DATOS CON phpmyadmin. TIPOS DE DATOS BÁSICOS (VARCHAR, INT, FLOAT). INSERTAR FILAS. (CU00840B)

Definición de Memoria

GUÍA DE ESTILO EN JAVA

Java Inicial (20 horas)

INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

FORMACIÓN Principios de la programación orientada a objetos

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

11:05-12:00 5ª hora de CLASE 5ª hora de CLASE INFORMATICA Y TECNOLOGIA 12:00-12:55 MUSICA Y TEATRO INGLÉS INFORMATICA Y TECNOLOGIA

Sintaxis básica, variables y 7pos

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

Programación Orientada a Objetos en Java

Tema: Clases y Objetos en C#. Parte II.

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Programación Orientada a Objetos

Principios de Programación en Java

Ficha de Aprendizaje N 13

FUNDAMENTOS DE INFORMÁTICA

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 MI PRIMER PROYECTO

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

LABORATORIO ARQUITECTURAS SOFTWARE DE VARIOS NIVELES EN JAVA (I)

Forma Básica Clase Java

Elementos léxicos del lenguaje de programación Java

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

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

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Informática Ingeniería en Electrónica y Automática Industrial

Constructores y Destructores

PHP: Lenguaje de programación

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

PROGRAMACION ORIENTADA A OBJETOS EN C++

Curso de Java POO: Programación orientada a objetos

Guía práctica de estudio 04: Clases y objetos

TECNICAS DE PROGRAMACION Universidad Católica Los Angeles de Chimbote METODOS CONSTRUCTORES Y LA REFERENCIA THIS

Introducción al lenguaje JAVA

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Datos y tipos de datos

Modulo 11. Clases y Objetos en Java

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

Maquinista de Entrada Normas de Examen

Lenguaje de programación con JAVA

Escuela Politécnica Superior de Elche

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

DEPARTAMENTO DE INGENIERÍA EN INFORMÁTICA INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Primera.- Objeto. Segunda.- Duración del programa

SUMINISTRO DE INFORMACIÓN FISCAL EN XML

Tema 2. El lenguaje JAVA

AMBITO DE VARIABLES EN C. GLOBALES Y LOCALES. UNDECLARED (FIRST USE IN THIS FUNCTION). EJEMPLOS (CU00548F)

Diseño Basado en Componentes. Curso 2008 / 09

Derechos de Acceso: COMPOSICION

Transcripción:

APELLIDOS, Nombre: N o Matrícula: U.P.M. E.T.S.I.Inf Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software. Examen de Programación II. 27 de Marzo de 2014. Primer parcial. Realización: El test se realizará en la hoja de respuesta. Es importante rellenar vuestros datos personales y el código clave de vuestro enunciado. Duración: La duración total del test será de 50 minutos. Puntuación: El test se valora sobre 10 puntos. Las preguntas tipo test pueden tener una única respuesta o varias respuestas, el enunciado lo deja claro. Cada pregunta con una única respuesta respondida correctamente vale 1 punto, e incorrectamente respondida resta 1/3 puntos. Si en una pregunta con una única respuesta se selecciona más de una respuesta, la pregunta se puntuará con 0 puntos. Para una pregunta con varias respuestas, cada afirmación correcta seleccionada suma 1/no respuestas correctas puntos, y cada afirmación incorrecta seleccionada resta 1/no respuestas correctas puntos. Las preguntas no contestadas suman 0 puntos en cualquier caso. Calificaciones: Las calificaciones se publicarán en moodle como muy tarde el día 31 de Marzo de 2014 Revisión: Las revisiones serán el día 1 de Abril de 2014 de 11:00 a 12:00 previa petición por correo electrónico al profesor Raúl Alonso Calvo, ralonso@fi.upm.es. Primer Ejercicio Dado el siguiente fragmento de código: p u b l i c c l a s s E j e r c i c i o 1 { p r i v a t e I n t e g e r [ ] d a t o s ; p u b l i c i n t nocupacion ; p u b l i c E j e r c i c i o 1 ( i n t ndatos ) {. // I n i c i a l i z a c i ó n d e l a r r a y d a t o s para que pueda a l b e r g a r h a s t a ndatos // Retorna l a o c u p a c i ó n p u b l i c i n t getocupacion ( ) { r e t u r n t h i s. nocupacion ; / PRE : pos > = 0 && pos < nocupacion @param pos @ r e t u r n r e t o r n a e l dato que ocupa l a p o s i c i ó n i n d i c a d a s i pos no cumple l a c o n d i c i ó n de l a PRE r e t o r n a n u l l p u b l i c I n t e g e r getdatos ( i n t pos ) { r e t u r n t h i s. d a t o s [ pos ] ; // Resto de s e r v i c i o s p ú b l i c o s e n t r e l o s que s e e n c u e n t r a n i n s e r t a r y // b o r r a r Pregunta 1 Indicar cuál de las siguientes afirmaciones es cierta. (Sólo hay una respuesta correcta.): A) El código es correcto porque compila bien y la documentación es válida B) Todas las afirmaciones son incorrectas C) El código es incorrecto porque tiene un atributo público y el método getdatos es inconsistente con la documentación D) El código es incorrecto porque tiene un atributo público, pero la documentación es válida

Segundo Ejercicio Dada la siguiente definición de una clase: p u b l i c c l a s s E j e r c i c i o 2 { p r i v a t e i n t dato ; p r i v a t e i n t n u m e r o I n s t a n c i a ; p r i v a t e s t a t i c i n t n I n s t a n c i a s = 0 ; p u b l i c E j e r c i c i o 2 ( ) { n I n s t a n c i a s ++; t h i s. n u m e r o I n s t a n c i a = n I n s t a n c i a s ; dato = n u m e r o I n s t a n c i a 2 ; @ r e t u r n the dato p u b l i c i n t getdato ( ) { r e t u r n dato ; @ r e t u r n the n I n s t a n c i a s p u b l i c s t a t i c i n t g e t n I n s t a n c i a s ( ) { r e t u r n n I n s t a n c i a s ; Pregunta 2 Cuál de las siguientes afirmaciones es cierta. (Sólo hay una respuesta correcta.): A) No compila porque el constructor debe recibir datos para todos y cada uno de los atributos B) No compila porque en el constructor no se ha usado this para acceder al valor de numeroinstancia en la expresión dato = numeroinstancia 2; C) No compila porque getdato accede al atributo privado dato D) Todas las afirmaciones son falsas Tercer Ejercicio Dado el siguiente programa que usa la clase Ejercicio2 vista en la pregunta anterior: p u b l i c c l a s s P r u e b a E j e r c i c i o 2 { @param a r g s E j e r c i c i o 2 e j e r 2 = new E j e r c i c i o 2 ( ) ; System. out. p r i n t l n ( V a l o r de dato : + E j e r c i c i o 2. getdato ( ) ) ; System. out. p r i n t l n ( Número de i n s t a n c i a s : + e j e r 2. g e t n I n s t a n c i a s ( ) ) ; Pregunta 3 Indicar cuál de las siguientes afirmaciones es correcta. (Sólo hay una respuesta correcta.): A) Ninguna de las afirmaciones es cierta B) El código compila perfectamente pero se produce un error de ejecución en la línea Ejercicio2.getDato() C) El código no compila porque se usa el método de clase getninstancias usando la instancia ejer2 D) Hay un único error de compilación por usar el método de instancia getdato con el nombre de la clase

Cuarto Ejercicio Dada una clase Fecha que tiene el método público double diasentre (Fecha fecha) que retorna el número de días entre dos fechas, el constructor público Fecha(int anio, int mes, int dia) y el siguiente programa: i n t d i a =1, mes=1, a n i o =1970; double d i a s T o t a l e s =0; Fecha f e c h a s []= n u l l ; f e c h a s = new Fecha [ 2 0 ] ; f o r ( i n t i =0; i < f e c h a s. l e n g t h ; i ++){ f e c h a s [ i ]= new Fecha ( a n i o+i, mes, d i a ) ; f o r ( i n t j =0; j <= f e c h a s. l e n g t h ; j ++){ d i a s T o t a l e s = d i a s T o t a l e s + f e c h a s [ j ]. d i a s E n t r e ( f e c h a s [ j + 1 ] ) ; System. out. p r i n t l n ( Días t o t a l e s : +d i a s T o t a l e s ) ; Pregunta 4 Suponiendo que el código compila correctamente. Indicar cuál de las afirmaciones es cierta sobre la ejecución de este programa. (Sólo hay una respuesta correcta.): A) El programa termina de forma anormal debido a un error de ejecución en la línea diast otales = diast otales + fechas[j].diasentre(fechas[j + 1]); B) Todas las afirmaciones son falsas C) El código anterior termina mostrando por consola la cadena de caracteres: Días totales: 0 D) No es posible saber cuál será el resultado del programa ya que no se saben los datos de entrada Quinto Ejercicio Dada la siguiente definición de clases dentro del paquete examen1: p u b l i c c l a s s C l a s e 1 { p r i v a t e i n t a t r i b u t o 1 ; p r i v a t e double a t r i b u t o 2 ; // d e f i n i c i ó n de c o n s t r u c t o r e s p u b l i c double a c c i o n 1 ( i n t dato ){ r e t u r n a t r i b u t o 2 dato ; p u b l i c c l a s s C l a s e 2 { p r i v a t e C l a s e 1 i n f o ; // D e f i n i c i ó n de c o n s t r u c t o r e s. p u b l i c double c a l c u l o ( double dato ){ r e t u r n i n f o. a c c i o n 2 ( dato ) ; double a c c i o n 2 ( double dato ){ r e t u r n a t r i b u t o 2 dato a c c i o n 1 ( a t r i b u t o 1 ) ; Pregunta 5 Indicar cuál de las siguientes afirmaciones es cierta. (Sólo hay una respuesta correcta.): A) Para que el código compile y funcione correctamente basta con marcar como public el método accion2 B) El código no compila porque el método accion2 no es accesible desde la Clase2 C) El código compila y funciona correctamente ya que la Clase1 y la Clase2 están en el mismo paquete D) El método accion2 debe ser marcado como privado ya que es un método que es usado por otro de la misma clase

Sexto Ejercicio Dada la implementación de la Clase1 perteneciente al paquete examen1 y la Clase3 que se encuentra en otro paquete distinto: p u b l i c c l a s s C l a s e 1 { p r i v a t e i n t a t r i b u t o 1 ; p r i v a t e double a t r i b u t o 2 ; // d e f i n i c i ó n de c o n s t r u c t o r e s p u b l i c double a c c i o n 1 ( i n t dato ){ r e t u r n a t r i b u t o 2 dato ; double a c c i o n 2 ( double dato ){ r e t u r n a t r i b u t o 2 dato a c c i o n 1 ( a t r i b u t o 1 ) ; import examen1. C l a s e 1 ; p u b l i c c l a s s C l a s e 3 { p r i v a t e C l a s e 1 i n f o ; // D e f i n i c i ó n de c o n s t r u c t o r e s. p u b l i c double c a l c u l o ( double dato ){ r e t u r n i n f o. a c c i o n 2 ( dato ) ; p u b l i c double c a l c u l o 1 ( i n t dato ){ r e t u r n i n f o. a c c i o n 1 ( dato ) ; Pregunta 6 Suponiendo que la clase Clase1 compila sin errores. Indicar cuál de las siguientes afirmaciones es cierta. (Sólo hay una respuesta correcta.): A) El código de Clase3 compila sin problemas pero el método calculo no se ejecutará correctamente B) El método calculo tiene un error que impide que el código compile ya el método accion2 no es accesible desde Clase3 C) El método calculo1 tiene un error que impide que el código compile ya el método accion1 no es accesible desde Clase3 D) El código compila correctamente y se ejecuta sin problemas Séptimo Ejercicio Sean las siguientes afirmaciones sobre constructores. Pregunta 7 Indica cuál de las siguientes afirmaciones es cierta. (Sólo hay una respuesta correcta.): A) El constructor siempre debe devolver un resultado mediante la sentencia return B) Es obligatorio definir un método constructor en cualquier clase java, porque java no proporciona uno por defecto C) El constructor se ejecuta cuando se crea un objeto mediante la sentencia new D) Solo puede haber un método constructor en una clase Octavo Ejercicio Dadas las siguientes afirmaciones sobre el atributo this Pregunta 8 Señalar todas las afirmaciones verdaderas. (Puede haber más de una afirmación correcta.): A) Se puede usar para evitar colisiones con los identificadores dentro de un método de clase. B) Parámetro implícito en todo método de instancia. C) Es una referencia al objeto que está ejecutando un método, que permite acceder a todos los atributos y métodos dentro de un método de instancia de la propia clase. D) Es una referencia al objeto que está ejecutando un método, y permite acceder a todos sus atributos y métodos dentro de un método de clase.

Noveno Ejercicio Dado el siguiente fragmento de código: p u b l i c c l a s s Persona { p r i v a t e S t r i n g nombre ; p r i v a t e S t r i n g d n i ; p r i v a t e S t r i n g f e c h a N a c i m i e n t o ; p u b l i c Persona ( S t r i n g nombre, S t r i n g dni, S t r i n g f e c h a N a c i m i e n t o ){ t h i s. nombre=nombre ; t h i s. d n i=d n i ; t h i s. f e c h a N a c i m i e n t o=f e c h a N a c i m i e n t o ; Devuelve t r u e s i l a s p e r s o n a s comparadas t i e n e n e l mismo nombre y f e c h a de nacimento p u b l i c boolean e q u a l s ( Persona o t r a P e r s o n a ){ r e t u r n nombre. e q u a l s ( o t r a P e r s o n a. nombre ) && f e c h a N a c i m i e n t o. e q u a l s ( o t r a P e r s o n a. f e c h a N a c i m i e n t o ) ; // Resto de s e r v i c i o s p ú b l i c o s e n t r e l o s que s e e n c u e n t r a n g e t t e r s y s e t t e r s Pregunta 9 Dado el siguiente programa de prueba: p u b l i c c l a s s PruebaPersona { @param a r g s Persona j u a n = new Persona ( Juan Perez, 54892345S, 12/05/1967 ) ; Persona j u a n P e r e z = new Persona ( Juan Perez, 00000000A, 12/05/1967 ) ; Persona j u a n R o d r i g u e z = new Persona ( Juan R o d r i g u e z, 54892345S, 12/05/1967 ) ; System. out. p r i n t ( j u a n. e q u a l s ( j u a n P e r e z ) ) ; System. out. p r i n t ( ) ; System. out. p r i n t ( j u a n. e q u a l s ( j u a n R o d r i g u e z ) ) ; System. out. p r i n t ( ) ; System. out. p r i n t ( j u a n==j u a n P e r e z ) ; Indicar la salida de consola. (Sólo hay una respuesta correcta.): A) false false false B) true false true C) true false false D) true true true Décimo Ejercicio Dadas las siguientes afirmaciones sobre programación modular: Pregunta 10 Señalar las afirmación verdadera. (Sólo hay una respuesta correcta.): A) La parte pública de un módulo recibe el nombre de interfaz B) Una librería sólo puede ser utilizada en el programa o proyecto donde se creó C) Como norma de buena práctica de programación, los atributos de instancia deben ser siempre públicos D) Dos clases pertenecientes a distintos paquetes nunca se pueden llamar igual Copyright c MMXIV, Universidad Politécnica de Madrid. Fin.