virtualword
Te invitamos a registrarte para poder acceder a todo el contenido gratuito que esta comunidad provee.

Saludos Wink

Lección 038: Teoría de Objetos

Ir abajo

Lección 038: Teoría de Objetos

Mensaje  Kyshuo Ayame el Vie Nov 29, 2013 4:59 pm

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:

Código:
p:= CrearPersona("Kyshuo", "Ayame", 1234, 24, MASCULINO);
ImprimirPersona deberá mostrar:

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:
avatar
Kyshuo Ayame
Admin

Mensajes : 105
Fecha de inscripción : 14/11/2012
Edad : 29

Ver perfil de usuario http://virtualworld.forouruguay.net

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.