Bloque práctico 2: Java

Documentos relacionados
Bloque práctico 1: C++

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Elabore el diagrama de clases en UML y la codificación de un programa para resolver los siguientes problemas:

Escuela Politécnica Superior de Elche

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

Tema 4. Excepciones en Java

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

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

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

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

Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

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

Introducción a Java (2)

Programación orientada a objetos

PROGRAMACION ORIENTADA A OBJETOS EN C++

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

Guía - Taller # 2 (JAVA)

El lenguaje de Programación C. Fernando J. Pereda

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

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

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

FACULTAD DE INGENIERÍA

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

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

FUNDAMENTOS DE INFORMÁTICA

5. Sentencias selectivas o condicionales

Práctica 4: Herencia. Objetivos:

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

Ejercicios del tema 7: Clases y objetos

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

Lenguaje de Programación: C++ GLUT (como instalarlo)

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

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

Curso de Java POO: Programación orientada a objetos

INF 473 Desarrollo de Aplicaciones en Java

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

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

PERIODO 3 HOJA DE CÁLCULO CONCEPTOS INTERMEDIOS OPERACIONES CON CELDAS, FILAS Y COLUMNAS EN EXCEL SELECCIONAR COPIAR MOVER BORRAR

Derechos de Acceso: COMPOSICION

Curso de Java POO: Programación orientada a objetos

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 (L40629) Sabino Miranda-Jiménez

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Java en 2 horas. Rodrigo Santamaría

Introducción al lenguaje Java

Pruebas de unidad con JUnit

Tutorial básico del entorno de desarrollo Eclipse.

4. Operadores Operador asignación

Aplicaciones de Escritorio

Polimorfismo. Métodos virtuales

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS

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

Clase adicional 2. Estructuras básicas de control. Temas

GUÍA DE ESTILO EN JAVA

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

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

Prof. Dr. Paul Bustamante

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

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

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

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

MOODLE 1.9 BASE DE DATOS

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

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

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

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

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

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia

INGRESAR DATOS CON UN CONTROL VISUAL EN JAVA. CLASE JTEXTFIELD Y MÉTODO GETTEXT. EJEMPLOS (CU00928C)

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

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

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

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

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

7ª Práctica. Matlab página 1 EJERCICIO 1. ORDENAR UN VECTOR CON EL MÉTODO DE LA BURBUJA...1

SIIGO WINDOWS. Procesos de Caja Menor. Cartilla I

Unidad Nº V Listas Enlazadas

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

Creación y Modificación de Blog

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

Diseño Basado en Componentes. Curso 2008 / 09

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Creación de un objeto. Creación de un objeto. Creación de un objeto

La sintaxis básica para definir una clase es la que a continuación se muestra:

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

FACULTAD DE INGENIERÍA

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

Problemas de Programación Orientada a Objetos

Fundamentos de Programación: Prácticas de Java. 1 o Ingeniería Técnica de Telecomunicación. Universidad del País Vasco. Euskal Herriko Unibertsitatea

Desarrollo de aplicaciones con JAVA, JCreator, JDeveloper NetBeans

UNIVERSIDAD DE ALCALÁ. E.U.P. DEPARTAMENTO DE ELECTRÓNICA.

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

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

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

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

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

Introducción a C++ y Code::Blocks

Transcripción:

