Práctica de PRO2 - Otoño 2020 - Entrega final definitiva X90562


Statement
 

pdf   zip   tar

html

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

Observación

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.

Public test cases
  • 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)
    
    
  • Information
    Author
    PRO2
    Language
    Spanish
    Official solutions
    Make
    User solutions
    Make