Estructura de datos y Programacion TRABAJO PRÁCTICO Nº 1

9 abr. 2012 - FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS. CARRERA: Licenciatura ... Un sistema de cuenta bancaria. 5. Dadas las siguientes ...
39KB Größe 12 Downloads 138 vistas
FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS CARRERA: Licenciatura en Sistemas de Informacion

ASIGNATURA: Estructura de datos y Programacion TRABAJO PRÁCTICO Nº 1

Fecha:09/04/2012

Tema: Programación Orientada a Objetos (POO) – Arreglos - Pilas y Colas estáticas. Objetivos: Que los alumnos logren  Habilidad para la aplicación de diagramas UML básicos.  Habilidad para identificar las distintas estructuras de datos básicas, tales como arreglos, pilas y colas utilizando Programación Orientada a Objetos.  Capacidad para utilizar los conceptos de abstracción, encapsulamiento, herencia y polimorfismo.  Destreza en el uso del entorno de desarrollo Netbeans y el lenguaje de programación Java.  Capacidad para ejecutar correctamente programas en lenguaje Java. Fecha de presentación: tres semanas a partir de la fecha de inicio del práctico. Condiciones de aprobación.  Este trabajo práctico debe realizarse en forma individual.  Los diagramas de flujo que se requieran en los enunciados deben estar completamente desarrollados, de manera prolija, e incluyendo las descripciones necesarias para su mejor seguimiento (identificación, variables utlizadas y sus funciones, etc.), cumpliendo las indicaciones relativas a la diagramación estructurada y modular.  La presentación implicará la entrega del material abrochado, o en una carpeta, contando con los siguientes ítems: o Carátula. Identificación completa del trabajo práctico con todos los datos del alumno y la asignatura, año, carrera, etc. o Desarrollo del práctico con hojas numeradas e identificadas. o Enviar el código de las aplicaciones solicitadas al correo de la materia [email protected]. El nombre del código deberá estar conformado de acuerdo al siguiente esquema: carrera_ ApellidoNomdelAlumno_NumEjerc. Enunciados. Orientación a Objetos. El paradigma de la Orientación a Objetos plantea la agrupación de entidades de datos de forma global de tal manera que puedan ser interpretados de una forma común por una misma estructura que los representa. 1. Lea la bibliografía sobre Programación Orientada a Objetos y responda a las siguientes preguntas: a. ¿Que es la POO? b. ¿Cuales son las características de la POO? c. ¿Que es un Objeto? d. ¿Que es una Clase? ¿Cuál es la diferencia entre Clase, Objeto e instancia? e. ¿Cómo se crea un objeto y donde se almacena? f. ¿Qué es un método?. g. ¿Qué significa UML?. Ejemplo: Clase Auto 2. Considere la clase Auto expresada en el Auto ejemplo utilizando notación UML. marca Siguiendo ese ejemplo defina la estructura de modelo cinco clases de objetos. color cantidadDePuertas encendido velocidad arrancar() apagar() ponerEnMarcha() frenar() obtenerInformacion() Estructura de Datos y Programación

Trabajo Práctico 1

Pag:1

FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS CARRERA: Licenciatura en Sistemas de Informacion

ASIGNATURA: Estructura de datos y Programacion TRABAJO PRÁCTICO Nº 1

Fecha:09/04/2012