Bloque práctico 2: Java 1: Programación modular, herencia simple y polimorfismo. En esta práctica pondremos utilizaremos las capacidades de programación orientada a objetos de que dispone Java El objetivo de la práctica es programar un lienzo y figuras que se puedan pintar utilizando herencia y polimorfismo. Todas las clases asociadas al problema serán programadas siguiendo una filosofía modular, realizando un paquete con todas las clases a utilizar (Lienzo, Disenno, Figura,...) y otro paquete con las clases de prueba de las clases. Esta práctica es continuación de la practica 1 en C++. Para este caso habrá que realizar tanto los programas de prueba, tomando como ejemplo los realizados en la práctica 1 como las librerias. En los casos en los que no es posible una conversión directa a C++ proponer e implementar la alternativa en Java más conveniente razonando la elección. La alternativa debe ir comentada en la clase que lo implementa a modo de comentario multilinea. 0) Recordatorio: la programación modular en Java Para programar una clase dentro de un paquete, deberemos incluir en el archivo donde se crea esta clase la linea package nombredepaquete. El nombre del paquete de librería debe ser Disenno y el de las clases de prueba pruebadisenno En las clases de Prueba se deberá utilizar import para referenciar a las clases del paquete Disenno.. Ejemplo de clases en un paquete y compilada en un módulo package libreria; public class Punto{ protected int x,y; public void pinta(){ System.out.println( Punto\n"); package PruebaPunto; import libreria.*; public class PruebaPunto { public static void main (String [] args){ Punto p=new Punto(); p.pinta(); El paquete librería deberá estar en un directorio /librería para ser accesible desde PruebaPunto. 1

1) Programar un lienzo y figuras dibujables Un Lienzo es una matriz de puntos de imagen (píxels) de dos dimensiones al que se le pueden poner los píxels de un color determinado (un carácter). Un lienzo se puede rellenar de un color, con lo que todos los píxels del lienzo tendrían dicho valor. Un lienzo, finalmente, se puede mostrar por pantalla. Para pintar en este Lienzo, vamos a construir unas figuras que sepan como pintarse en un lienzo, teniendo en cuenta que si el dibujo se sale de los límites del mismo no se pinten los píxeles que se salen del lienzo (es decir, si la figura se sale del lienzo, no da error, sólo visualiza la parte que cae dentro del mismo). Una figura contiene una posición de origen expresada por dos enteros que determinan la posición del eje x y el eje y. Esta posición es una clase aparte contenida por la figura. Una figura debe tener un método que devuelva una string con la descripción del tipo de figura y su contenido. Una figura tiene un color determinado por un char. Las figuras disponibles son: color. Punto: Posición y color. Bitmap : Posición inicial (esquina superior izquierda), ancho, alto,contenido y Notas sobre los métodos de Dibujo de cada figura: Bitmap se construye como una cadena que contiene unos ("1") en las posiciones que se quiere pintar y "0" en las no pintables (bitmap monocromo). Un ejemplo de bitmap de alto 3 y ancho tres es el siguiente: Contenido del bitmap: "001001001" Bitmap dibujado con el color '*': " * * *" donde " " serian pixels no dibujados y * el píxel dibujado en el color * Estas figuras deben contener en una superclase todas aquellas características que les sean comunes. Realice un programa de prueba que sea el equivalente en Java del siguiente programa de prueba en C++. 2

int main(int argc, char *argv[]) { Lienzo z(15,12); Posicion pos1(1,1),pos2(5,5),pos3(8,8); Punto p(pos1,'*'),p1(pos2,'+'); char* contenido =strdup("001001001"); Bitmap b(posicion(2,2),contenido,3,3,''); z.rellenar(' '); // Pinta dos puntos y un bitmap p.pintar(&z); p1.pintar(&z); b.pintar(&z); z.mostrar(); cout << p.descripcion()<< "\n"; cout << b.descripcion()<< "\n"; // Ejemplo de Polimorfismo Figura *f; f = &p; f->pintar(z); z.mostrar(); system("pause"); return EXIT_SUCCESS; Salida Esperada * + Punto:(1,1), color:42 Bitmap:(2,2), color:64, contenido:001001001 Presione una tecla para continuar.... Presione una tecla para continuar... Nota: recuerde que Figura debe ser clase abstracta 3

2) La clase Disenno:un manejador de figuras: La clase disenno debe poder manejar un número de figuras máximo definido por constructor. Estas figuras son añadidas con el método add. Este metodo no tiene en cuenta si ya estaba añadida dicha figura con anterioridad, almacenandola siempre que haya un hueco. Las Figuras se pueden borrar del diseño enviándoles la referencia, en dicho caso elimina la primera referencia que se encuentren que apunte al mismo objeto. Diseño debe implementar un método descripción que devuelve un string con todas las descripciones de las figuras que contiene. La clase diseño implementa un método Dibuja, que envia las figuras a pintar sobre un lienzo. Realizar un programa de prueba en Java que : 1) Cree un diseño d1 y un Lienzo lc 2) Añada a d1 un punto en 1,1 y un bitmap en 5,5 3) Muestre descripcion de d1 y dibuje en el lienzo lc 4) Rellenar lienzo lc a ' ' 5) "remove" el punto y volver a mostrar en lienzo lc. 3)Sobrecarga de tostring. Sobrecargue el metodo tostring para la clase Disenno de modo que se envíe al flujo de salida que actúa de operando izquierdo una descripción de Disenno en modo texto de la siguiente manera: 4) Excepciones. System.out.println(d); el código debe controlar los errores utilizando excepciones. Se creará una clase de excepción DisennoException que herede de Exception: Los constructores servirán para inicializar los distintos objetos con un valor que deberán mantener almacenado. Se deberán lanzar excepciones cuando: - se intente eliminar una figura de un Disenno vacío, - se intente añadir una figura en un Disenno lleno - se intente dibujar fuera de los límites de un Lienzo El constructor de la Excepción deberá tener un parámetro entero indicando el tipo de la excepción (de 1 a 3) y el método what() devolver una cadena de caracteres con el mensaje apropiado (por ejemplo: "Diseño lleno", "Diseño Vacio", etc...). Realice un programa para que se produzcan las excepciones mencionadas capturando las excepciones y mostrando por pantalla el motivo de la excepción. 4

Instrucciones de Entrega La práctica deberá dejarse comprimida con winrar con el nombre: Practica2_xxx.rar en la cuenta de usuario. donde xxx es el código de usuario asociado. La práctica deberá contener dos directorios (Figuras y PruebaFiguras), en Figuras estarán todas las clases del paquete referente a lienzo, disenno y figuras, con un fichero.java por clase. En el otro directorio estarán todas las pruebas a realizar en uno o varios ficheros.java Las fechas de entrega serán desde hasta el 18 de Enero de 2009, siendo necesario defenderlas en clase de la siguiente forma: - Dejar el fichero comprimido en la cuenta. - Probar todos los ficheros de prueba presencialmente en clase con el profesor. - Si funcionan adecuadamente se revisarán las clases y programas de prueba. - En caso de encontrarse errores se permitirá la reentrega dentro de fecha - En caso de errores graves no se considera apta. Si la entrega final tiene errores leves, la calificación podrá ser del 50% ó 75% de la parte que le corresponda a la práctica. Esta nota será validada cuando se realice el examen de modificación, hasta entonces la nota no será definitiva. Es necesario superar todas las prácticas y haber asistido a un 70% de las clases prácticas para tener apta la parte práctica de la asignatura (no se cuentan las faltas después de la entrega hasta el comienzo de la siguiente práctica), en caso contrario se puede optar por examen final práctico. El examen de modificación tendrá lugar en la semana del 19 al 24 de Enero de 2007 para los grupos de Jesús Maria Prieto y el 26 para el grupo m1 de Miguel Ángel Rodríguez (una vez presentado al de modificación no se puede presentar al práctico final). El examen práctico final (sólo para aquellos que no realicen el de modificación) tendrá lugar el Lunes 26 de enero a las 10:00 en el aulario Von Neumann. 5