Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011

Documentos relacionados
PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

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

Práctica 5. Fecha límite de entrega: viernes, 14 de diciembre

Excepciones. Excepciones

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

CLAVE EXAMEN: a cd. c u r s o r = c u r s o r. g e t S i g u i e n t e ( ) ; p o s i c i o n ++;

Tema 14: Excepciones

Examen Teórico Convocatoria de Junio de 2012

Parte I: Programación en un lenguaje orientado a objetos

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

Soluciones. boolean pruebaiteraseriegeometrica () { Serie s= new SerieGeometrica (1, 2); return (s.iterator() instanceof IteraSerieGeometrica); }

Tema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés

Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1

Excepciones LSUB, GSYC, URJC. Monday, February 4, 13

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

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

Práctica #5: Uso de control de flujo, Excepciones y Lectura Estándar

Ejecución de hebras. En realidad, todas las aplicaciones escritas en Java son aplicaciones multihebra (recuerde el recolector de basura).

Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos

Si bien hay gran cantidad de excepciones, todas derivan de la clase Exception, además de las excepciones ya manejadas, se pueden crear propias.

Bibliografía (Java) Java: Introducción a Java

Soluciones Ejercicios Tema 3

HERENCIA. Problema: Reparar el el coche. Jesús (Valencia) Luis, Mecánico (Valencia) Antonio, Servicio Técnico Ferrari (Madrid)

Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez

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

Estructura de datos y Programación

k. Son métodos de la clases y respectivamente, que analiza un para devolver un entero con

JAVA: Excepciones. Errores

Primer Parcial Septiembre 5 de 2009

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2007.

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Construcciones del Lenguaje Java

Tema 15: Aserciones 0

/) 0! () 5!2 /)( 1! "!"# 2 ()/ $% $!" !! " #!!!$!!% &!!' ' ' "! ()()/ & $!" ()()(' (!(

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

int[] nombrearray1; int nombrearray2[];

Programación concurrente en Java

a. Cuántas veces se ejecuta la instrucción System.out.println? b. Cuál es el diagrama de flujo correspondiente a este fragmento?

UNADM. Estructura de datos. Guillermo Duran Garcia AL Actividad 2. Identificación de errores en métodos de ordenación

Estructuras de control selectivas

Programación Orientada a Objetos. Java: Excepciones

Programación Orientada a Objetos. Java: Excepciones

James Gosling, creador de Java

ADSW Tema 2 Diccionarios

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

Tema 4. Excepciones en Java

2) Cual modificador limita el acceso a un método de una clase pública a los miembros de la misma clase?

PROGRAMACIÓN GENÉRICA

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

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

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

o Una clase es un tipo al cual pertenecen objetos o instancias de la clase.

PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07

Excepciones y E/S Java y Servicios Web I Master en Ingeniería Matemática

Prueba N o 1. Programación II

1. (1 punto) Dado el siguiente fragmento en Java:

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

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

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

Presentación. Programación I. Programación Orientada a Objetos. :: Prof. Yeniffer Peña

Entiendo los métodos de Java equals y hashcode

Bloque II. Elementos del lenguaje de programación Java

Estructuras de Datos Clase 6 Listas e Iteradores (primera parte)

JAVA 1. Introducción

Soluciones Ejercicios Tema 1

Java: control de excepciones

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

Programación Orientada a Objetos en C#.NET CAPÍTULO 8 EXCEPCIONES. Ing. Bruno López Takeyas, M.C.

CURSO : Programacion Java DOCENTE : ING. JUAN ZEVALLOS VALLE

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

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

FUNDAMENTOS DE PROGRAMACIÓN - FEBRERO 2009 SOLUCIONES

PROYECTO FIGURAS DIAGRAMA DE FLUJO

Elementos léxicos del lenguaje de programación Java

Sebastián García Galán

Excepciones en Programación Orientada a Objetos

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

TEMA 8. Excepciones en Java. Curso de Java. Manejo de Excepciones

Ejercicios resueltos de programación

Programación concurrente en Java. Breve introducción. Miguel Ángel LATRE Dept. de Informática e Ingeniería de Sistemas

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Diseño y Programación Orientados a Objetos 29 de Abril de Primer Certamen

Técnicas Avanzadas de Testing Automatizado

CURSO : ESTRUCTURA DE DATOS DOCENTE : ING. JUAN ZEVALLOS VALLE

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

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

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

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

Métodos CON valor de retorno

Procesamiento distribuido en Java

Java para programadores

Introducción a Java. Introducción a Java. Programación I

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

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

Multitarea en Java. Rafa Caballero - UCM

Nombran variables, funciones, clases y objetos

Sebastián García Galán

