4. Implemente las funciones obtenerExposicionesFinalizadas y obtenerExposicionesActivas.

4. Implemente las funciones obtenerExposicionesFinalizadas y obtenerExposicionesActivas.

de Manuel Freire -
Número de respuestas: 12

Dudas sobre la paret 4

En respuesta a Manuel Freire

Re: 4. Implemente las funciones obtenerExposicionesFinalizadas y obtenerExposicionesActivas.

de German Capurro Rodriguez -
Respecto a exposiciones que no hayan ocurrido todavía siempre van a quedar en la lista sin importar cual de las dos funciones use?
En respuesta a Manuel Freire

Re: 4. Implemente las funciones obtenerExposicionesFinalizadas y obtenerExposicionesActivas.

de Gonzalo Javier Diaz Ferreira -
Buenas, cómo están?

Hay algo que en el caso prueba no me queda claro, en "obtener exposiciones activas":

1) se generan 3 exposiciones que finalizan en julio 2022
2) se ejecuta la función para la fecha 15/1/2022
3) como son activas todas, la funcion quita de la lista de exposiciones a todas, es decir, queda vacia
4) luego se imprime la lista

Entiendo que el caso prueba a la primera vez imprimiria la lista, pero luego al ejecutarlo nuevamente, ya se borró y lo que imprime es vacío (tanto para 15/2/2002 como para 15/03/2002)
El caso de prueba está considerando como fecha de inicio para descartar entre activas y finalizadas.

Hay algo que estoy considerando mal? (para que esté activa considero que su fechaFin sea mayor a fecha parámetro)

Gracias!

Saludos
En respuesta a Manuel Freire

Re: 4. Implemente las funciones obtenerExposicionesFinalizadas y obtenerExposicionesActivas.

de Alvaro Tomas Peña Gonzalez -
42 obtenerExposicionesActivas 15/01/2002 //serian las tres exposiciones

44 obtenerExposicionesActivas 15/02/2002 // da como salida las exposiciones #2 y #3, por que deja afuera la #1 del 1/1/2002 al 1/7/2002 entiendo que es activa ya que en la fecha 15/02/02 la exposicion existe y esta "expuesta"
En respuesta a Alvaro Tomas Peña Gonzalez

Re: 4. Implemente las funciones obtenerExposicionesFinalizadas y obtenerExposicionesActivas.

de Gonzalo Javier Diaz Ferreira -

Para mi ahí está tomando la fecha de inicio como referencia para pasarla a finalizadas (lo cual entiendo que estaría mal)

Igual si alguien capaz le está pasando, a mi me deja vacío luego de la primera vez que uso "obtener expo activas".

A alguien más le pasó?

En respuesta a Gonzalo Javier Diaz Ferreira

Re: 4. Implemente las funciones obtenerExposicionesFinalizadas y obtenerExposicionesActivas.

de Manuel Freire -
Hola,

No entiendo las dudas del todo así que explico la salida que comentan, si no queda claro me dicen. En la línea 42 del test pide exposiciones activas el 15/01 con lo cual en ese caso la única activa es #1 que va del 1/1/2002 al 1/7/2002, las otras dos todavía no iniciaron. Cuando se ejecuta la línea 44 (activas en el 15/02) estarían la 1 y la 2 pero la 2 ya fue removida y por tanto no está en la lista (de ahí que solo se imprima la 2). Nuevamente en la 46 se da una fecha en las que las 3 estarían activas (15/03) pero las otras dos anteriores ya fueron eliminadas.
Creo que la confusión de ustedes viene de que están mezclando las salidas de obtener activas con la impresión posterior (que justamenteestá en el test para mostrarles cómo va quedando la lista).

Espero que haya aclarado.

Saludos!
Manuel
En respuesta a Manuel Freire

Re: 4. Implemente las funciones obtenerExposicionesFinalizadas y obtenerExposicionesActivas.

de Lautaro Gabriel Piedra Vallejo -

Buenas, tengo dudas sobre el orden requerido en ambas funciones. Para hacerlas en O(n) peor caso, al insertar las exposiciones necesarias en las listas a devolver lo hago al inicio de estas, pero esto contradice la salida del test, dado que me quedan exactamente en orden inverso al imprimir. Si las insertara al final, o por orden de inicio de la exposición con agregarExposicion, entiendo que cumpliría con el test pero ya no con el orden pedido (quedaría O(n²)). Si es que lo que planteo es así, no se me ocurre alguna forma de cumplir ambas cosas, agradezco cualquier ayuda!

En respuesta a Lautaro Gabriel Piedra Vallejo

Re: 4. Implemente las funciones obtenerExposicionesFinalizadas y obtenerExposicionesActivas.

de Franco Pelua Camacho -
Las exposiciones de la lista tienen la particularidad de que todas se relacionan dos a dos, con la relación de orden "empieza antes". Es decir, a medida que vas avanzando en la lista, sabes que si la i-ésima exposición esta inactiva, entonces la j-ésima exposición inactiva (con i
En mi opinión, esta es la forma más intuitiva de cumplir con lo que pide la letra. Pero un pre-requisito para lograr implementar esto es que el struct de tu lista admita añadir elementos directamente al final en O(1). Lo bueno es que si no contemplaste esto cuando escribiste tu struct, el cambio que tenes que hacer es bastante sencillo.

Después, para el tema de eliminar exposiciones de la lista, a mi se me hizo más fácil mirando siempre una exposición adelante. Es decir, en vez de recorrer la lista nodo a nodo y hacer los chequeos sobre el nodo en el que estoy parado, recorro la lista nodo a nodo pero siempre chequeo el nodo que tengo adelante.

Han de haber más formas de implementarlo, quizá más sencillas, pero espero que esto te de una idea.
En respuesta a Lautaro Gabriel Piedra Vallejo

Re: 4. Implemente las funciones obtenerExposicionesFinalizadas y obtenerExposicionesActivas.

de Pablo Andres Balliva Costa -

El .h te dice que agregar tiene que ser O(n) peor caso (agregar al inicio es O(1)). Usá ese margen que tenés para cambiar la función y que agregue al final de la lista. Así el orden de impresión te queda bien y vas a poder lograr la implementación de estas dos en O(n).

Como dice Franco, para la implementación de estas hay que mirar adelante del nodo en el que estamos parados, lo que requiere algunos cuidados extra.

En respuesta a Manuel Freire

Re: 4. Implemente las funciones obtenerExposicionesFinalizadas y obtenerExposicionesActivas.

de Fabian Alberto Garcia Silva -
Buenas, al ejecutar el test listaExposiciones3 obtengo esto en la salida, la funcion devuelve las exposiciones correctas pero la hace en 2 instrucciones distintas. 
Adjunto Captura de pantalla 2024-05-29 094123.png
En respuesta a Fabian Alberto Garcia Silva

Re: 4. Implemente las funciones obtenerExposicionesFinalizadas y obtenerExposicionesActivas.

de Manuel Freire -
Hola,

No entiendo a qué te referís con dos instrucciones distintas pero tu solución está mal. En la línea 11 se piden finalizadas al 02/05/2002 con lo cual la exposición 1 debería estar finalizada y aparecer ahí, como no la ponés finalizada después te aparece como activa.

Saludos!
Manuel