Soluciones Ejercicios Tema 3



Documentos relacionados
FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

Hoja 4: Solución. public String tostring() { return "("+getx()+", "+gety()+")"+" Lado: "+getlx();

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos

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

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015

Clases abstractas e interfaces en Java

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Tema 2. El lenguaje de programación Java (Parte 1)

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

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

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

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

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

Elementos del lenguaje Java

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º

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

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

Práctica 5c. Práctica 5c. José M. Ordax

Implementar rehashing en TablaHash. Soluciones Ejercicios Tema 13. Implementar toarray en TablaHash. Radares de Tráfico (I)

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

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

Práctica 10a. Práctica 10a. José M. Ordax

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

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

Elementos léxicos del lenguaje de programación Java

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

Soluciones Ejercicios Tema 1

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

2. Estructura de un programa en Java

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Inteligencia Artificial, Práctica 1. Felix Marquardt & Daniel Clemente 08 nov 05 19:54 Trabajo.java

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

Práctica 11e. Práctica 11e. José M. Ordax

Multitarea en Java. Rafa Caballero - UCM

Java en 2 horas. Rodrigo Santamaría

Programación Orientada a Objetos en JAVA

James Gosling, creador de Java

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

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

PRIMER EXAMEN PARCIAL. 5 de febrero de SOLUCIONES

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet DLSI - Universidad de Alicante 1

Tema 2. Técnicas básicas de POO. Técnicas de Programación - Curso 2007/08

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

Programación de Sistemas

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

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

Introducción a Java LSUB. 15 de enero de 2015 GSYC

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

Soluciones Ejercicios Tema 7. Cambio de Signo Pila (3/3) if (!p.esvacia()) { d i l cambiasignopila(p); this.apilar(new Integer(-dato));

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

Repaso de las características más importantes de la programación Java y su adaptación a Android

Primer Parcial Septiembre 5 de 2009

Código: Salida. Circulo>>(1,2,2.45) Punto >>(1,1)

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

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

Colecciones. Nadjet Bouayad-Agha Programación 2007

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

15. Parámetros o argumentos

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

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

Soluciones Ejercicios Tema 8

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

Estructuras de control selectivas

Prácticas de Programación

Prácticas de Programació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

Excepciones en Java Colecciones e iteradores Genericidad Cierre de UML

Programación II Práctica 04: Objetos

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

Trabajo Práctico N 4: Diseño por Contratos

Java interface y extensibilidad

Examen Teórico. Convocatoria de Julio de 2015

Esta aplicación se compone de 3 programas o clases, según el siguiente esquema: SueldoMedio.java. Sueldo.java

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

Laboratorio de Aplicaciones Telemáticas Ingeniería Técnica de Telecomunicación Especialidad en Telemática

Técnicas Avanzadas de Testing Automatizado

Objetivo de aprendizaje del tema

Tema 14: Excepciones

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

Curso Introducción JAVA Pág.: 1

Programación Orientada a Objetos

Diseño de tipos Igualdad, representación, código, copia y relación de orden

PROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación:

PROGRAMACIÓN GENÉRICA

CONCEPTOS BASICOS DEL LENGUAJE JAVA

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

Introducción a la Programación Orientada a Objetos

Taller de Programación Estructurada en Java Tema 2. Fundamentos de la programación orientada a objetos

Transcripción:

1 Soluciones Ejercicios Tema 3 Germán Moltó gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Solución Ejercicio Comparación public class Manzana implements Comparable<Manzana> private int sabor; public final static int SABOR_MINIMO = 0; public final static int SABOR_MAXIMO = 10; public Manzana()sabor = (SABOR_MAXIMO MAXIMO-SABOR_MINIMO)/2; public Manzana(int sabor)this.sabor = sabor; public int getsabor()return sabor; public int compareto(manzana o) if (getsabor() > o.getsabor()) return 1; else if (getsabor() == o.getsabor()) return 0; else return -1; 2 Cálculo del Mínimo en Array Genérico (I) public class Operaciones public static <T extends Comparable<T>> T minimo(t a[]) T min = a[0]; int i = 1; while (i < a.length) if (a[i].compareto(min) < 0) min = a[i]; i++; return min; //Fin de la Clase Operaciones Cálculo del Mínimo en Array Genérico (II) public class TestOperaciones public static void main(string args[]) Integer v[] = new Integer[10]; for (int i = 0 ; i < 10; i++) v[i] = 10 - i; Operaciones.minimo(v); La clase Operaciones permite buscar el mínimo de cualquier vector de objetos cuya clase implemente la interfaz Comparable<T>. 3 4

Solución: Ejercicio de Vehiculos (1) public abstract class Vehiculo implements Comparable<Vehiculo> private String modelo; private float potencia; public Vehiculo(String i modelo, float potencia) this.modelo = modelo; this.potencia tencia = potencia; public String getmodelo() return this.modelo; public float getpotencia()return this.potencia; 5 Solución: Ejercicio de Vehiculos (2) public int compareto(vehiculo o) float diff = getpotencia() o.getpotencia(); if (diff > 0) return 1; else if (diff < 0) return -1; else return 0; public boolean equals(object x) 6 return this.compareto( (Vehiculo) x) == 0; public abstract int getnumeroruedas(); Solución: Ejercicio de Vehículos (3) public class Moto extends Vehiculo private boolean carenado; public Moto(String modelo, float potencia, boolean carenado) super(modelo, potencia); this.carenado = carenado; public boolean llevacarenado()return carenado; public int getnumeroruedas()return 2; 7 Solución: Ejercicio de Vehiculos (4) public class Coche extends Vehiculo boolean elevalunaselectrico; public Coche(String modelo, float potencia, boolean ee) super(modelo,potencia); this.elevalunaselectrico = ee; public boolean getelevalunaselectrico()return elevalunaselectrico; public int getnumeroruedas()return 4; 8

Solución: Ejercicio de Vehiculos (5) import ordenacionarray.*; public class TestVehiculo 9 public static void main(string args[]) Random r = new Random(); Vehiculo v[] = new Vehiculo[10]; for (int i = 0 ; i < 10 ; i++) v[i] = new Moto("Honda CBR 900 RR", 152 + r.nextint(), true); Ordenacion.insercionDirecta(v); Solución: Garaje de Vehículos public class Garaje<V extends Vehiculo> private ArrayList<V> elarray; public Garaje() this.elarray = new ArrayList<V>(); public void aparca(v vehiculo) this.elarray.add(vehiculo); public void retira(v vehiculo) throws VehiculoInexistente if (!this.elarray.remove(vehiculo)) throw new VehiculoInexistente(); public static void main(string args[]) Garaje<Vehiculo> g = new Garaje<Vehiculo>(); g.aparca(new Moto( Honda", 900, true)); 10 Solución Ejercicio: Películas en DVD (I) public class PeliculaEnVenta extends PeliculaEnDvd implements Comparable<PeliculaEnVenta> protected double precio; protected int copiasdisponibles; public PeliculaEnVenta(String t, String d, int a, double p, int c) super(t, (, d, a); this.precio = p; this.copiasdisponibles = c; public int compareto(peliculaenventa o) if (this.anyo < o.anyo) return -1; else if (this.anyo > o.anyo) return 1; else return this.titulo.compareto(o.titulo) ; 11 Solución Ejercicio: Películas en DVD (II) public boolean equals(object t x) return ( this.compareto((peliculaenventa)x) == 0 ) ; public int copiasdisponibles() return this.copiasdisponibles; public void decrementarcopiasdisponibles() this.copiasdisponibles--; isponibles //Fin de la clase PeliculaEnVenta 12

Solución Ejercicio: Películas en DVD (III) public class GrupoDePeliculas Pli PeliculaEnVenta lev vpeliculas[]; Pli l public GrupoDePeliculas(int talla) vpeliculas = new PeliculaEnVenta[talla]; public String tostring() Ordenacion.insercionDirecta(vPeliculas); for ( int i = 0 ; i < vpeliculas.length e ; i++) System.out.println(vPeliculas[i]) 13 Solución Ejercicio: Películas en DVD (IV) public void vender(peliculaenventa avender) throws PeliculaNoEncontrada boolean encontrada = false; int i = 0; while ( (i< vpeliculas.length) && (!encontrada) ) if (vpeliculas[i].equals(avender)) encontrada= true; else i++; if(!encontrada) throw new PeliculaNoEncontrada( No está + avender); vpeliculas[i].decrementarcopiasdisponibles(); if (vpeliculas[i].copiasdisponibles copiasdisponibles == 0) borrarpelicula(vpeliculas[i]); 14 Solución Animaladas (I) Solución Animaladas (II) public class Mamifero extends Animal public Mamifero(int edad)super(edad); public class Animal implements Comparable<Animal> int edad; public Animal(int edad) this.edad = edad; public int compareto(animal a) return this.edad - aedad; a.edad; public class Leon extends Mamifero public Leon(int edad)super(edad); public class Cocodrilo extends Animal public Cocodrilo(int edad)super(edad); 15 16

Solución Animaladas (III) public class Jaula<E extends Mamifero> public E animal; public void encerrar(e animal) this.animal = animal; public static void main(string args[]) Solución: Carnet de Conducir public class CarnetDeConducir implements CarnetPorPuntos, Comparable<CarnetDeConducir> C C // Declaración de los atributos y métodos ya existentes public int compareto(carnetdeconducir c) return this.puntos - c.puntos; Jaula<Mamifero> j = new Jaula<Mamifero>(); j.encerrar(new Leon(25)); 17 18