3. Defina las siguientes clases indicando atributos y métodos, utilizando notación UML: a. Perro b. Cuenta bancaria c. Bicicleta 4. ¿Qué clases considera necesarias identificar en cada uno de los siguientes problemas? Determine los objetos que se requieren crear y sus propiedades para resolver funcionamientos básicos relativos a cada caso: a. Un sistema de inscripción de alumnos en materias. b. Un sistema de cuenta bancaria. 5. Dadas las siguientes clases, representelas mediante una jerarquía de clases utilizando notación UML: Barco, avión, colectivo, helicóptero, avión de pasajeros, tren, avión de carga, bote, automovil. Defina los atributos y métodos de cada clase teniendo en cuenta los principios de la Programación Orientada a Objetos. Arreglos. Un arreglo es un tipo de dato estructurado compuesto por un número finito de elementos, que se almacenan en memoria en forma contigua. Los elementos de un arreglo pueden ser referenciados mediante un mismo nombre y un subíndice de acuerdo a su posición en la estructura. 6. Defina de manera formal e informal el TAD Arreglo de N elementos enteros para el siguiente enunciado determinando el método constructor y los métodos que permitan:  Agregar elementos al arreglo.  Buscar en el arreglo un elemento ingresado, informar por pantalla si el número se encuentra o no en el arreglo.  Eliminar los elementos repetidos del arreglo, las posiciones repetidas quedaran iguales a cero. Se asume que los valores originales del arreglo son distintos de cero.  Mostrar todos los elementos del arreglo. a. Realice el diagrama UML de la clase indicando atributos y métodos. b. Elabore el diagrama de flujo estructurado de cada uno de los métodos de la clase Arreglo. c. Realice la programación y la ejecución del programa en lenguaje Java, utilizando el entorno de desarrollo (IDE) Netbeans. 7. Dados dos arreglos de dimensión 5, E: un arreglo de exponentes, C: un arreglo de coeficientes, que contienen la descripción de un polinomio con incógnita X cuyo valor se lee de la entrada. Realizar la evaluación del polinomio. Se pide: a. Identifique clases, atributos, métodos y objetos para resolver el problema aplicando POO. b. Realice el diagrama UML. c. Elabore el diagrama de flujo estructurado de cada uno de los métodos. d. Realice la programación y la ejecución del programa en lenguaje Java, utilizando el entorno de desarrollo (IDE) Netbeans. 8. Dada una matriz de NxN con valores entre 0 y 9, generar tres vectores de modo que:  El vector C tenga tantos elementos como columnas tenga la matriz y cada uno de ellos contenga un valor numérico resultante de la suma de los números de cada una de las columnas de la matriz.  El vector F tenga tantos elementos como filas tenga la matriz y cada uno de ellos contenga un valor numérico resultante de la suma de los números de cada una de las filas de la matriz.

Estructura de Datos y Programación

Trabajo Práctico 1

Pag:2

FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS CARRERA: Licenciatura en Sistemas de Informacion

ASIGNATURA: Estructura de datos y Programacion TRABAJO PRÁCTICO Nº 1

Fecha:09/04/2012



El vector D cuente con dos elementos numéricos resultantes de la suma de los valores de las diagonales de la matriz. Se pide: a. Identifique clases, atributos, métodos y objetos para resolver el problema aplicando POO. b. Realice el diagrama UML. c. Elabore el diagrama de flujo estructurado de cada uno de los métodos. d. Desarrolle la codificación de las clases utilizando el entorno de desarrollo(IDE) Netbeans. 9. Un sanatorio almacena la siguiente información de sus medicos. APELLIDO Y NOMBRE

DOCUMENTO

ESPECIALIDAD

CONSULTORIO

HORARIO

