Hola,
buenas tardes dato, estabamos intentando empezar el tp2, pero estamos sintiendo una cosa, en principio se nos ocurre tener structs de muchas cosas y eso como martin bien dijo no queda bien, pensabamos en la idea de tener tdas para esas cosas, y estamos notando que no sirven mas que para camuflar lo de los structs, no se si me explico bien.
ejemplo, struct especialidad, donde uno de sus miembros tranquilamente es un diccionario, donde tiene el nombre de una especialidad, y sus doctores
yo podria crear una primitiva que sea obtener doctor, y su unica linea seria return obtener(nombre_especialidad, doctor), o sea literalmente estoy usando una linea para usar una primitiva del tda diccionario
segundo ejemplo, si un doctor fuera un tda, donde sus miembros pueden ser, la especialidad y el numero de pacientes que atendieron una primitiva seria atender_paciente, donde su unica linea es hacer doctor->nro_pacientes++ estoy literalmente “camuflando” debajo de un supuesto tda, las llamadas con flechitas en mis structs de doctor, especialidad, y las que sea que tenga
mi consulta es, si ustedes estan esperando que usemos los tdas para esto, brindar simplemente funciones para barbara, aunque luego en el fondo estemos llamando a otros tdas o haciendo cosas muy elementales internamente
sentimos tentadora la idea de llenar de structs todo, y solo almacenar cosas en sus miembros, ya que notamos que al crear tdas, sus funciones en el fondo solo acceden a lo que haya en el struct, quiero saber si de todos modos esta bien crear tdas asi o si hay algo que nos estamos perdiendo, lo pregunto antes de caer en una reentrega muy grande
Es una pregunta válida, y tus observaciones son razonables.
En esta materia ocurren dos cosas: de un lado, solo nos da tiempo a rozar por encima lo que son cuestiones de diseño elegante para combinar todas las entidades de un programa (con entidades me refiero a doctores, clínicas, etc.)
Por otra, ocurre que los TDA (o TAD) a los que dedicamosmás de la mitad de la materia son… eso, tipos abstractos de datos. Este es un concepto muy amplio, pero lo que estoy queriendo decir es que todo lo que han implementado hasta la fecha son TDAs que almacenan cosas, y que son muy “unitarios/discretos” (hacen una sola cosa).
Hasta aquí la filosofía.
En términos prácticos, yo les recomiendo:
Bueno espero que esto pueda aclarar algo y ayude al resto de compañeras.
¡Saludos!
-d