4. Implemente las funciones perteneceVisitaDiaTHashVisitaDia y obtenerVisitaDiaTHashVisitaDia

4. Implemente las funciones perteneceVisitaDiaTHashVisitaDia y obtenerVisitaDiaTHashVisitaDia

de Manuel Freire -
Número de respuestas: 11

Dudas sobre la parte 4

En respuesta a Manuel Freire

Re: 4. Implemente las funciones perteneceVisitaDiaTHashVisitaDia y obtenerVisitaDiaTHashVisitaDia

de Santiago Noel Pombo Fontes -
Hola buenas, tengo un problema en esta parte que dice que debo agregar un return o verificar si existe un elemento de tipo VisitaDia. Lo que está ocurriendo es que se me da una fecha para buscar y la fecha, de hecho, tiene el mismo hash para un elemento que ya está guardado pero, de todas formas, no es la misma fecha. Por ejemplo, me piden obtenerVisitaDiaHashVisitaDia 28/02/2000 y tengo ya almacenado un visitaDia con fecha 28/02/2024, este objeto tiene el mismo hash pero no la misma fecha, lo que pasa es como hago para que compare estas 2 fechas y no me retorne el objeto con fecha 28/02/2024. Probé a copiar la función comparar fechas del modulo fecha.cpp y salió bien, pero para hacerlo tuve que copiar las funciones y el struct ya que el módulo fecha no se incluyó para su uso. ¿Podrían decirme cómo solucionarlo.
Otra cuestión, algo similar está sucediendo en el módulo de galería con el método obtenerVisitaDiaTGaleria. No entiendo qué puedo hacer para poder decir si me están dando el día de hoy de la galería o si es un día anterior.
En respuesta a Santiago Noel Pombo Fontes

Re: 4. Implemente las funciones perteneceVisitaDiaTHashVisitaDia y obtenerVisitaDiaTHashVisitaDia

de Pablo Andres Balliva Costa -

Si no te estoy entendiendo mal, tenés un problema de compresión de lo que es un hashmap.

Básicamente, no estás teniendo en cuenta que al usar la función de hash para acceder a una entrada de la tabla lo que obtenés es una lista enlazada. Tenés que ir recorriendo la lista de todas esas fechas que tienen el mismo hash para ver si alguna coincide con la tuya. Repasá el material teórico, que te va a ser más útil que lo que te acabo de escribir.

En respuesta a Pablo Andres Balliva Costa

Re: 4. Implemente las funciones perteneceVisitaDiaTHashVisitaDia y obtenerVisitaDiaTHashVisitaDia

de Santiago Noel Pombo Fontes -
Si si eso lo entiendo pero la cosa está en como diferenció las fechas. Lo que yo probé fue copiar y pegar el struct de fecha y la función de comparar y me funcionó. Mi pregunta es está bien hacer esto o existe otra forma de hacerlo?
En respuesta a Santiago Noel Pombo Fontes

Re: 4. Implemente las funciones perteneceVisitaDiaTHashVisitaDia y obtenerVisitaDiaTHashVisitaDia

de Federico Rivero -
Hola Santiago!

No entiendo bien por qué precisarías copiar la estructura. Podés usar compararTFechas desde ese módulo directamente sin tener que hacer ningún agregado.

Saludos,
     Federico
En respuesta a Federico Rivero

Re: 4. Implemente las funciones perteneceVisitaDiaTHashVisitaDia y obtenerVisitaDiaTHashVisitaDia

de Santiago Noel Pombo Fontes -
En respuesta a Santiago Noel Pombo Fontes

Re: 4. Implemente las funciones perteneceVisitaDiaTHashVisitaDia y obtenerVisitaDiaTHashVisitaDia

de Pablo Andres Balliva Costa -

Parece que no, pero sí: hashVisitaDia.h incluye visitaDia.h, que incluye grupoABB.h, que incluye visitante.h, que incluye fecha.h. Los programadores de todos los lenguajes no se han puesto de acuerdo en cual es la mejor forma de documentar las dependencias, y pasan estas cosas :D

En respuesta a Manuel Freire

Re: 4. Implemente las funciones perteneceVisitaDiaTHashVisitaDia y obtenerVisitaDiaTHashVisitaDia

de Gonzalo Fleitas Queiruga -
Buenas, puede ser que las salidas estén mal? Ya que al hacer el pertenece de una fecha, la cual fue agregada anteriormente, en la salida dice como que esta no pertenece al hash, pero yo creo que debería pertenecer. Puede ser que sea un error en la salida que subieron, o sería un error mío. Repito, la fecha ya fue agregada al hash anteriormente.
En respuesta a Gonzalo Fleitas Queiruga

Re: 4. Implemente las funciones perteneceVisitaDiaTHashVisitaDia y obtenerVisitaDiaTHashVisitaDia

de Federico Rivero -
Hola Gonzalo,

Te animás a mostrar la entrada que estás probando y destacar cuál es el comando que te parece que genera el error?

Gracias,
Federico
En respuesta a Federico Rivero

Re: 4. Implemente las funciones perteneceVisitaDiaTHashVisitaDia y obtenerVisitaDiaTHashVisitaDia

de Gonzalo Fleitas Queiruga -
Esta es la entrada:
crearVisitaDia 10/09/2023
crearGrupoABB
crearVisitante 4 Jasmina Vidal 31
agregarAGrupoABB
encolarGrupoVisitaDia
agregarVisitaDiaHashVisitaDia

Y luego al hacer esta otra entrada:
perteneceVisitaDiaHashVisitaDia 10/09/2000

A mi me dice que el visitaDia pertenece, cuando supuestamente no tendría que pertenecer.
En respuesta a Gonzalo Fleitas Queiruga

Re: 4. Implemente las funciones perteneceVisitaDiaTHashVisitaDia y obtenerVisitaDiaTHashVisitaDia

de Federico Rivero -

Hola Gonzalo,

Nuestra salida para esa entrada dice:

40> La visitaDia de fecha 10/9/2000 NO pertenece al hash.

lo cual es cierto. La visita dia que sí pertenece es del 10/09/2023. Los años son diferentes.

Saludos,

         Federico