Transcripción:

Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011 Ejercicio 1 (2 puntos) SOLUCIONES class TarjetaDeCredito public class TarjetaDeCredito { private enum ESTADO {CERRADA, ABIERTA, BLOQUEADA private int saldo; private final int clave; private ESTADO estado; private int fallos; Inicializa los atributos privados de la clase. @param saldoinicial saldo inicial en la cuenta. @param clave clave de acceso. public TarjetaDeCredito(int saldoinicial, int clave) { this.saldo = saldoinicial; this.clave = clave; this.estado = ESTADO.CERRADA; this.fallos = 0; Getter. @return true si la tarjeta está cerrada. public boolean iscerrada() { return estado == ESTADO.CERRADA; Getter. @return true si la tarjeta está abierta. public boolean isabierta() { return estado == ESTADO.ABIERTA; Getter. @return true si la tarjeta está bloqueada. public boolean isbloqueada() { return estado == ESTADO.BLOQUEADA;

Método para autenticar la clave de la tarjeta. Si se llama tres veces seguidas a este método con clave no válida, la tarjeta queda bloqueada. La clase debe llevar la cuenta de cuántos intentos consecutivos han fallado. @param clave clave numérica que el usuario teclea para poder usar su tarjeta. @return true si la clave es válida; false si no lo es. @throws TarjetaBloqueadaException Si la tarjeta estaba o queda bloqueada. public boolean abre(int clave) throws TarjetaBloqueadaException { if (isbloqueada()) if (clave == this.clave) { estado = ESTADO.ABIERTA; fallos = 0; return true; fallos++; if (fallos >= 3) { estado = ESTADO.BLOQUEADA; return false; Método para 'irse': el usuario cierra la tarjeta. public void cierra() { estado = ESTADO.CERRADA; Método para sacar dinero de la cuenta asociada a la tarjeta. Antes de sacar dinero, hay que autenticar la tarjeta. @param cantidad dinero que queremos sacar. @return el saldo total que queda en la cuenta asociada tras extraer la cantidad solicitada. @throws NohaySaldoSuficienteException Si hay menos saldo en la cuenta que la cantidad a extraer. @throws TarjetaBloqueadaException Si la tarjeta se encuentra bloqueada. public int sacar(int cantidad) throws NohaySaldoSuficienteException, TarjetaBloqueadaException { if (isbloqueada()) if (iscerrada()) return 0; if (saldo < cantidad) throw new NohaySaldoSuficienteException(); saldo -= cantidad; return saldo; public static void main(string[] args) throws TarjetaBloqueadaException { TarjetaDeCredito tarjeta = new TarjetaDeCredito(1000, 9999);

// a. autenticar la tarjeta con clave válida // y comprobar que no se bloquea tarjeta.abre(9999); System.out.println(" bloqueada? " + tarjeta.isbloqueada()); // b. extraer con la tarjeta más dinero del que se tiene como saldo // y comprobar que no se puede int saldo = 0; saldo = tarjeta.sacar(2000); catch (NohaySaldoSuficienteException no) { System.out.println("devuelve " + saldo); // c. comprobar que la tarjeta se bloquea // tras autenticarse con tres claves seguidas incorrectas. int intento = 1; while (true) { System.out.println("intento " + intento); tarjeta.abre(0); intento++; catch (TarjetaBloqueadaException e) { System.out.println("bloqueada: intento: " + intento); Ejercicio 2 (2 puntos) public int[] ordenar(int[] in) { int[] out = new int[in.length]; int dst = 0; for (int n : in) { if (n % 2 == 0) out[dst++] = n; for (int n : in) { if (n % 2!= 0) out[dst++] = n; return out; Ejercicio 3 (2 puntos) método iterativo public int suma1(int in) { int suma = 0; while (in > 0) { int n1 = in % 10; suma += n1; in /= 10; return suma; método recursivo

public int suma2(int in) { if (in == 0) return 0; int n1 = in % 10; return n1 + suma2(in / 10); Ejercicio 4 (2 puntos) class Eliza public class Eliza { private static final String[][] tabla = { {"Hola", "Hola, qué tal?", {"Encantado", "Encantada de conocerte yo también", {"Adiós", "Adiós, espero volver a verte pronto", {"Hora", "Lo siento, no llevo reloj", {"Nombre", "Mi nombre es Eliza", ; private static final String nose = "Lo siento, no te comprendo"; public String respuesta(string pregunta) { String mip = pregunta.tolowercase(); for (int i = 0; i < tabla.length; i++) { String clave = tabla[i][0].tolowercase(); if (mip.contains(clave)) return tabla[i][1]; return nose; public static void main(string[] args) { Eliza eliza = new Eliza(); Scanner scanner = new Scanner(System.in); String pregunta; while ((pregunta = scanner.nextline())!= null) { System.out.println("Eliza: " + eliza.respuesta(pregunta)); Ejercicio 5 (2 puntos) class NumeroNegativoException public class NumeroNegativoException extends Exception { public NumeroNegativoException() { public NumeroNegativoException(String s) { super(s); excepciones int x = 2 / 0; catch (Exception e) {

ejecución int x = Integer.parseInt("3.14"); catch (Exception e) { Object n = new Integer(1492); String s = (String) n; catch (Exception e) { Class c = Class.forName("NoExisto"); catch (Exception e) { int[] array = new int[]{1, 2, 3, 4; int i = array[4]; catch (Exception e) { Exception in thread "main" java.lang.runtimeexception: fuera de rango at e2011_12.e51.acceso_por_indice(e51.java:14) at e2011_12.e51.main(e51.java:23)