Está en la página 1de 3

Algoritmos y Programación I

Primer Examen Escrito - 2018-1

Nombre:

Código: Fecha: 10 de Marzo de 2018

Unidad 1: Introducción a la solución de problemas utilizando algoritmos


OE1.2. Analizar un problema que se va a resolver usando un programa de computador, construyendo un modelo con los elementos que
intervienen en el problema y especificando los servicios que el programa debe ofrecer.
OE1.5. Utilizar expresiones simples: declaraciones de variables, asignaciones e invocaciones a métodos. Esto implica entender los conceptos de
parámetro y de creación de objetos.
OE1.7. Interpretar la documentación (modelos conceptuales y especificación de las operaciones) de una solución con el fin de: a) llevar a cabo
la implementación con base en el diseño (rol del programador vs rol del diseñador), b) comprender el desarrollo en su totalidad, c)
verificar la coherencia entre análisis, diseño e implementación (trazabilidad de los elementos en los artefactos del desarrollo) y, d)
validar la solución propuesta en el diseño con las necesidades del usuario expuestas en los requerimientos funcionales.

Unidad 2: Solución de problemas utilizando estructuras de control condicionales


OE2.1 Modelar las características de un objeto, utilizando tipos de datos primitivos y la técnica de definir constantes para representar los
valores posibles de un atributo.
OE2.2. Utilizar expresiones aritméticas, lógicas, relacionales y operaciones con cadenas en el cuerpo de un método.
OE2.4. Utilizar las instrucciones condicionales como parte del cuerpo de un algoritmo, para poder considerar distintos casos de la solución de
un problema.

Enunciado para los Puntos 1 y 2.


Una reconocida empresa de desarrollo de software lo ha contratado para que lleve a cabo el análisis y diseño de un nuevo e
importante programa que permitirá que los usuarios registren las actividades de un proyecto en el que se encuentren
trabajando de acuerdo con el método Kanban. La idea del método es bastante simple: que las actividades siempre estén en uno
de 3 estados posibles: Por Hacer, Haciendo o Hecho, ya que una tarea siempre estará pendiente por realizar, en proceso de
realización y completada. Habrá un estado adicional en el cual se podrán registrar notas interesantes relacionadas con el
proyecto. En esta primera fase del proyecto, ​todas las notas de un estado se guardarán siempre en una misma cadena en dicho
estado. En el programa se podrán actualizar las notas de un estado, se podrá cambiar el nombre de cada estado, por ejemplo si
una persona lo quiere personalizar y ponerlo en inglés (To Do, Doing, Done) o en otro idioma o simplemente poner títulos más
divertidos. Se permitirá también reiniciar un estado, con lo cual todas las notas de él desaparecerán. Cada estado debe tener la
fecha y hora de la última actualización, así como la cantidad de veces que se han actualizado sus notas. El programa debe
permitir consultar el estado que tenga las notas más extensas (mayor cantidad de caracteres) escritas en él y el que tenga más
actualizaciones. Adicionalmente, el programa debe permitir el registro de los objetivos del proyecto, que por la misma
simplicidad del método utilizado no deben ser más de 3 ni menos de 1. Todo objetivo tiene una definición, una descripción del
entregable (es decir, qué artefacto evidenciará al final que el objetivo se cumplió) y un tiempo de cumplimiento estimado en
meses.

1. [25%][​OE1.2​] Requerimientos Funcionales


Escriba tres requerimientos funcionales del programa que se planea construir de acuerdo con el enunciado anterior.

2. [25%][​OE1.2, OE2.1.​] Diagrama de Clases

1
Dibuje el diagrama de clases que modele la solución del programa descrito en el enunciado anterior.
3. [25%][​OE1.2, OE2.1, OE1.7​] Diagrama de Objetos
El vecino que vive en la casa enseguida a la suya ha construido un edificio de 4 pisos, con un apartamento en cada uno, listos
para alquilar y quiere contar con un programa que permita gestionar la información de las personas a quienes les alquila. Por lo
anterior usted le ha diseñado el diagrama de clases que se presenta a continuación. Como el vecino está muy entusiasmado por
el desarrollo que usted se encuentra haciendo quiere saber qué significa “eso del diagrama de clases” y cómo dicho diagrama le
permite modelar la información de sus apartamentos e inquilinos. Usted ha tenido entonces una excelente idea, mostrarle cómo
con base en ese diagrama se puede representar la información concreta actual ​a través de un diagrama de objetos​. El edificio
tiene actualmente 2 apartamentos sin alquilar.

4. [25%][​OE1.5, OE2.2, OE2.4​] Algoritmos


Su abuelo en retiro tiene bastante tiempo libre y entre las ideas que ha estado elaborando se le ocurrió empezar a obtener un
poco de dinero del amplio antejardín de su vieja pero muy bien ubicada casa cerca del centro de convenciones de la ciudad. Ha
decidido convertirlo en parqueadero y por tanto necesita que se empiece a desarrollar el programa que le permita realizar el
registro de los vehículos que ingresan y salen del mismo. Un familiar que también estudia ingeniería y ya vió este curso le ha
dejado un borrador de diagrama de clases (que evidentemente necesita ser completado, pero en otra ocasión se hará) y la tarea
de ​implementar el método que calcula el valor a pagar de un vehículo​.

Tenga en cuenta que las horas se manejan en formato


militar, es decir, desde las 0 hasta las 24 horas y no se
manejarán minutos. Si alguien llega a las 5:15pm se
ignorarán los minutos y se registrará el número 17. Al
ingresar el vehículo se crea un recibo con la hora de
entrada. La hora de salida se registra en el momento
en que el conductor del vehículo regresa a retirarlo y
luego el programa invoca el método que permite
calcular el valor a pagar de acuerdo con la siguiente
tabla.

Tiempo Autos Motos


Menos de 1 hora 20 4
3 horas 15 x cada hora 3 x cada hora
Mas de 3 horas 10 x cada hora 2 x cada hora

Usted debe escribir la implementación utilizando


lenguaje Java únicamente del método encargado de
calcular el valor a pagar de acuerdo con el diagrama de
clases presentado a la derecha.

2
3

También podría gustarte