Control PRO2 - Torn 2 - Problema 2 (primavera 2019)

Volem una operació nova per fer-la servir al context de les classes
 Cjt_estudiants i Es­tu­diant que heu vist al laboratori. Concretament, si
tenim dos conjunts c1 i c2 que representen les notes de dos actes
avaluatoris per a un mateix grup d’estudiantes, és a dir
c1.con­sul­tar_iessim(i).con­sul­tar_DNI() = c2.con­sul­tar_iessim(i).con­sul­tar_DNI()
per a tot i, 1 ≤ i ≤ c1.mida() = c2.mida() i tres double x,y,z tals que
0 ≤ x,y,z ≤ Estudiant::nota_maxima(), x ≤ y, volem crear un nou conjunt
amb els estudiants tals que la seva nota a  c1 tingui valor entre x i y,
ambdós inclosos, i la seva nota a c2 sigui més gran o igual que z. A
aquests estudiants els diem els reavaluables de c1 i c2 respecte a
 x,y,z i han de quedar sense nota en el nou conjunt.

Hem optat per afegir una nova operació que no pertany a cap classe amb
la següent especificació:

    void extreure_reavaluables(const Cjt_estudiants& c1, const Cjt_estudiants& c2,
                               double x, double y, double z, Cjt_estudiants& reava);
      /* Pre: c1 i c2 contenen els mateixos estudiants, reava es buit,
              0<=x,y,z<=Estudiant::nota_maxima(), x<=y */
      /* Post: reava està format pels estudiants reavaluables de c1 i c2 
               respecte a x,y,z, tots sense nota */

Observació

Heu de lliurar un fitxer solution.cc amb una implementació eficient de
l’operació ex­treu­re_re­ava­lua­bles. Aquest fitxer no pot accedir als
elements privats de les classes Cjt_estudiants i  Es­tu­diant. Òbviament,
sí que pot fer servir les operacions públiques de les versions que us
donem d’ambdues.

A l’apartat Public files del Jutge (icona del gatet) us proveïm amb una
plantilla pel fitxer solution.cc que només cal completar. A més,
trobareu material addicional, tot comprimit en un fitxer .tar. Podeu
descomprimir aquest fitxer amb la comanda

       tar -xvf nom_fitxer.tar

Aquest material addicional consisteix en els següents fitxers:

- Cjt_estudiants.hh: les capçaleres i l’especificació Pre/Post de les
  operacions públiques i privades de la classe Cjt_estudiants, així com
  la definició dels seus atributs.

- Cjt_estudiants.cc: la implementació de totes de les operacions de la
  nova versió de la classe Cjt_estudiants.

- Estudiant.hh: l’especificació de la classe Estudiant i la definició
  dels seus atributs.

- Estudiant.cc: la implementació dels mètodes de la classe Estudiant.

- pro2.cc: un programa principal que podeu fer servir per provar la
  solució d’aquest exercici.

- llegeixme.txt: instruccions per a generar i provar l’executable del
  programa pro2.

- sample.inp: entrada del joc de proves públic

- sample.cor: sortida del joc de proves públic

- solution.cc: plantilla explicada previament

- solution.hh: la capçalera de la nova operació, per fer #include

És fonamental que la solució sigui eficient en temps i espai. No es pot
emprar cap estructura de dades que no hagi aparegut a les sessions 1-4
de laboratori.  
Quan feu els enviaments el Jutge us indicarà quants jocs de proves
passeu i de quin tipus (public o privat). El joc de proves anomenat
public s’explica al fitxer llegeixme.txt. El privat1 és molt semblant al
public. Els privat2 i privat3 proven situacions especials.

Informació del problema

Autoria: Professors de PRO2

Generació: 2026-01-25T15:30:25.241Z

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