Lección 038: Teoría de Objetos
Página 1 de 1.
Lección 038: Teoría de Objetos
Ejercicios básicos sobre el tema Teoría de Objetos explicado en la lección 38:
Ejercicio 1:
Dado el módulo Persona con el que se ha trabajado en las lecciones modificarlo de modo tal que el atributo Cargo de tipo TCargo ya no exista en él. Eliminar también la definición de dicho tipo en el archivo de definición y las operaciones que lo modifican y retornan.
Agregar una operación ImprimirPersona que reciba un parámetro de tipo Persona y muestre sus datos en la salida estándar respetando el siguiente formato:
NOMBRE: [NOMBRE] [APELLIDO]
DOCUMENTO: [DOCUMENTO]
EDAD: [EDAD]
SEXO: [SEXO]
Por ejemplo, si se crea un objeto mediante la siguiente instrucción:
Ejercicio 2:
Definir e implementar un TAD Hora que modele el funcionamiento de la hora mediante los atributos: horas, minutos y segundos. El TAD debe permitir el siguiente comportamiento:
=====================================================================================
Ejercicio 3:
Crear un módulo Cargo que implemente un tipo Cargo con atributos:
==================================================================================
Navegación:
Ejercicio 1:
Dado el módulo Persona con el que se ha trabajado en las lecciones modificarlo de modo tal que el atributo Cargo de tipo TCargo ya no exista en él. Eliminar también la definición de dicho tipo en el archivo de definición y las operaciones que lo modifican y retornan.
Agregar una operación ImprimirPersona que reciba un parámetro de tipo Persona y muestre sus datos en la salida estándar respetando el siguiente formato:
NOMBRE: [NOMBRE] [APELLIDO]
DOCUMENTO: [DOCUMENTO]
EDAD: [EDAD]
SEXO: [SEXO]
Por ejemplo, si se crea un objeto mediante la siguiente instrucción:
- Código:
p:= CrearPersona("Kyshuo", "Ayame", 1234, 24, MASCULINO);
- Código:
NOMBRE: Kyshuo Ayame
DOCUMENTO: 1234
EDAD: 24
SEXO: MASCULINO
Ejercicio 2:
Definir e implementar un TAD Hora que modele el funcionamiento de la hora mediante los atributos: horas, minutos y segundos. El TAD debe permitir el siguiente comportamiento:
- Crear una Hora sin pasar argumentos de modo que se establecerá en 00:00:00.
- Crear una Hora mediante un constructor completo.
- Obtener los segundos.
- Obtener los minutos.
- Obtener las horas.
- Asignar los segundos.
- Asignar los minutos.
- Asignar las horas.
Las tres operaciones de asignación anteriores deben controlar los valores pasados. Por ejemplo, si se quiere asignar los minutos debe verificarse que estos no sean mayores a 59. Si se pasa un valor superior se entederá que se pasó el valor 59 como argumento. Deben aplicar la misma lógica para los segundos y las horas. Se sugiere utilizar constantes para definir estos valores. - Aumentar la hora por segundos: Se pasará una cantidad de se segundos y en función de eso se modificará la hora sumándole los segundos asignados.
- Aumentar la hora por minutos: Ídem anterior pero para minutos.
- Aumentar la hora por horas: Ídem anterior pero para horas.
Para las tres operaciones anteriores tomar en cuenta que la hora aumenta de forma rotativa, es decir que, si tenemos la hora 23:59:59 y le sumamos un segundo pasaremos a la hora 00:00:00,
Se sugiere utilizar una operación auxiliar que aumente solo un segundo para una hora dada, luego usar esa operación para implementar las demás. - Comparar dos horas distintas y saber si corresponden a la misma hora.
- Comparar dos horas disntitas y saber si la primera es mayor a la segunda.
- Imprimir la hora en la salida estándar en el formato hh:mm:ss.
- Eliminar la hora.
=====================================================================================
Ejercicio 3:
Crear un módulo Cargo que implemente un tipo Cargo con atributos:
- Nombre: El nombre del cargo.
- Valor hora: El valor que se gana por hora de trabajo bajo el cargo en cuestión.
- Horas semanales: La cantidad de horas semanales de trabajo que requiere el cargo.
- Tipo de horario: El tipo de horario que implementa el cargo. Dicho tipo puede tener uno de los siguientes valroes:
- Fijo: Para este caso se requiere una hora de inicio y una hora de fin (Usar el tipo Hora del ejercicio anterior).
- Flexible: En este caso no se requieren datos adicionales ya que el horario flexible no tiene una hora fija de entrada o salida.
==================================================================================
Navegación:
- Ir al índice del curso.
- Ir al índice de ejercicios de Modula 2.
Temas similares
» Lección 003: Acerca de la teoría
» Soluciones lección 033 a 035
» Soluciones lección 005
» Lección 001: Sugerencias
» Soluciones lección 038
» Soluciones lección 033 a 035
» Soluciones lección 005
» Lección 001: Sugerencias
» Soluciones lección 038
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.