Exàmen Pràctica Primavera 2018

Aquest és un problema del jutge per fer lliuraments de l’examen de la
pràctica

- Aquest examen dura una hora i quaranta-cinc minuts

- No es corregirà cap lliurament que no compili

- L’examen es fa sense apunts

- El 50% de la nota és de l’execució, l’altre 50% de la correcció manual

- Es corregirà el darrer enviament amb més jocs de proves correctes

- En cas de no passar cap joc de proves es farà la correcció manual del
  darrer enviament que compili

- El nombre d’enviaments no fa baixar la nota

Descarregueu els fitxers públics per obtenir el material:

- enunciat d’aquest examen

- enunciat de la pràctica

- especificació de BinTree

- fitxer llegeixme.txt

- codi ja implementat

- fitxer Makefile

- joc de proves públic

Ara us resumim els detalls més importants de la implementació que us
donem.

Els atributs d’un objecte Almacen son:

      BinTree<int> a;
      vector<Sala> salas;
      int n_salas;

i el seu invariant de representació és:

      a te n_salas nodes
      cada node d'a te un valor entre 1 i n_salas
      tots els valors entre 1 i n_salas apareixen en algun node d'a
      salas te n_salas elements
      salas[i] representa la colocacio dels productes de la sala amb id i+1

Els atributs d’un objecte Sala són:

      int pos;
      vector<string> estanteria;

pos és el nombre de posicions d’estanteria.

Haureu de fer servir una operació ja implementada de Sala:

    int poner_items(string & id_p,int c_p)
    \\ pre : c_p >0
    \\ pos : s'han posat a estanteria fins a c_p vegades id_p a les posicions on hi havia "NULL", començant per l'esquerra
             el resultat ens diu quants id_p no han capigut

Després de llegir l’enunciat de l’examen atentament, copieu aquesta
plantilla en un fitxer anomenat solution.cc i completeu-la. Per
solucionar el problema no és necessari afegir altres operacions a
solution.cc, però es poden afegir si voleu. Teniu en compte que aquestes
operacions no poden pertànyer a cap classe perque no heu de modificar
els fitxers .hh ja que el jutge farà servir els fitxers que us donem i
el vostre fitxer solution.cc.

    // Poseu aqui el vostre nom d'usuari

    #include "Sala.hh"
    #include "Almacen.hh"

    int Almacen::distribuir_aux(const BinTree<int> & a, vector<Sala> & salas, string & id_p, int cantidad)
    {
    	// Afegiu aqui el vostre codi
    }

    void Sala::compactar()
    {
    	// Afegiu aqui el vostre codi
    }

Entrada

Una seqüència d’instruccions seguint el format de l’enunciat de l’examen
i del joc de proves públic.

Sortida

El seu resultat seguint el format de l’enunciat de l’examen i del joc de
proves públic.

Observació

El Jutge prova el vostre lliurament mitjançant 4 jocs de proves:

- sample: el joc de proves públic.

- privat1: joc de proves privat que fa èmfasi en la nova operació
  compactar

- privat2: joc de proves privat que fa èmfasi en la nova versió de
  l’operació distribuir

- privat3: joc de proves privat que fa una mica de tot

Heu de lliurar un fitxer solucio.cc amb una implementació eficient de
les operacions que es demanen.

Informació del problema

Autoria: PR02

Generació: 2026-01-25T14:51:27.037Z

© Jutge.org, 2006–2026.
https://jutge.org
