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



Documentos relacionados
FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

Soluciones Ejercicios Tema 3

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

Etapa 3.1. Implementación de la clase Operacion

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

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

Introducción a la Programación Orientada a Objetos

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

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

Programación Orientada a Objetos con Java

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

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

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.

Programación en Java. Programación en OO

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

Primer Parcial Septiembre 5 de 2009

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

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

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

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

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

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

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

Colas Implementación con gestión estática de memoria

Elementos léxicos del lenguaje de programación Java

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

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

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

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Estructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo

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

Examen Teórico Convocatoria de Junio de 2012

Multitarea en Java. Rafa Caballero - UCM

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

Clases abstractas e interfaces

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

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

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

2. Estructura de un programa en Java

Objetivo de aprendizaje del tema

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

15. Parámetros o argumentos

James Gosling, creador de Java

CONCEPTOS BASICOS DEL LENGUAJE JAVA

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

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

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

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

El concepto de Java Package Encapsulation

Programación Orientada a Objetos en Java

Tema: Arreglos de Objetos en C++.

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

Administración Local Soluciones

EJEMPLO DE PRUEBAS UNITARIAS Y DE INTEGRACIÓN.

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

Construcciones del Lenguaje Java

Examen Teórico. Convocatoria de Julio de 2015

Clases abstractas e interfaces en Java

IMPLEMENTACIÓN DEL JUEGO DEL AJEDREZ

Programación Orientada a Objetos en C#.NET CAPÍTULO 5 H E R E N C I A. Ing. Bruno López Takeyas, M.C.

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante

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

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

Tema 14: Excepciones

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

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

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.

1. Generación automática de documentación (javadoc)

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Estructura de datos tipo vector.

Uso de excepciones en Java

Programación Orientada a Objetos en JAVA

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Prácticas de Programación

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

Universidad de Huelva. [ <atributo> <método> <constructor> <clase> <interfaz> <bloque estático> ]*

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 ++;

Excepciones en Java Colecciones e iteradores Genericidad Cierre de UML

Elementos del lenguaje Java

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

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

Programación orientada a objetos

Ficheros de acceso aleatorio

Programación Avanzada. Juan Manuel Fernández. Curso 2011 Ejemplo de uso de sockets desde aplicaciones visuales. Usan un hilo en banco.

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

Tema: Clases y Objetos en C++.

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

Ingeniería del Software Arquitectura Física en 3 niveles

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

Programación Orientada a Objetos en Java

Práctica sobre compartición de instancias remotas.

Computación III. Objetivo de aprendizaje del tema

Pruebas de unidad con JUnit

Programación Orientada a Objetos

POO en Java IV: Herencia (Parte 1)

Curso de Java POO: Programación orientada a objetos

Herencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Transcripción:

