4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
buenas tardes tengo una consulta cuando ejecuto el test, me da como salida los siguiente :
make t-listaPromociones3-finalizadas-activas
12,96c12
< 11> Promociones finalizadas:
< Promocion #1 del 1/1/2002 al 1/5/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 12> Promocion #2 del 1/2/2002 al 1/6/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< Promocion #3 del 1/3/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 13> Promociones finalizadas:
< Promocion #2 del 1/2/2002 al 1/6/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 14> Promocion #3 del 1/3/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 15> Promociones finalizadas:
< Promocion #3 del 1/3/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 16> 17> Lista promociones liberada con exito.
< 18> Lista de promociones creada con exito.
< 19> Promocion creada con exito.
< 20> Productos agregados a la promocion de forma exitosa.
< 21> Se ha agregado la promocion a la lista de forma exitosa.
< 22> Promocion creada con exito.
< 23> Productos agregados a la promocion de forma exitosa.
< 24> Se ha agregado la promocion a la lista de forma exitosa.
< 25> Promocion creada con exito.
< 26> Productos agregados a la promocion de forma exitosa.
< 27> Se ha agregado la promocion a la lista de forma exitosa.
< 28> Promocion #1 del 1/1/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< Promocion #2 del 1/2/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< Promocion #3 del 2/3/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 29> Promociones finalizadas:
< Promocion #1 del 1/1/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< Promocion #2 del 1/2/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< Promocion #3 del 2/3/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 30> 31> Lista promociones liberada con exito.
< 32> Lista de promociones creada con exito.
< 33> Promocion creada con exito.
< 34> Productos agregados a la promocion de forma exitosa.
< 35> Se ha agregado la promocion a la lista de forma exitosa.
< 36> Promocion creada con exito.
< 37> Productos agregados a la promocion de forma exitosa.
< 38> Se ha agregado la promocion a la lista de forma exitosa.
< 39> Promocion creada con exito.
< 40> Productos agregados a la promocion de forma exitosa.
< 41> Se ha agregado la promocion a la lista de forma exitosa.
< 42> Promociones activas:
< Promocion #1 del 1/1/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 43> Promocion #2 del 1/2/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< Promocion #3 del 2/3/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 44> Promociones activas:
< Promocion #2 del 1/2/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 45> Promocion #3 del 2/3/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 46> Promociones activas:
< Promocion #3 del 2/3/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 47> 48> Lista promociones liberada con exito.
< 49> Lista de promociones creada con exito.
< 50> Promocion creada con exito.
< 51> Productos agregados a la promocion de forma exitosa.
< 52> Se ha agregado la promocion a la lista de forma exitosa.
< 53> Promocion creada con exito.
< 54> Productos agregados a la promocion de forma exitosa.
< 55> Se ha agregado la promocion a la lista de forma exitosa.
< 56> Promocion creada con exito.
< 57> Productos agregados a la promocion de forma exitosa.
< 58> Se ha agregado la promocion a la lista de forma exitosa.
< 59> Promociones activas:
< Promocion #1 del 1/1/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< Promocion #2 del 1/2/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< Promocion #3 del 2/3/2002 al 1/7/2002
< Productos: 0 1 2 3 4 5 6 7 8 9
< 60> 61> Lista promociones liberada con exito.
< 62> Fin.
---
> 11>
\ No newline at end of file
no se que quiere decir \ No newline at end of file
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Las salidas al ejecutar los comandos de tipo t-* corresponden a la ejecucion del comando `diff`. Este comando compara dos archivos (en nuestro contexto, el .out y el .sal). La salida que adjuntas muestra las diferencias entre los archivos del caso de prueba correspondiente. Primero indica lo que hay en el .out que no esta en el .sal y luego al reves. "\ No newline at end of file" simplemente indica que al final del archivo no hay un caracter indicador de fin de linea ("\n"), como suele haber en los archivos Unix.
Saludos.
Ignacio.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Bien gracias, tenia la dudas si era normal o por error había modificado los .h
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Viendo la función 'obtenerPromocionesActivas' noté que un caso de prueba puede incluir tener una lista de promociones, tal que existen pasadas y activas intercaladas; por ejemplo: sean A1: 01/01/2024-01/12/2024, P1: 02/01/2024-03/01/2024, A2: 03/01/2024-01/12/2024, y fecha: 14/10/2024. Quedaría listaPromoEj->A1->P1->A2->NULL , es correcto? Ahora, para resolverlo, pensé recorrer la lista parámetro, hasta llegar al final ó a una promoción futura, preguntando si cada promo es 'activa' (usaría una función auxiliar), luego copiar cada promoción activa con las funciones disponibles, insertarla en la lista resultado y borrarla de la lista parámetro.. Es correcto así? Es la mejor forma? Gracias!
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
La idea es que recorras una lista de promociones y que vayas preguntando una a una si están activas o no, si lo están las vas agregando a la lista resultado pero la letra no pide que "borres" nada de la lista original asi que ahi me perdiste un poco en el razonamiento.
Implementa lo que comentaste y si no funciona no dudes en volver a preguntar.
Saludos,
Raúl.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
// promociones con las promociones que están activas. Remueve las promociones
// activas de la lista parámetro. La función es O(n) peor caso, donde n es la
// cantidad de promociones de la lista.
TListaPromociones obtenerPromocionesActivas(TListaPromociones &listaPromociones,
TFecha fecha);
Dice en el .h que remueve las promociones activas de la lista parámetro, 'remueve' se refiere a eliminar, no?
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Se refiere a que las saca de la lista, pero no `elimina` la memoria.
Saludos
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Yo me refiero a 'remover' ( ó borrar, ó eliminar ) de la lista parámetro; que Raul mencionaba que no lo pide la letra, pero sí lo pide. Y como las promociones activas en la lista parámetro, pueden estar intercaladas con pasadas (como el ejemplo de arriba), no es tan directo removerlas de la lista parámetro para agregarlas a la nueva lista y que queden dos listas separadas, como si estuvieran contiguas.¿ Es lo más práctico borrar de la lista parámetro e insertar en la nueva lista resultado actualizando los punteros..? Gracias
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Tenes razón si, lo estuve revisando y eso como decís. Respondiendo tu duda inicial te recomendaría que evites borrarlo y mejor intentes engancharlos bien a la lista resultado.
Saludos,
Raúl.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Primero hace un make clean y volve a compilar todo, después correr los test y mandar el archivo .sal y .out que te da y el .diff así lo vemos mas en detalle.
Por otro lado, proba usar alguna herramienta que compare archivos como winmerge, eso capaz te ayuda a visualizar la diferencia.
Saludos,
Raúl.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
$ make t-listaPromociones2-vacia-pertenece-obtener
35c35 < 25> Fin.
\ No newline at end of file
---
> 25> Fin.
Quería saber si este error, que me deja un 0 en la devolución del $ make testing, tiene solución que pueda hacer o al entregar así no me reduce la puntuación.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Podrías mandar captura del .sal y el . out de esos casos para entender mejor que paso.
Saludos,
Raúl.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
te adjunto las capturas en las lineas donde me indica el error:
No parece tener ningún efecto en el funcionamiento del programa en sí pero no se como corregirlo
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Veo que tu función de obtenerPromocionesActivas es la que da problemas, porque te esta dando siempre todas las promociones que tenes, osea las activas y las no activas.
Revisa las condiciones de esa función y asegurate de estar comparando bien las fechas. Además, corrobora que estés viendo los casos de si es el primero/ultimo de la lista de manera correcta.
Saludos,
Raúl.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Buenas, tengo este error en las funciones de finalizadas y activas. Todos los test anteriores han dado ---Bien---
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.
Recuerden que que un test anterior les haya dado bien, no quiere decir que las funciones que testea no tengan ningún error. Podría pasar que el test no esté chequeando un caso particular donde pueda fallar. Es por eso que recomendamos que ustedes se creen sus propios tests adicionales para estar mas seguros.
En este caso, les aconsejo que corran el test paso a paso para ver exactamente donde falla y luego lo reproduzcan en lápiz y papel para ver bien que es lo que hace su programa y poder identificar donde esta el error.
También les diría que revisen liberarTListaPromociones y corroboren que están cubriendo los casos cuando liberarPromociones es false (donde deben liberar los nodos de la lista pero no las promociones) y cuando es true (donde deben liberar todo).
Saludos!
Yael