Este problema es el único canal disponible para realizar la entrega definitiva de la práctica y también la entrega de los materiales para evaluar la competencia transversal “Treball en equip”. Tened en cuenta que
El plazo de entrega acaba el lunes 30 de noviembre, a las 22h.
Esta es la entrega que dará lugar a la mayor parte de la nota de la práctica (90%); la nota de la entrega tendrá una parte procedente de corrección automática y otra procedente de corrección manual (consultad el pdf sobre evaluación en el apartado “Pràctica” de la web de PRO2)
No superar ningún juego de pruebas conllevará un cero en la nota de la entrega
En esta entrega pedimos más cosas, que detallamos a continuación en negrita, además del código de la práctica y el Makefile, de las que se pedían en la entrega provisional
Pueden realizarse tantas entregas como se quiera, pero solo se tendrá en cuenta la más reciente
El problema de la entrega final provisional seguirá disponible hasta el día anterior al fin del plazo de entrega. De hecho, recomendamos usarlo para probar el código mientras no tengáis preparado el material adicional que pedimos
El Jutge prueba vuestras entregas mediante 4 juegos de pruebas:
sample: el juego de pruebas público
privat1: combinación de los juegos de pruebas de la entrega intermedia, con una situación nueva de eficiencia (gestión de huecos)
privat2: un poco de todo, salvo eficiencia
privat3: eficiencia
En un fichero llamado practica.tar tenéis
que entregar
Los ficheros .hh y .cc de las clases y el programa principal con los comentarios Doxygen correspondientes. No incluyáis ficheros .o y similares.
El fichero Makefile, que usaremos para generar y probar el ejecutable
Un fichero html.zip,
obtenido comprimiendo la carpeta html del Doxygen generado a partir de
los .hh y .cc anteriores. Dicha documentación
no solo ha de incluir la parte pública de las clases (como en la entrega
de la especificación) sino también la parte privada (atributos y métodos
privados) y la implementación de todas las
operaciones
Un único integrante de cada equipo ha de entregar un fichero .zip con los materiales requeridos para evaluar la competencia “Treball en equip”, siguiendo las instrucciones contenidas en el documento correspondiente, disponible en el apartado “Pràctica” de la página web de la asignatura
Tened en cuenta las siguientes restricciones:
El fichero que contiene el programa principal se ha de llamar
program.cc
El Makefile ha de generar un ejecutable llamado
program.exe
Es importante que uséis las opciones de compilación del Jutge de PRO2 (ved Documentation Compilers PRO2 a www.jutge.org)
No usar la opción -D_GLIBCXX_DEBUG o
usarla de forma incorrecta podrá ser penalizado
Si no se entrega la documentación generada por el
Doxygen, o ésta es incompleta (por ejemplo, si no se pueden ver los
elementos privados o la implementación de todas las operaciones), la
nota de la corrección manual será cero. Comprobad que vuestra
documentación es correcta antes de la entrega. Es necesario usar un
Doxyfile basado en el de la sesión 10 de
laboratorio para generar correctamente la
documentación
Producid el fichero practica.tar con la
instrucción Linux
tar -cvf practica.tar fitxer1 fitxer2 fitxer3 ...
desde el directorio/carpeta donde tengáis los ficheros que vais a
entregar. Incluid esta instrucción en vuestro Makefile, de forma que el
.tar se pueda generar ejecutando
make practica.tar. Con eso reduciréis 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. No
es necesario incluir BinTree.hh en
practica.tar.
Input
crea_terminal 1 5 3 num_hileras num_plazas num_pisos inserta_contenedor W 3 inserta_contenedor X 2 inserta_contenedor R 1 inserta_contenedor Y 3 inserta_contenedor Z 1 inserta_contenedor T 2 inserta_contenedor Q 1 inserta_contenedor U 1 area_almacenaje inserta_contenedor U 1 retira_contenedor PEPE donde T longitud T donde NOESTA longitud NOESTA contenedor_ocupa 0 2 1 contenedor_ocupa 0 4 2 contenedor_ocupa 1 0 0 retira_contenedor Q area_almacenaje huecos area_espera retira_contenedor X area_almacenaje huecos area_espera contenedores crea_terminal 1 6 3 num_hileras num_plazas num_pisos i A 3 i B 2 i C 3 i D 1 i E 1 i F 3 i G 1 i H 2 area_almacenaje huecos area_espera r A area_almacenaje huecos area_espera r E r C area_almacenaje huecos area_espera i I 1 i J 3 i K 2 area_almacenaje huecos area_espera i L 2 i M 3 i N 2 i Q 2 i P 3 area_almacenaje area_espera r N area_espera contenedores crea_terminal 3 3 4 num_hileras num_plazas num_pisos i MM0 1 i NU 1 i SOS 1 i BARTO 3 i ABC 2 i WERT 1 i QWE 3 i F25 3 i JAJA 1 i OH 2 i UBUNTU 2 i ZAS 3 i X 3 i IKEA1 3 i GAGA 3 i VAX 3 area_almacenaje huecos area_espera retira_contenedor UBUNTU inserta_contenedor L 1 inserta_contenedor PAS 2 area_almacenaje huecos area_espera donde PAS longitud PAS contenedor_ocupa 0 0 0 contenedor_ocupa 1 1 1 contenedor_ocupa 2 2 2 contenedores fin
Output
#crea_terminal 1 5 3 #num_hileras 1 #num_plazas 5 #num_pisos 3 #inserta_contenedor W 3 <0,0,0> #inserta_contenedor X 2 <0,3,0> #inserta_contenedor R 1 <0,0,1> #inserta_contenedor Y 3 <0,1,1> #inserta_contenedor Z 1 <0,4,1> #inserta_contenedor T 2 <0,0,2> #inserta_contenedor Q 1 <0,2,2> #inserta_contenedor U 1 <0,3,2> #area_almacenaje hilera 0 2 TTQU 1 RYYYZ 0 WWWXX 01234 #inserta_contenedor U 1 error: el contenedor ya existe #retira_contenedor PEPE error: el contenedor no existe #donde T <0,0,2> #longitud T 2 #donde NOESTA <-1,-1,-1> #longitud NOESTA error: el contenedor no existe #contenedor_ocupa 0 2 1 Y #contenedor_ocupa 0 4 2 #contenedor_ocupa 1 0 0 error: ubicacion fuera de rango #retira_contenedor Q #area_almacenaje hilera 0 2 TT U 1 RYYYZ 0 WWWXX 01234 #huecos (<0,2,2>,1) (<0,4,2>,1) #area_espera #retira_contenedor X #area_almacenaje hilera 0 2 Z 1 RUYYY 0 WWWTT 01234 #huecos (<0,1,2>,4) #area_espera #contenedores R(<0,0,1>,1) T(<0,3,0>,2) U(<0,1,1>,1) W(<0,0,0>,3) Y(<0,2,1>,3) Z(<0,0,2>,1) #crea_terminal 1 6 3 #num_hileras 1 #num_plazas 6 #num_pisos 3 #i A 3 <0,0,0> #i B 2 <0,0,1> #i C 3 <0,3,0> #i D 1 <0,0,2> #i E 1 <0,1,2> #i F 3 <0,2,1> #i G 1 <0,5,1> #i H 2 <0,2,2> #area_almacenaje hilera 0 2 DEHH 1 BBFFFG 0 AAACCC 012345 #huecos (<0,4,2>,2) #area_espera #r A #area_almacenaje hilera 0 2 BB E 1 HHD G 0 FFFCCC 012345 #huecos (<0,2,2>,1) (<0,3,1>,2) #area_espera #r E #r C #area_almacenaje hilera 0 2 BBG 1 HHD 0 FFF 012345 #huecos (<0,3,0>,3) #area_espera #i I 1 <0,3,0> #i J 3 <-1,0,0> #i K 2 <0,4,0> #area_almacenaje hilera 0 2 BBG 1 HHDJJJ 0 FFFIKK 012345 #huecos (<0,3,2>,3) #area_espera #i L 2 <0,3,2> #i M 3 <-1,0,0> #i N 2 <-1,0,0> #i Q 2 <-1,0,0> #i P 3 <-1,0,0> #area_almacenaje hilera 0 2 BBGLL 1 HHDJJJ 0 FFFIKK 012345 #area_espera P(3) Q(2) N(2) M(3) #r N #area_espera P(3) Q(2) M(3) #contenedores B(<0,0,2>,2) D(<0,2,1>,1) F(<0,0,0>,3) G(<0,2,2>,1) H(<0,0,1>,2) I(<0,3,0>,1) J(<0,3,1>,3) K(<0,4,0>,2) L(<0,3,2>,2) M(<-1,0,0>,3) P(<-1,0,0>,3) Q(<-1,0,0>,2) #crea_terminal 3 3 4 #num_hileras 3 #num_plazas 3 #num_pisos 4 #i MM0 1 <0,0,0> #i NU 1 <0,0,1> #i SOS 1 <0,0,2> #i BARTO 3 <1,0,0> #i ABC 2 <0,1,0> #i WERT 1 <0,0,3> #i QWE 3 <1,0,1> #i F25 3 <1,0,2> #i JAJA 1 <0,1,1> #i OH 2 <1,0,3> #i UBUNTU 2 <2,0,0> #i ZAS 3 <-1,0,0> #i X 3 <-1,0,0> #i IKEA1 3 <-1,0,0> #i GAGA 3 <-1,0,0> #i VAX 3 <-1,0,0> #area_almacenaje hilera 0 3 W 2 S 1 NJ 0 MAA 012 hilera 1 3 OO 2 FFF 1 QQQ 0 BBB 012 hilera 2 3 2 1 0 UU 012 #huecos (<0,1,2>,1) (<0,2,1>,1) (<1,2,3>,1) (<2,2,0>,1) (<2,0,1>,2) #area_espera VAX(3) GAGA(3) IKEA1(3) X(3) ZAS(3) #retira_contenedor UBUNTU #inserta_contenedor L 1 <0,1,2> #inserta_contenedor PAS 2 <-1,0,0> #area_almacenaje hilera 0 3 W 2 SL 1 NJ 0 MAA 012 hilera 1 3 OO 2 FFF 1 QQQ 0 BBB 012 hilera 2 3 XXX 2 III 1 GGG 0 VVV 012 #huecos (<0,1,3>,1) (<0,2,1>,1) (<1,2,3>,1) #area_espera PAS(2) ZAS(3) #donde PAS <-1,0,0> #longitud PAS 2 #contenedor_ocupa 0 0 0 MM0 #contenedor_ocupa 1 1 1 QWE #contenedor_ocupa 2 2 2 IKEA1 #contenedores ABC(<0,1,0>,2) BARTO(<1,0,0>,3) F25(<1,0,2>,3) GAGA(<2,0,1>,3) IKEA1(<2,0,2>,3) JAJA(<0,1,1>,1) L(<0,1,2>,1) MM0(<0,0,0>,1) NU(<0,0,1>,1) OH(<1,0,3>,2) PAS(<-1,0,0>,2) QWE(<1,0,1>,3) SOS(<0,0,2>,1) VAX(<2,0,0>,3) WERT(<0,0,3>,1) X(<2,0,3>,3) ZAS(<-1,0,0>,3)