Ejercicios de Programación Orientada a Objetos



Documentos relacionados
Programación Orientada a Objetos

5.4. Manual de usuario

Definición de vectores

Introducción a la programación orientada a objetos

18. Camino de datos y unidad de control

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO PÚBLICO

Apoyo para la preparación de los estudios de Ingeniería y Arquitectura Física (Preparación a la Universidad) Unidad 4: Vectores

by Tim Tran:

COORDENADAS CURVILINEAS

Etapa de Diseño: Gestión de Hotel Diseño de Sistemas Software

De acuerdo con sus características podemos considerar tres tipos de vectores:

Capítulo VI. Diagramas de Entidad Relación

Trey-SAT Pag. 1. Manual de usuario

Patrones de Diseño Orientados a Objetos 2 Parte

Colegio Las Tablas Tarea de verano Matemáticas 3º ESO

3.1 DEFINICIÓN. Figura Nº 1. Vector

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

Instructivo de Microsoft Excel 2003

1.- INTRODUCCIÓN 2.- PARÁMETROS

Tema 3. Espacios vectoriales

Curso 2006/2007 Estructura de Datos y de la Información I. Informática, I. T. Informática de Gestión y de Sistemas PRÁCTICA 2

Tema 2 : NÚMEROS ENTEROS. Primero de Educación Secundaria Obligatoria. I.e.s Fuentesaúco.

FUNCIONES CUADRÁTICAS Y RACIONALES

Operaciones con vectores

Clases y Objetos. Informática II Ingeniería Electrónica

Tema 1. VECTORES (EN EL PLANO Y EN EL ESPACIO)

Práctica 5. Curso

Centro de Capacitación en Informática

U.T. 2 Planificación de Proyectos

PRÁCTICAS DE GESTIÓN GANADERA:

Capítulo 9. Archivos de sintaxis

UNIDAD 1. LOS NÚMEROS ENTEROS.

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

EJERCICIOS DE PROGRAMACIÓN RELACIÓN VII (EJERCICIOS DE REPASO)

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Qué son los monomios?

Modularización Relación de ejercicios

El control de la tesorería consiste en gestionar desde la aplicación los cobros y pagos generados a partir de las facturas de venta y de compra.

4º ESO 1. ECUAC. 2º GRADO Y UNA INCÓGNITA

Relaciones entre Clases Programación Avanzada Prim FCC-Buap Profesor: M. C. Miguel Rodríguez Hernandez

ESTRUCTURA DE DATOS: ARREGLOS

Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 =

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Este documento ha sido generado para facilitar la impresión de los contenidos. Los enlaces a otras páginas no serán funcionales.

UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano.

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

x

SISTEMAS DE NUMERACIÓN (11001, 011) = = (32,12)

OPERACIONES EN RÉGIMEN DE COMPUESTA

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACÁN INTEGRANTES

Prof. Dr. Paul Bustamante

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA JOSE LEONARDO CHIRINO PUNTO FIJO EDO-FALCON CATEDRA: ARQUITECTURA DEL COMPUTADOR PROFESOR: ING.

1. Producto escalar, métrica y norma asociada

Manual para la utilización de PrestaShop

ARREGLOS DEFINICION GENERAL DE ARREGLO

Anexo B. Comunicaciones entre mc y PC

Ejercicios de aplicación de patrones de diseño

ESPOCH ESCUELA DE MEDICINA HERNANDEZ MAYRA FORMULAS Y DUNCIONES BASICAS ESPOCH

ERP GESTION LOGÍSTICA

COMPARACIÓN DE ÁREAS DE FIGURAS POR ESTUDIANTES DE PRIMERO DE MAGISTERIO

SIIT SISTEMA INFORMÁTICO DE INSPECCIONES DE TRABAJO. Modulo de Planificación Manual de Usuario

Oficina Online. Manual del administrador

POLIMORFISMO "una interfaz, múltiples métodos".

Fórmulas y funciones

En la siguiente gráfica se muestra una función lineal y lo que representa m y b.

Sistema de Gestión Académica TESEO. Revisión 1.0. Servicio de Informática Área de Gestión (GESTIÓN DE RESÚMENES DE TESIS DOCTORALES)

EJERCICIOS SOBRE : NÚMEROS ENTEROS

Introducción a Protégé

INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso v1.0 (05.03.

Módulo 9 Sistema matemático y operaciones binarias

TEMA 8: DIAGRAMA DE CLASE EN UML

1. Vectores 1.1. Definición de un vector en R2, R3 (Interpretación geométrica), y su generalización en Rn.

Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net

Vectores: Producto escalar y vectorial

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso


DBmessage TM. Manual de usuario

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

Tecnologías de la Información. Apuntes de programación en Visual Basic 6.0

Estructuras de Datos y Algoritmos Práctica I - Curso 2012/13

Selección de los puntos de montaje

Divisibilidad y números primos

Operación Microsoft Access 97

FRACCIONES. Una fracción tiene dos términos, numerador y denominador, separados por una raya horizontal.

Definición Dados dos números naturales m y n, una matriz de orden o dimensión m n es una tabla numérica rectangular con m filas y n columnas.

VECTORES. Por ejemplo: la velocidad de un automóvil, o la fuerza ejercida por una persona sobre un objeto.

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Manual de usuario - Funcionalidades

LAS SUBCONSULTAS SQL SERVER Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

A25. Informática aplicada a la gestión Curso 2005/2006 Excel Tema 7. Funciones avanzadas de Excel II

TEMA 4 FRACCIONES MATEMÁTICAS 1º ESO

Uso del programa CALC

Prof. Dr. Paul Bustamante

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

CONSEJOS DE CÓMO CREAR UN DOCUMENTO ADOBE PDF ACCESIBLE A PARTIR DE UN DOCUMENTO MICROSOFT WORD ACCESIBLE

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA

MANUAL DE AYUDA MODULO TALLAS Y COLORES

Transcripción:

Programación II. I.T.I. de Gestión Ejercicios de Programación Orientada a Objetos Curso 2009/10 Ejercicio 1 Completar la clase PUNTO implementando las operaciones que faltan y utilizar esa clase en una aplicación simple que explote todas las características de PUNTO. Añadir métodos to_string_cartesianas y to_string_polares que devuelvan las coordenadas en cartesianas y polares respectivamente representadas en una cadena de caracteres, entre paréntesis y separadas por una coma. Nota: Las funciones seno, coseno, etc. son aplicables a variables de clase DOUBLE. Aplicar short a double.e nos permite conocer cómo se manejan. Ejercicio 2 Programar un conjunto de clases que representen figuras geométricas sencillas como triángulo, rectángulo, polígono en general, basándose en la clase PUNTO y si es necesario en clases predefinidas como arrays o listas. Debe ser posible desplazar la figura, imprimir sus vértices, calcular el perímetro, etc. ARRAY y LINK_LIST se encuentran en la biblioteca standard de SmallEiffel. Ejercicio 3 Elaborar una clase RACIONAL que modele los números racionales implementando al menos las operaciones de suma, resta, opuesto e inverso de un número racional a imitación de la suma o resta de los números reales o enteros. Ejercicio 4 Elaborar una clase COMPLEJO que modele los números complejos implementando al menos las operaciones de suma, resta y módulo de un número complejo a imitación de la suma o resta de los números reales o enteros. Ejercicio 5 Elaborar una clase POLINOMIO que modele los polinomios de grado dos implementando al menos las operaciones de suma (de un polinomio con Current para obtener un tercer polinomio) y producto por un número y el cálculo de las raíces reales del polinomio, si es que existen. Ejercicio 6 Escribir una clase RELOJ que simule el comportamiento de un cronómetro digital (con las características puesta_a_cero, incremento, etc.). Cuando el contador llegue a 23:59:59 y reciba el mensaje de incremento deberá pasar a 00:00:00.

Ejercicio 7 Elaborar una clase Eiffel que modele una fecha. La clase deberá disponer de características que devuelvan el día, el mes y el año, además de métodos que que devuelvan un STRING con la fecha en forma abreviada (16/02/2000) y extendida (16 de febrero de 2000) y de una función incremento, con un parámetro entero, que fabrique una nueva fecha, resultado de incrementar la original en ese número de días. Nota 1: Son años bisiestos los múltiplos de cuatro que no lo son de cien, salvo que lo sean de cuatrocientos, en cuyo caso si son bisiestos. Nota 2: Para la solución de este problema puede ser útil definir un método incrementa_un_dia. Nota 3: El ejercicio es mucho más divertido si no se utiliza la clase TIME de la biblioteca estandar de SmallEiffel Ejercicio 8 Elaborar una clase Eiffel que implemente de forma sencilla una pila genérica, utilizando para el almacenamiento un ARRAY. Elaborar una segunda implementación del mismo estilo, pero utilizando para el almacenamiento una LINKED_LIST. Ejercicio 9 Dentro de una biblioteca Eiffel en funcionamiento disponemos de una clase empleado definida del siguiente modo: class EMPLEADO creation {ANY} make feature {ANY} nombre: STRING; edad: INTEGER; nif: STRING; make(elnombre: STRING; laedad: INTEGER; elnif: STRING) is do nombre := clone(elnombre); edad := laedad; nif := clone(elnif); end; make muestra is do io.put_string("nombre: ");io.put_string(nombre);io.put_string(" %N"); io.put_string("edad: ");io.put_integer(edad);io.put_string(" %N"); io.put_string("nif: ");io.put_string(nif);io.put_string(" %N"); end; muestra end class EMPLEADO Al añadir nuevas capacidades a la biblioteca descubrimos que necesitamos modelar nuevos tipos de empleados: Empleado temporal, del que nos interesa saber la fecha de alta y de baja en la empresa. Empleado por horas. Nos interesa el precio de la hora trabajada, y el número de horas que ha trabajado este mes. El primero es un dato fijo, mientras el segundo varía todos los meses. Empleado fijo. Debemos añadir a la información que almacenamos sobre él el año de alta en la empresa.

Además debemos añadir a todos los empleados la funcionalidad de cálculo del sueldo con las siguientes consideraciones: En los empleados temporales el sueldo mensual es fijo. En los empleados fijos el sueldo es el resultado de sumarle a la base un complemento anual fijo multiplicado por el número de años en la empresa. En los empleados por horas el sueldo se calcula multiplicando su sueldo por hora por el número de horas de este mes. Diseñe (y escriba en Eiffel) las clases necesarias y sus relaciones para solucionar las nuevas necesidades detectadas. Ejercicio 10 En un puerto se alquilan amarres para barcos de distinto tipo. Para cada ALQUILER se guarda el nombre y DNI del cliente, las fechas inicial y final de alquiler, la posición del amarre y el barco que lo ocupará. Un BARCO se caracteriza por su matrícula, su eslora en metros y año de fabricación. Un alquiler se calcula multiplicando el número de días de ocupación (incluyendo los días inicial y final) por un módulo función de cada barco (obtenido simplemente multiplicando por 10 los metros de eslora) y por un valor fijo (1.200 pesetas en la actualidad). Sin embargo ahora se pretende diferenciar la información de algunos tipos de barcos: número de mástiles para veleros potencia en CV para embarcaciones deportivas a motor potencia en CV y número de camarotes para yates de lujo. El módulo de los barcos de un tipo especial se obtiene como el mólulo normal mas: el número de mástiles para veleros la potencia en CV para embarcaciones deportivas a motor la potencia en CV más el número de camarotes para yates de lujo. Utilizando la herencia de forma apropiada, diseñe el diagrama de clases y sus relaciones, con detalle de atributos y métodos necesarios. Programe en Eiffel los métodos que permitan calcular el alquiler de cualquier tipo de barco. Ejercicio 11 Dado n N podemos definir Z/nZ como el conjunto {0, 1,..., n 1} dotado de la operación suma definida por la fórmula a +b = (a + b) mod n, en el que cada número tiene un opuesto tal que la suma de los dos es cero y con una resta a b, definida como la suma de a con el opuesto de b. Elaborar una clase Eiffel que modele los números de Z/187Z proporcionando al menos suma, resta, opuesto y elemento «cero» como servicios. Nota: Ejercicio de examen del curso 2005/2006 Ejercicio 12 Elaborar una clase que modele ángulos medidos en grados. La clase debe incorporar al menos la suma de ángulos, su resta, el opuesto de un ángulo y el ángulo «cero», quedando bien entendido que el ángulo 0 0 y el ángulo 360 0 son el mismo. Nota: Ejercicio de examen del curso 2005/2006

Ejercicio 13 Un sistema informático dispone de una clase eiffel TRABAJO en cuya forma corta hemos visto una característica usuario:string. Elaborar una clase COLA_DE_TRABAJOS encargada de almacenar trabajos. Entre sus características deben aparecer obligatoriamente: «mete» que almacena un trabajo en la cola «primero» que devuelve el trabajo que más tiempo lleva en la cola «saca» que elimina de la cola el trabajo que más tiempo lleva en ella «trabajos» que devuelve el número de trabajos almacenados en la cola «trabajos_de» que devuelve un array con los trabajos almacenados en la cola asociados a un determinado usuario Nota: Ejercicio de examen del curso 2006/2007 Ejercicio 14 Elaborar una clase que modele ángulos medidos en grados. La clase debe incorporar al menos la suma de ángulos, su resta, el opuesto de un ángulo y el ángulo «cero», quedando bien entendido que el ángulo 0 0 y el ángulo 360 0 son el mismo. Nota: Ejercicio de examen del curso 2006/2007 Ejercicio 15 Para cierta implementación que no viene al caso, el departamento de diseño ha detectado la necesidad de implementar un nuevo tipo de números a los que ha denominado «números curiosos». Un número curioso se caracteriza por tres coordenadas reales (a, b, c) que verifican a 2 + b 2 + c 2 = 1, salvo en el caso del número «cero» cuyas coordenadas son (0, 0, 0). Sobre los números curiosos interesa realizar las siguientes operaciones: suma(otro:curioso):curioso definida mediante la fórmula: a 1 + a 2 (a 1, b 1, c 1 ) + (a 2, b 2, c 2 ) = ( (a1 + a 2 ) 2 + (b 1 + b 2 ) 2 + (c 1 + c 2 ), 2 b 1 + b 2 (a1 + a 2 ) 2 + (b 1 + b 2 ) 2 + (c 1 + c 2 ) 2, c 1 + c 2 (a1 + a 2 ) 2 + (b 1 + b 2 ) 2 + (c 1 + c 2 ) 2 ) cuando (a 1 + a 2 ) 2 + (b 1 + b 2 ) 2 + (c 1 + c 2 ) 2 0 y (0, 0, 0) en caso contrario. resta(otro:curioso):curioso definida mediante la siguiente fórmula: a 1 a 2 (a 1, b 1, c 1 ) (a 2, b 2, c 2 ) = ( (a1 a 2 ) 2 + (b 1 b 2 ) 2 + (c 1 c 2 ), 2 b 1 b 2 (a1 a 2 ) 2 + (b 1 b 2 ) 2 + (c 1 c 2 ) 2, c 1 c 2 (a1 a 2 ) 2 + (b 1 b 2 ) 2 + (c 1 c 2 ) 2 ) cuando (a 1 a 2 ) 2 + (b 1 b 2 ) 2 + (c 1 c 2 ) 2 0 y (0, 0, 0) en caso contrario.

opuesto:curioso Donde el opuesto del número (a, b, c) es el número ( a, b, c). giro:curioso. El resultado de girar un número curioso (a, b, c) es el número (b, c, a). Elaborar una clase Eiffel que implemente los números curiosos. Nota: Ejercicio de examen del curso 2007/2008 Ejercicio 16 Una cola se caracteriza porque el primer elemento en entrar será el primero en salir. Una implementación típica de la cola tiene las siguientes características: primero:g Devuelve el primer elemento que saldrá de la cola, Void si la cola está vacía mete(e:g) Introduce un elemento en la cola saca Elimina de la cola el primer elemento, si es que en la cola hay elementos. Ahora deseamos implementar una «cola con supervisión» en la que la mayoría de los elementos entran y salen de la forma tradicional, pero cada n elementos insertados, el siguiente se almacena de una forma especial para ser inspeccionado. De éste modo además de primero disponemos de primero_supervisado que es el primer elemento supervisado en la cola, y saca_supervisado que elimina el primer elemento supervisado que aparece en la cola. Implementar esta clase en Eiffel considerando que la cola puede tener varios elementos supervisados en espera, que estos elementos no deben ser extraídos por saca ni mostrados por primero, y que el valor n se fija al crear la cola y no puede ser cambiado Nota: Ejercicio de examen del curso 2007/2008 Ejercicio 17 Elaborar una clase Eiffel que permita almacenar elementos en un «orden mezclado». En este orden mezclado el primer elemento insertado se coloca el primero, el siguiente el último, y así alternativamente. Entre los servicios que la clase debe proporcionar deben aparecer al menos Inserción, que añade un elemento a la lista en el orden adecuado Elemento en la posición iésima, que devuelve el elemento que se encuentra en esta posición, si es que esta posición está ocupada Elementos que indica el número de posiciones ocupadas en este momento Poda, que elimina el primer elemento de la lista Nota: Ejercicio de examen del curso 2008/2009 Ejercicio 18 Una cola se caracteriza porque el primer elemento en entrar será el primero en salir. Una implementación típica de la cola tiene las siguientes características: primero:g Devuelve el primer elemento que saldrá de la cola, Void si la cola está vacía mete(e:g) Introduce un elemento en la cola saca Elimina de la cola el primer elemento, si es que en la cola hay elementos.

Ahora deseamos un tipo especial de cola que permita, mediante un método mezcla reordenar sus elementos tal y como se hace en la baraja con la mezcla americana, esto es, se divide en dos mitades, y se recolocan de tal modo que la última del primer montón pasa a ser la última, precedida por la última del segundo montón, precedida por la penúltima del primer montón, precedida por la penúltima del segundo montón,... Elaborar una clase Eiffel que modele el tipo de cola indicado. Nota: Ejercicio de examen del curso 2008/2009