El objetivo en este examen será modificar dos aspectos de tu solución de la práctica. Concretamente deberás
Los detalles están descritos con precisión en el documento enunciado_examen.pdf que forma parte del archivo public.tar que puedes descargar en esta página (icono del gatito). Verás que tendrás que modificar elementos ya existentes en tu práctica, y tambien añadir una funcionalidad nueva al main y operaciones nuevas a algunas clases. Está permitido, incluso, modificar las clases básicas Ubicacion y Segmento, ya que determinadas soluciones se pueden beneficiar de ello.
IMPORTANTE: Este problema de Jutge es el único canal disponible para realizar la entrega del examen de la práctica. Ten en cuenta que
Observación Recomendamos que hagas una copia “limpia” de tu práctica en un subdirectorio aparte y en esa copia lleves a cabo todos los cambios.
Verifica que todos los módulos compilan sin errores, que el proceso de montaje da un archivo ejecutable correcto y que el program.exe pasa el juego de pruebas público suministrado.
Comprueba que tu Makefile genera el fichero program.exe y crea el fichero .tar para hacer el envío al Jutge. Asegúrate que entregas el fichero .tar con la solución del examen, no la solución original. No es necesario incluir la carpeta con la documentación en Doxygen ni, en su caso, la de la competencia tranversal.
El Jutge prueba tus entregas mediante 4 juegos de pruebas que, salvo por un comando nuevo, tienen la misma sintaxis que los de la práctica y menos requisitos de eficiencia.
En un fichero llamado practica.tar debes entregar
Ten en cuenta las siguientes restricciones:
Produce el fichero practica.tar con la instrucción Linux
tar -cvf practica.tar fitxer1 fitxer2 fitxer3 ...
desde el directorio/carpeta donde tengas los ficheros que vas a entregar. Incluye esta instrucción en tu Makefile, de forma que el .tar se pueda generar ejecutando make practica.tar. Con eso reduciras el riesgo de error en sucesivas entregas. El Jutge no acepta .tar donde los ficheros estén dentro de carpetas. Recomendamos usar GNU tar para reducir el riesgo de que el fichero practica.tar sea incompatible con el Jutge. Se han de incluir las clases básicas en practica.tar, incluso si no se han modificado.
Input
crea_terminal 3 6 4 num_hileras num_plazas num_pisos i BARTO 3 i MM0 1 i NU 1 i ABC 2 i OH 2 i SOS 1 i BARTO 1 r BERTO i QWE 3 area_almacenaje2 i UBUNTU 2 i F25 3 i ZAS 2 i WERT 1 i X 3 i JAJA 1 i IKEA1 2 i GAGA 3 i VAX 2 i ZULU 1 i YAK 1 i DID 3 i EPS 2 i MANU 2 i HH23 3 i LLOLL 3 area_almacenaje huecos area_espera retira_contenedor SOS area_almacenaje huecos inserta_contenedor L 1 inserta_contenedor PAS 2 inserta_contenedor AMANDA 3 area_almacenaje huecos r X area_almacenaje2 huecos area_espera donde MANU longitud MM0 contenedor_ocupa 0 0 0 contenedor_ocupa 1 1 1 contenedor_ocupa 2 2 2 i ZZ 3 i YY 3 i XX 2 i WW 3 i VV 3 i UU 2 i TT 3 i SS 3 i RR 3 area_espera contenedores fin
Output
#crea_terminal 3 6 4 #num_hileras 3 #num_plazas 6 #num_pisos 4 #i BARTO 3 <0,0,0> #i MM0 1 <0,3,0> #i NU 1 <0,4,0> #i ABC 2 <0,0,1> #i OH 2 <0,0,2> #i SOS 1 <0,5,0> #i BARTO 1 error: el contenedor ya existe #r BERTO error: el contenedor no existe #i QWE 3 <0,2,1> #area_almacenaje2 hilera 0 3 ++++ 2 OO + 1 AAQQQ 0 BBBMNS 012345 hilera 1 3 ++++++ 2 ++++++ 1 ++++++ 0 012345 hilera 2 3 ++++++ 2 ++++++ 1 ++++++ 0 012345 #i UBUNTU 2 <0,0,3> #i F25 3 <0,2,2> #i ZAS 2 <0,2,3> #i WERT 1 <0,5,1> #i X 3 <1,0,0> #i JAJA 1 <0,5,2> #i IKEA1 2 <0,4,3> #i GAGA 3 <1,3,0> #i VAX 2 <1,0,1> #i ZULU 1 <1,0,2> #i YAK 1 <1,1,2> #i DID 3 <1,2,1> #i EPS 2 <1,0,3> #i MANU 2 <1,2,2> #i HH23 3 <2,0,0> #i LLOLL 3 <2,3,0> #area_almacenaje hilera 0 3 UUZZII 2 OOFFFJ 1 AAQQQW 0 BBBMNS 012345 hilera 1 3 EE 2 ZYMM 1 VVDDD 0 XXXGGG 012345 hilera 2 3 2 1 0 HHHLLL 012345 #huecos (<1,5,1>,1) (<1,4,2>,1) (<1,2,3>,2) (<2,0,1>,6) #area_espera #retira_contenedor SOS #area_almacenaje hilera 0 3 UUZZ 2 OOFFF 1 AAQQQJ 0 BBBMNW 012345 hilera 1 3 EEII 2 ZYMM 1 VVDDD 0 XXXGGG 012345 hilera 2 3 2 1 0 HHHLLL 012345 #huecos (<0,5,2>,1) (<0,4,3>,1) (<1,5,1>,1) (<1,4,2>,1) (<2,0,1>,6) #inserta_contenedor L 1 <0,5,2> #inserta_contenedor PAS 2 <0,4,3> #inserta_contenedor AMANDA 3 <2,0,1> #area_almacenaje hilera 0 3 UUZZPP 2 OOFFFL 1 AAQQQJ 0 BBBMNW 012345 hilera 1 3 EEII 2 ZYMM 1 VVDDD 0 XXXGGG 012345 hilera 2 3 2 1 AAA 0 HHHLLL 012345 #huecos (<1,5,1>,1) (<1,4,2>,1) (<2,3,1>,3) (<2,0,2>,3) #r X #area_almacenaje2 hilera 0 3 UUZZPP 2 OOFFFL 1 AAQQQJ 0 BBBMNW 012345 hilera 1 3 VV +++ 2 IIZ + 1 MMYEE 0 DDDGGG 012345 hilera 2 3 ++++++ 2 +++ 1 AAA 0 HHHLLL 012345 #huecos (<1,5,1>,1) (<1,2,3>,1) (<1,3,2>,2) (<2,3,1>,3) (<2,0,2>,3) #area_espera #donde MANU <1,0,1> #longitud MM0 1 #contenedor_ocupa 0 0 0 BARTO #contenedor_ocupa 1 1 1 MANU #contenedor_ocupa 2 2 2 #i ZZ 3 <2,3,1> #i YY 3 <2,0,2> #i XX 2 <1,3,2> #i WW 3 <1,2,3> #i VV 3 <2,3,2> #i UU 2 <2,0,3> #i TT 3 <2,2,3> #i SS 3 <-1,0,0> #i RR 3 <-1,0,0> #area_espera RR(3) SS(3) #contenedores ABC(<0,0,1>,2) AMANDA(<2,0,1>,3) BARTO(<0,0,0>,3) DID(<1,0,0>,3) EPS(<1,3,1>,2) F25(<0,2,2>,3) GAGA(<1,3,0>,3) HH23(<2,0,0>,3) IKEA1(<1,0,2>,2) JAJA(<0,5,1>,1) L(<0,5,2>,1) LLOLL(<2,3,0>,3) MANU(<1,0,1>,2) MM0(<0,3,0>,1) NU(<0,4,0>,1) OH(<0,0,2>,2) PAS(<0,4,3>,2) QWE(<0,2,1>,3) RR(<-1,0,0>,3) SS(<-1,0,0>,3) TT(<2,2,3>,3) UBUNTU(<0,0,3>,2) UU(<2,0,3>,2) VAX(<1,0,3>,2) VV(<2,3,2>,3) WERT(<0,5,0>,1) WW(<1,2,3>,3) XX(<1,3,2>,2) YAK(<1,2,1>,1) YY(<2,0,2>,3) ZAS(<0,2,3>,2) ZULU(<1,2,2>,1) ZZ(<2,3,1>,3)