.
5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
problema al hacer make grupo6 personasfecha-hay-imprimir
al ejecutar el make me apaerce exactamente lo que tiene que aparecer pero ademas me aparece esto y no estoy pudiendo resoleverlo, si me pueden decir si es algo de memoria que puede ser me seria de mucha ayuda, gracias de antemano
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
![Adjunto Captura desde 2024-08-20 22-12-21.png](https://eva.fing.edu.uy/pluginfile.php/518161/mod_forum/attachment/665613/Captura%20desde%202024-08-20%2022-12-21.png?forcedownload=1)
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Primero aclarar que no se admite compartir código dentro de los foros.
Luego, el error está en cómo comparas las fechas. Recuerda que fecha es un puntero, lo que significa que por más que apunten a "fechas" con el mismo valor al hacer el == como hiciste en realidad estás comparando el número de celda que apuntan en memoria por lo que la igualdad siempre da negativo (en sí cosas del lenguaje). Te recomiendo que uses una función que se encuentra en el módulo fecha que sí te permite comparar las fechas correctamente.
Saludos,
Raúl.
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
1>El grupo ha sido creado de forma exitosa.
2>3>Persona creada de forma exitosa.
4>Se ha agregado la persona al grupo de forma exitosa.
5>6>Persona creada de forma exitosa.
7>Se ha agregado la persona al grupo de forma exitosa.
8>9>Persona creada de forma exitosa.
10>Se ha agregado la persona al grupo de forma exitosa.
11>12>Persona creada de forma exitosa.
13>Se ha agregado la persona al grupo de forma exitosa.
14>15>Persona creada de forma exitosa.
16>Se ha agregado la persona al grupo de forma exitosa.
17>18>Persona creada de forma exitosa.
19>Se ha agregado la persona al grupo de forma exitosa.
20>Se encontraron personas en la fecha determinada.
21>Se encontraron personas en la fecha determinada.
22>Se encontraron personas en la fecha determinada.
23>No se encontraron personas en la fecha determinada.
24>Persona Persona1 Apellido1
Cedula: 1111111
Fecha de nacimiento: 1/1/2001
Persona Persona2 Apellido2
Cedula: 2222222
Fecha de nacimiento: 1/1/2001
25>Persona Persona3 Apellido3
Cedula: 3333333
Fecha de nacimiento: 1/1/2002
Persona Persona4 Apellido4
Cedula: 4444444
Fecha de nacimiento: 1/1/2002
26>Persona Persona5 Apellido5
Cedula: 5555555
Fecha de nacimiento: 1/1/2003
Persona Persona6 Apellido6
Cedula: 6666666
Fecha de nacimiento: 1/1/2003
27>28>Se ha borrado el grupo en forma exitosa.
29>Fin.
No se porque me devuelve las cédulas y las personas en cualquier orden.
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Si te pones a pensar, no te las está devolviendo en cualquier orden, sino que te las devuelve al revés. Recomienda que revises la función tanto de inserción como de impresión, alguna de esas debe tener el problema.
Saludos,
Raúl.
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Me esta dando este error continuamente y ya modifique esas funciones e igual sigue sin funcionar.
![Adjunto Captura de pantalla 2024-08-21 202253.png](https://eva.fing.edu.uy/pluginfile.php/518161/mod_forum/attachment/665748/Captura%20de%20pantalla%202024-08-21%20202253.png?forcedownload=1)
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Parece que tu implementacion sigue teniendo errores. Valgrind esta marcando dos ahi.
El primero indica que en la linea 94 de persona.cpp usas una variable sin inicializar.
El segundo es en la misma linea e indica que estas intentando acceder a memoria que nunca pediste (nunca hiciste el new) o que ya liberaste (hiciste el delete)
Como son en la misma linea, quizás se trate del mismo error.
Asegurate de estar inicializando todas las variables cuyo valor se usa en esa linea.
Saludos
Ignacio
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Por la salida que estas mostrando en la captura, no estas ejecutando el caso de prueba persona4-imprimirpersona al que hace referencia este hilo del foro. Esta pregunta debería haber ido (supongo) a otro foro.
Adivino, revisando los casos de prueba que les dimos que en realidad estas corriendo el caso de prueba grupo5-remover. Me lo podes confirmar?
Si ese es el caso, seguramente el error se produce en la función removerGrupo o liberarTPersona.
Recordá que siempre que liberas memoria de una variable ("puntero a algo") además de hacer el delete, deberías dejar el puntero inicializado en NULL
Revisa estas dos funciones.
Saludos
Alejandro B
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Soy yo o el caso de prueba "grupo 6" esta mal? Porque aquellas personas con las fechas idénticas las imprime en orden opuesto al que se añadieron al grupo.
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Pasa lo mismo con grupo 7.
Una duda además, con ordenar las personas de "menor a mayor por fecha de nacimiento", refiere a que la primer persona de arreglo debe ser la mas joven?
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Sí, la primera persona debe ser la más joven. Y si tuvieran la misma fecha de nacimiento, está antes la última ingresada.
Por lo que veo en tu impresión de pantalla los está mostrando en el orden correcto.
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
De todas maneras si la persona más joven debe estar al principio del array, entonces los casos de prueba grupo-3, grupo-5 y grupo-7 los muestran al revés.
![](https://eva.fing.edu.uy/pluginfile.php/518161/mod_forum/post/665789/image.png)
Ahí dejo el caso grupo-5 de ejemplo.
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Así es como debe ser. La letra dice: «Si dos personas tienen la misma fecha de nacimiento, debe aparecer primero en el grupo la
persona ingresada de forma más reciente.»
Saludos cordiales.
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Me estaria pasando solo esto y no sabria de que funcion seria el error que me lo genera.
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
¿Ya corriste los comandos del caso de prueba uno a uno a mano?
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Hola si ya los corri uno a uno a mano y en el unico que difiere con la salida es ese mismo, puede ser el manejo de los topes de los for de la funcion agregarGrupo ? porque si los modifico si se logra solucionar el error en este caso pero me surge con otro.Tambien eh modificado el algoritmo para ordenarse por orden de ingreso al grupo, de más nuevo a más antiguo pero no me cambia el resultado.
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
Buen día, cuando ejecuto los test me da que difiere con la salida, pero cuando lo pruebo a mano funciona correctamente solo que imprime la persona al revés, cuando solicita de la fecha 2001, entrega primero persona1 y luego persona2 y en el test entrega persona2 y después persona1, tiene que coincidir con el test en un caso asi?
![Adjunto Captura de pantalla (16).png](https://eva.fing.edu.uy/pluginfile.php/518161/mod_forum/attachment/665809/Captura%20de%20pantalla%20%2816%29.png?forcedownload=1)
![Adjunto Captura de pantalla (17).png](https://eva.fing.edu.uy/pluginfile.php/518161/mod_forum/attachment/665809/Captura%20de%20pantalla%20%2817%29.png?forcedownload=1)
Re: 5. Implementar las funciones imprimirPersonasFecha y hayPersonasFecha.
En el caso de prueba grupo5 imprime primero la persona mas adulta, tengo entendido que el array tiene que estar ordenado de la persona mas joven a la mas adulta