Se requiere atender las siguientes solicitudes en función de la información planteada:  Introducir información a la tabla.  Ingresar DNI y mostrar por pantalla toda la información de un médico.  Ingresar la especialidad y mostrar los medicos por especialidad. Se pide: a. Identifique clases, atributos, métodos y objetos para resolver el problema aplicando POO. b. Realice el diagrama UML. c. Elabore el diagrama de flujo estructurado de cada uno de los métodos. d. Desarrolle la codificación de las clases utilizando el entorno de desarrollo (IDE) Netbeans. Pilas. Una pila es una estructura de datos, que consta de una serie de datos, en la cual las inserciones y eliminaciones se hacen por un extremo, llamado tope de la pila. La estructura pila se conoce también como estructura LIFO (last-in, first-out), que significa “ultimo elemento introducido, primero sacado”. 10. Defina de manera formal e informal el TAD Pila de N elementos enteros para el siguiente enunciado determinando el método constructor y sus métodos básicos pilaVacia(), pilaLlena(), push(), pop(). Desarrollar una clase que utilice los métodos de la clase Pila y que cumpla con las siguientes tareas:  Imprimir todos los elementos de la pila y la cantidad de elementos.  Buscar en la Pila un valor x leído de la entrada, indicar si existe el elemento en la pila, caso contrario mostrar mensaje “no existe elemento” .  Asignar a x el tercer elemento desde la parte superior de la pila, dejando la pila sin sus elementos de la parte superior.  Asignar a x el segundo elemento desde la parte superior de la pila, sin modificarla.  Asignar a x el elemento fondo de la pila, dejando la pila vacía.  Asignar a x el elemento fondo de la pila, sin modificarla. a. Realice el diagrama UML de las clases indicando atributos y métodos. b. Elabore el diagrama de flujo estructurado de cada uno de los métodos de las clases. c. Realice la programación y la ejecución del programa en lenguaje Java, utilizando el entorno de desarrollo (IDE) Netbeans. 11. Una playa de estacionamiento “Santiago” cuenta con una sola línea de estacionamiento y tiene capacidad para guardar hasta 50 coches. Existe solamente una entrada/salida al estacionamiento, en uno de los extremos del mismo. Si un usuario llega a retirar su coche que no está cerca de la salida, todos los coches que están bloqueando su salida son retirados, el coche del usuario sale y los otros coches son regresados al estacionamiento. Se solicita:  Cuando un coche llega mostrar el mensaje indicando si hay o no espacio en el estacionamiento. Si no hubiera espacio deberá mostrar el mensaje “Estacionamiento lleno”. Estructura de Datos y Programación

Trabajo Práctico 1

Pag:3

FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS CARRERA: Licenciatura en Sistemas de Informacion

ASIGNATURA: Estructura de datos y Programacion TRABAJO PRÁCTICO Nº 1

Fecha:09/04/2012



Cuando un coche sale del estacionamiento debe inclurise en el mensaje el número de autos que fueron movidos para permitir que el coche saliera. Para esto se debe tener en cuenta que se ingresa la matricula del mismo y la letra “E” si el auto esta llegando y “S” si esta por salir Responda: a. Que estructura de datos se requiere para resolver el problema? Identifique las operaciones básicas que requiere dicha estructura. b. Identifique clases, atributos, métodos y objetos para resolver el problema aplicando POO. c. Elabore el diagrama de flujo estructurado de cada uno de los métodos. d. Desarrolle la codificación de las clases utilizando el entorno de desarrollo(IDE) Netbeans. 12. Un alumno guarda un montón de apuntes correspondientes a las tres asignaturas en las que se encuentra matriculado. En cada momento tan sólo puede acceder al apunte que está situado en la parte superior del montón. Para cada apunte se conoce la siguiente información: asignatura, tema, número de páginas y precio. Se pide:  Clasificar los apuntes por asignaturas en montones separados. Defina la estructura de datos más adecuada para almacenar los montones clasificados.  Una vez clasificados los apuntes mostrar la asignatura en cuyos apuntes el alumno ha gastado más dinero. a. Identifique clases, atributos, métodos y objetos para resolver el problema aplicando POO. b. Realice el diagrama UML e identifique la jerarquía de clases si fuera pertinente. c. Elabore el diagrama de flujo estructurado de cada uno de los métodos. d. Desarrolle la codificación de las clases utilizando el entorno de desarrollo(IDE) Netbeans. Colas. Una cola es una estructura FIFO (first-in, first-out) también llamada estructura FCFS (first come, first served). Los elementos de esta estructura se añaden por un extremo llamado final o fin (rear, tail) y se eliminan por el otro extremo llamado frente o cabeza (front, head). 13. Defina de manera formal e informal el TAD Cola de N elementos enteros para el siguiente enunciado determinando el método constructor y sus métodos básicos colaVacia(), colaLlena(), sacar(), poner(). Desarrollar una clase que utilice los métodos de la clase Cola y que cumpla con las siguientes tareas:  Cargar una cola con N números impares. Mostrar los valores en el mismo orden en que fueron cargados pero considerando que debe mostrarse como primer elemento la cantidad de números cargados, dicho valor no viene dado como dato.  Eliminar los R primeros números cargados.  Cargar nuevamente X elementos impares, a continuación del último almacenado.  Verificar si existen en la cola, elementos repetidos. Si es así mostrar cuales son, y eliminarlos sin modificar la posición del resto de los elementos dentro de la cola. Nota: Para la eliminación, si se quieren eliminar R elementos, por lo menos debe haber R+1 elementos cargados. Para la inserción de nuevos elementos, si se quieren agregar X elementos, debe haber por lo menos la misma cantidad de espacio vacío, a fin de evitar un desborde.



