4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Alejandro Blanco -
Número de respuestas: 22
En respuesta a Alejandro Blanco

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Tomás Facundo Taborda Taborda -

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


En respuesta a Tomás Facundo Taborda Taborda

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Ignacio Fernandez Codina -
Hola Tomas.

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.
En respuesta a Alejandro Blanco

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Roberto Dardo Hernandez Paonetti -
Hola,
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!
En respuesta a Roberto Dardo Hernandez Paonetti

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Raul Maglione -
Buenas Roberto,

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.
En respuesta a Raul Maglione

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Roberto Dardo Hernandez Paonetti -
// Dada una lista de promociones y una fecha, devuelve una nueva lista de
// 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?
En respuesta a Roberto Dardo Hernandez Paonetti

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Federico Bello Perez -
Hola,

Se refiere a que las saca de la lista, pero no `elimina` la memoria.

Saludos
En respuesta a Federico Bello Perez

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Roberto Dardo Hernandez Paonetti -
Hola Federico,
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
En respuesta a Roberto Dardo Hernandez Paonetti

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Raul Maglione -
Buenas Roberto,

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.
En respuesta a Alejandro Blanco

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Luciano Conti Rodríguez -
Buenas tardes, que me podría estar pasando si cuando hago el test me da que esta mal pero cuando lo hago manual y verifico uno por uno da exactamente lo mismo que en el archivo de salidas?
En respuesta a Luciano Conti Rodríguez

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Raul Maglione -
Buenas Luciano,

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.
En respuesta a Alejandro Blanco

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Mauro Masena Korolkoff -
Buenas, tengo un problema donde me salta un error en el .diff similar al de Tomas Facundo Taborda:

$ 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.
En respuesta a Alejandro Blanco

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Juan Manuel Caso Quinelli -
Buenas estoy teniendo problemas con los casos de prueba 3 y 5 relacionados a estas funciones pero no puedo discernir cual es el problema en cuestion. Asumo que tiene que ver con el formato de impresion. adjunto los .diff:
 

En respuesta a Juan Manuel Caso Quinelli

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Raul Maglione -
Buenas Manuel,

Podrías mandar captura del .sal y el . out de esos casos para entender mejor que paso.

Saludos,
Raúl.
En respuesta a Raul Maglione

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Juan Manuel Caso Quinelli -
buenas
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

En respuesta a Juan Manuel Caso Quinelli

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Raul Maglione -
Buenas Manuel,

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.
En respuesta a Alejandro Blanco

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Valentin Ezequiel Petrone Ruiz -

Buenas, tengo este error en las funciones de finalizadas y activas. Todos los test anteriores han dado ---Bien---

En respuesta a Valentin Ezequiel Petrone Ruiz

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Facundo Castro Perdomo -
Tengo el mismo error, lo que me extraña demaciado es que los anteriores casos donde tambien se usa las de agregar o las de liberar funcionan bien
En respuesta a Facundo Castro Perdomo

Re: 4. Implemente las funciones obtenerPromocionesFinalizadas y obtenerPromocionesActivas.

de Yael Michelena Koifmann -
Hola Valentin y Facundo,

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