Purpose (do/learn; why this/here): Extend the ADT by adding a date
ADT, adapting the contact
ADT to accept it, and adding more helper blocks.
Can we cut all the commented out text on this page? --MF, 22/7/19
MARY: change the DATE ADT to use the correct ADT format. --MF, 5/23/20
BRIAN: as a low priority (that is, after ALL the solutions for all units and all optional projects are done), you want to add a "parse a date" TIF. --MF, 5/23/20
En esta página, desarrollarás un tipo de dato abstracto (TDA) para almacenar y acceder a fechas, y adaptarás tu tipo de dato abstracto de contacto para usarlo para almacenar el cumpleaños de cada contacto.
A medida que agregamos más complejidad a los contactos (cumpleaños, dirección del trabajo, etc.), la ubicación de cada dato (como el número de teléfono) dentro de un contacto puede cambiar. Aquí es donde ayuda un tipo de dato abstracto. Si tuvieras que mover el número de teléfono a medida que refinas tu tipo de dato abstracto de contacto, podrías arreglar cada bloque que usa el número de teléfono, o si tienes un tipo de dato abstracto, podrías simplemente arreglar el único selector que elige el número de teléfono de la lista. Con ese único cambio, todos los demás bloques que usen ese selector obtendrán los datos que necesitan automáticamente.
Observa que el nombre, la dirección y el texto son cadenas, pero la fecha de nacimiento es una lista. Puedes combinar elementos de diferentes tipos de una lista.
fecha
que acepte estos datos como entrada y luego reporte una fecha como una lista de tres elementos.fecha
en el tipo de dato abstracto de contacto
.
contacto
para aceptar una fecha de nacimiento como una lista usando el constructor fecha
.fecha de nacimiento del contacto
para recuperar la fecha de nacimiento del contacto ingresado.Puedes usar varios bloques de preguntas y respuestas junto con variables de programa.
Otra forma es usar abstracción y crear otro ayudante, que reporta una lista de las respuestas del usuario a estas indicaciones:
lista de contactos
y agrega algunos contactos nuevos con cumpleaños. Soluciona cualquier problema.