Leer una serie de números pares e impares. Los números pares vienen ordenados en forma decreciente y los impares en forma creciente. Los pares e impares vienen mezclados, pero respetando la secuencia dentro de cada grupo. El fin de la secuencia de números está dado por un número negativo. Se los debe ingresar a todos y posteriormente imprimirlos en forma ascendente. a. Realice el diagrama UML de la clase indicando atributos y métodos. b. Elabore el diagrama de flujo estructurado de cada uno de los métodos de las clases. c. Realice la programación y la ejecución del programa en lenguaje Java, utilizando el entorno de desarrollo (IDE) Netbeans.

Estructura de Datos y Programación

Trabajo Práctico 1

Pag:4

FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIAS CARRERA: Licenciatura en Sistemas de Informacion

ASIGNATURA: Estructura de datos y Programacion TRABAJO PRÁCTICO Nº 1

Fecha:09/04/2012

14. Un Banco tiene una cola B con una capacidad máxima de 50 personas con los siguientes datos para cada persona ubicada en la cola: código de cliente, tipo de transacción. Se requiere conocer el tiempo que le lleva atender a los clientes que realizan extracción, teniendo en cuenta que los tiempos estimados de cada transacción son los siguientes: Tipo 1 2 3

Minutos 5 6 8

Descripción Extracción Deposito Pagos

Responda: a. Que estructura de datos se requiere para resolver el problema? Identifique las operaciones básicas que requiere dicha estructura. b. Identifique clases, atributos, métodos y objetos para resolver el problema aplicando POO. c. Elabore el diagrama de flujo estructurado de cada uno de los métodos. d. Desarrolle la codificación de las clases utilizando el entorno de desarrollo(IDE) Netbeans. 15. Una librería registra las ventas de sus libros y los pedidos de aquellos libros de los que no hay existencia en el local. Se almacena la información de cada libro en una Cola llamada Stock la cual registra la siguiente información: Titulo del libro, precio de venta y cantidad existente. Así mismo para los pedidos insatisfechos utiliza en una estructura que se maneja por estricto orden de llegada y en la que se registra: Titulo del libro, Nombre de la persona, Dirección y Cantidad de ejemplares,. Se pide:  Ingresar el Titulo de un libro y la cantidad de ejemplares que necesita un cliente, y luego proceder a verificar si hay stock del mismo.  En caso afirmativo, actualizar el Stock de ese libro con la cantidad vendida; y en caso contrario, registrar la demanda insatisfecha en Pedidos, no olvidando ingresar la información faltante. a. Identifique clases, atributos, métodos y objetos para resolver el problema aplicando POO. b. Realice el diagrama UML e identifique la jerarquía de clases si fuera pertinente. c. Elabore el diagrama de flujo estructurado de cada uno de los métodos. d. Desarrolle la codificación de las clases utilizando el entorno de desarrollo(IDE) Netbeans. Recursos Bibliograficos  JOYANES AGUILAR - ZAHONERO MARTINEZ. Programación en JAVA 2 - Algoritmos, Estructuras de Datos y Programación orientada a objetos. Mc Graw Hill -2002..  JOYANES AGUILAR – ZAHONERO MARTINEZ. Estructura de datos en Java. Mc Graw Hill -2008.  DEITEL P.J. JAVA- como programar”- Pearson- Prentice Hall. Septima edición 2008  WEISS MARK ALLEN. Estructuras de datos en JAVA. Addison-Wasley- 2006.  CAIRO, OSVALDO. Estructuras de datos. Mc Graw Hill - 2006.

Recursos de Software  NetBeans versión 7.1  Java 2EE.

Estructura de Datos y Programación

Trabajo Práctico 1

Pag:5