Hoja 4: Solución Ejercicio 1 package figuras; public class Cuadrado extends Rectángulo { public Cuadrado(int x, int y, int ancho) { super(x,y,ancho,ancho); public String tostring() { return "("+getx()+", "+gety()+")"+" Lado: "+getlx(); // error: un rectángulo no es un cuadrado; tipos incompatibles // Cuadrado c1 = new Rectángulo(10,10,6,6); // bien: un cuadrado es un rectángulo Rectángulo r1 = new Cuadrado(20,20,5); // declaraciones correctas Cuadrado c2 = new Cuadrado(20,20,5); Rectángulo r2 = new Rectángulo(10,10,6,6); // error: un rectángulo no es un cuadrado; tipos incompatibles // c2 = r2; // bien: un cuadrado es un rectángulo r2 = c2; System.out.println(c2); // (20, 20) Lado: 5 System.out.println(r2); // (20, 20) Lado: 5 Ejercicio 2 // la clase es abstracta porque no podemos escribir el método coste // NO se puede utilizar un interface, ya que algunas de los métodos sí se pueden // escribir y un interface no permite escribir ninguno public abstract class Factura { protected double importe; // total a pagar protected int númllamadas; // número total de llamadas protected String compañía; // nombre de la compañía public Factura(String compañía) { this.compañía = compañía; public String getcompañía() {return this.compañía; public int getnúmllamadas() {return this.númllamadas; public double getimporte() {return this.importe; public abstract double coste(int hora, int segundos); public void llamada(int hora, int segundos) { importe += coste(hora,segundos); númllamadas++;

public String tostring(){ return "Compañía: "+getcompañía()+" - "+getnúmllamadas()+ " llamadas "+ "- Importe: "+getimporte()+" euros"; Ejercicio 3 // sólo hay que implimentar el metodo abstracto coste public class TeLeLe extends Factura { public TeLeLe(){ super("telele"); public double coste(int hora, int duración) { double factor; factor = hora >=0 && hora < 8? 0.01 : hora >= 8 && hora < 14? 0.05 : 0.02; return factor*duración + 0.25; import java.util.scanner; // declaramos la factura TeLeLe factura = new TeLeLe(); // para leer los datos Scanner sc = new Scanner(System.in); String seguir; // para preguntar que si quiere seguir do { // pedimos los datos de la llamada: System.out.print("Hora de inicio (de 0 a 24): "); int h = sc.nextint(); System.out.print("Duración (segundos): "); int s = sc.nextint(); factura.llamada(h,s); System.out.print("Más llamadas? (s/n) "); seguir = sc.nextline(); while (seguir.equals("s") seguir.equals("s")); System.out.println("Factura: "+factura); Ejercicio 4 Como nos piden que la clase no contenga medios inclocal o incvisitante no podemos usar herencia (en realidad sí podríamos, heredando y redefiniendo los métodos que queremos ocultar como privados, pero esta solución parece menos natural).

Además de la clase tendremos que escribir dos clases para las excepciones: public class NombreEquipoNoVálido extends Exception { public class PuntuaciónNoVálida extends Exception { public class MarcadorBaloncesto { private Marcador m; public MarcadorBaloncesto(String nombrelocal, String nombrevisitante) { m = new Marcador(nombreLocal,nombreVisitante); // tiro libre anotado // eq es el nombre del equipo public void tirolibre(string eq) throws NombreEquipoNoVálido { if (m.getnombrelocal().equals(eq)) m.inclocal(); else if (m.getnombrevisitante().equals(eq)) m.incvisitante(); else throw new NombreEquipoNoVálido(); public void canasta(string eq, int punt) throws NombreEquipoNoVálido,PuntuaciónNoVálida { if (punt!=2 && punt!=3) throw new PuntuaciónNoVálida(); if (m.getnombrelocal().equals(eq)) m.inclocal(punt); else if (m.getnombrevisitante().equals(eq)) m.incvisitante(punt); else throw new NombreEquipoNoVálido(); public String tostring(){ return m.tostring();

Ejercicio 5 // 1) public interface Fórmula { public boolean valoración(valorvar t[]); // 2) // Fórmula formada por una sola variable public class Variable implements Fórmula{ private String nombre; public Variable(String n){this.nombre=n; boolean encontrado=false; boolean resultado=false; int i=0; // recorremos el array hasta encontrar la // posición que ocupa la variable while(i<t.length &&!encontrado) if (t[i].nombrevar().equals(this.nombre)) encontrado=true; else i++; // por el enunciado, suponemos que siempre se encuentra resultado = t[i].valor(); return resultado; // 3) public class Negación implements Fórmula { private Fórmula f; public Negación(Fórmula f) {this.f = f; return!f.valoración(t); // 4) public class And implements Fórmula{ private Fórmula f1,f2; // constructora // parámetros: dos fórmulas f1 y f2. // Esta fórmula representará la conjunción de f1 y f2 public And(Fórmula f1, Fórmula f2) { this.f1 = f1; this.f2=f2; return f1.valoración(t) && f2.valoración(t); // 5) public class Or implements Fórmula { private Fórmula f1,f2; // constructora // Esta fórmula representará la disyunción de f1 y f2 public Or(Fórmula f1, Fórmula f2) { this.f1 = f1; this.f2=f2; return f1.valoración(t) f2.valoración(t);

Ejercicio 6 import lógica.*; // Nota: También está bien si se declaran como de tipo Fórmula Variable X = new Variable("X"); Variable Y = new Variable("Y"); Variable Z = new Variable("Z"); And f1 = new And(X,Z); And f2 = new And(Y,Z); Negación f3 = new Negación(f2); Or f = new Or(f1,f3); // la fórmula pedida // la valoración ValorVar t[] = { new ValorVar("X",true), new ValorVar("Y",true), new ValorVar("Z",false) ; // escribimos la valoración System.out.println(f.valoración(t)); Ejercicio 7 public class TercerGrado extends Newton { private double a,b,c,d; public TercerGrado(double a, double b, double c, double d) { this.a = a; this.b = b; this.c = c; this.d = d; public double f(double x) { return a*x*x*x + b*x*x + c*x + d; public double df(double x) { return 3*a*x*x + 2*b*x + c; public double raíz() { return raíz(0); Ejercicio 8 TercerGrado p = new TercerGrado(4,-2,3,1); System.out.println(p.raíz());