Solució de l’examen parcial d’Ampliació d’Informàtica

Organització:

Secció ETSEIB, Departament de Ciències de la Computació, UPC

Data:

11 d’abril de 2024

Durada:

1 hora i 10 minuts

Copyright:

Reconeixement-CompartirIgual 4.0 No adaptada de Creative Commons

Jocs de proves

Aquests jocs de proves necessiten el fitxer feines_corr.py.

Els exemples que compten per la nota són només els que van seguits de # doctesttag: +TAG=

Test exercici 1 : Classe Feina

>>> from feines import Feina
>>> f1 = Feina("Treure taques catifa", 4)
>>> f2 = Feina("Barnissar taula", 1)
>>> f2.pendent = False
>>> f3 = Feina("Pagar pàrquing", 3)
>>> f4 = Feina("Endreçar armari alt", 3)
>>> f4.pendent = False
>>> f5 = Feina("Regal Anna+Pep", 2)
>>> f1.descripcio, f1.prioritat, f1.pendent    # doctesttag: +TAG=1_Feina
('Treure taques catifa', 4, True)
>>> f1.criteris()    # doctesttag: +TAG=1_Feina
4
>>> print(f1)    # doctesttag: +TAG=1_Feina
P - 4 - Treure taques catifa
>>> f1.rebaixa()
>>> f1.descripcio, f1.prioritat, f1.pendent    # doctesttag: +TAG=1_Feina
('Treure taques catifa', 4, False)
>>> f1.rebaixa()
>>> print(f1)    # doctesttag: +TAG=1_Feina
R - 4 - Treure taques catifa
>>> f1.criteris()    # doctesttag: +TAG=1_Feina
10
>>> for f in [f2, f3, f4, f5]:    # doctesttag: +TAG=1_Feina
...     print(f)
R - 1 - Barnissar taula
P - 3 - Pagar pàrquing
R - 3 - Endreçar armari alt
P - 2 - Regal Anna+Pep
>>> for f in [f2, f3, f4, f5]:    # doctesttag: +TAG=1_Feina
...     print(f.criteris())
10
3
10
2
>>> for f in [f2, f3, f4, f5]:    # doctesttag: +TAG=1_Feina
...     f.rebaixa()
...     print(f.prioritat, f.pendent, f.criteris())
2 False 10
4 True 4
4 False 10
3 True 3
>>> for f in [f2, f3, f4, f5]:    # doctesttag: +TAG=1_Feina
...     f.rebaixa()
...     print(f)
R - 3 - Barnissar taula
R - 4 - Pagar pàrquing
R - 4 - Endreçar armari alt
P - 4 - Regal Anna+Pep

Test exercici 2 : Classe ToDo

>>> from todo import ToDo
>>> from feines_corr import Feina
>>> td = ToDo('Enriqueta')
>>> (td.usuari, td.llista)    # doctesttag: +TAG=2_ToDo
('Enriqueta', [])
>>> len(td)    # doctesttag: +TAG=2_ToDo
0
>>> f1 = Feina("Treure taques catifa", 3)
>>> td.afegeix(f1)
>>> f2 = Feina("Barnissar taula", 3)
>>> td.afegeix(f2)
>>> f3 = Feina("Pagar pàrquing", 4)
>>> f3.pendent = False
>>> td.afegeix(f3)
>>> f4 = Feina("Endreçar armari alt", 3)
>>> td.afegeix(f4)
>>> f5 = Feina("Regal Anna+Pep", 3)
>>> f5.pendent = False
>>> td.afegeix(f5)
>>> f6 = Feina("Comprar Encebador cuina", 1)
>>> td.afegeix(f6)
>>> len(td)    # doctesttag: +TAG=2_ToDo
6
>>> td.llista == [f1, f2, f3, f4, f5, f6]    # doctesttag: +TAG=2_ToDo
True
>>> for i in range(len(td)):    # doctesttag: +TAG=2_ToDo
...     f = td[i]
...     print(f.descripcio, f.prioritat, f.pendent)
Treure taques catifa 3 True
Barnissar taula 3 True
Pagar pàrquing 4 False
Endreçar armari alt 3 True
Regal Anna+Pep 3 False
Comprar Encebador cuina 1 True
>>> td.neteja()
>>> for i in range(len(td)):    # doctesttag: +TAG=2_ToDo
...     f = td[i]
...     print(f.descripcio, f.prioritat, f.pendent)
Treure taques catifa 3 True
Barnissar taula 3 True
Endreçar armari alt 3 True
Comprar Encebador cuina 1 True
>>> td.reordena()
>>> for i in range(len(td)):    # doctesttag: +TAG=2_ToDo
...     f = td[i]
...     print(f.descripcio, f.prioritat, f.pendent)
Comprar Encebador cuina 1 True
Barnissar taula 3 True
Endreçar armari alt 3 True
Treure taques catifa 3 True
>>> td = ToDo('Sebastià')
>>> f = Feina("Recollir entrades teatre", 2)
>>> f.pendent = False
>>> td.afegeix(f)
>>> f = Feina("Buscar mòbil 2a mà", 1)
>>> td.afegeix(f)
>>> f = Feina("Planificar viatge Grècia", 4)
>>> td.afegeix(f)
>>> f = Feina("Canviar terra geranis", 3)
>>> td.afegeix(f)
>>> f = Feina("Arreglar cable bicicleta", 4)
>>> td.afegeix(f)
>>> f = Feina("Pujar Everest", 4)
>>> td.afegeix(f)
>>> f = Feina("Llençar roba vella", 3)
>>> f.pendent = False
>>> td.afegeix(f)
>>> f = Feina("Obrir llauna sardines", 3)
>>> f.pendent = False
>>> td.afegeix(f)
>>> for i in range(len(td)):    # doctesttag: +TAG=2_ToDo
...     print(td[i])
R - 2 - Recollir entrades teatre
P - 1 - Buscar mòbil 2a mà
P - 4 - Planificar viatge Grècia
P - 3 - Canviar terra geranis
P - 4 - Arreglar cable bicicleta
P - 4 - Pujar Everest
R - 3 - Llençar roba vella
R - 3 - Obrir llauna sardines
>>> td.neteja()
>>> for i in range(len(td)):    # doctesttag: +TAG=2_ToDo
...     print(td[i])
P - 1 - Buscar mòbil 2a mà
P - 4 - Planificar viatge Grècia
P - 3 - Canviar terra geranis
P - 4 - Arreglar cable bicicleta
P - 4 - Pujar Everest
>>> td.reordena()
>>> for i in range(len(td)):    # doctesttag: +TAG=2_ToDo
...     print(td[i])
P - 1 - Buscar mòbil 2a mà
P - 3 - Canviar terra geranis
P - 4 - Arreglar cable bicicleta
P - 4 - Planificar viatge Grècia
P - 4 - Pujar Everest
>>> td = ToDo('Sebastià')
>>> f = Feina("Canviar bateria càmera", 3)
>>> td.afegeix(f)
>>> f = Feina("Bombons àvia", 4)
>>> td.afegeix(f)
>>> f = Feina("Podar presseguer", 2)
>>> f.pendent = False
>>> td.afegeix(f)
>>> f = Feina("Llegir instruccions joc taula", 1)
>>> f.pendent = False
>>> td.afegeix(f)
>>> f = Feina("Llençar oli fregits", 2)
>>> td.afegeix(f)
>>> f = Feina("Ajustar rellotge cuina", 4)
>>> td.afegeix(f)
>>> f = Feina("Despuçar Bobby", 4)
>>> td.afegeix(f)
>>> f = Feina("ITV cotxe", 2)
>>> td.afegeix(f)
>>> f = Feina("Desembussar safareig", 4)
>>> td.afegeix(f)
>>> f = Feina("Dur nebots al teatre", 2)
>>> td.afegeix(f)
>>> for i in range(len(td)):    # doctesttag: +TAG=2_ToDo
...     print(td[i])
P - 3 - Canviar bateria càmera
P - 4 - Bombons àvia
R - 2 - Podar presseguer
R - 1 - Llegir instruccions joc taula
P - 2 - Llençar oli fregits
P - 4 - Ajustar rellotge cuina
P - 4 - Despuçar Bobby
P - 2 - ITV cotxe
P - 4 - Desembussar safareig
P - 2 - Dur nebots al teatre
>>> td.reordena()
>>> for f in td:    # doctesttag: +TAG=2_ToDo
...    print(f)
P - 2 - Dur nebots al teatre
P - 2 - ITV cotxe
P - 2 - Llençar oli fregits
P - 3 - Canviar bateria càmera
P - 4 - Ajustar rellotge cuina
P - 4 - Bombons àvia
P - 4 - Desembussar safareig
P - 4 - Despuçar Bobby
R - 1 - Llegir instruccions joc taula
R - 2 - Podar presseguer
>>> td.neteja()
>>> for f in td:    # doctesttag: +TAG=2_ToDo
...    print(f)
P - 2 - Dur nebots al teatre
P - 2 - ITV cotxe
P - 2 - Llençar oli fregits
P - 3 - Canviar bateria càmera
P - 4 - Ajustar rellotge cuina
P - 4 - Bombons àvia
P - 4 - Desembussar safareig
P - 4 - Despuçar Bobby
>>> td.reordena()
>>> td.neteja()
>>> td.reordena()
>>> td.neteja()
>>> for f in td:    # doctesttag: +TAG=2_ToDo
...    print(f)
P - 2 - Dur nebots al teatre
P - 2 - ITV cotxe
P - 2 - Llençar oli fregits
P - 3 - Canviar bateria càmera
P - 4 - Ajustar rellotge cuina
P - 4 - Bombons àvia
P - 4 - Desembussar safareig
P - 4 - Despuçar Bobby
>>> td[2].pendent = False
>>> td[4].pendent = False
>>> td[5].pendent = False
>>> td.reordena()
>>> for f in td:    # doctesttag: +TAG=2_ToDo
...    print(f)
P - 2 - Dur nebots al teatre
P - 2 - ITV cotxe
P - 3 - Canviar bateria càmera
P - 4 - Desembussar safareig
P - 4 - Despuçar Bobby
R - 4 - Ajustar rellotge cuina
R - 4 - Bombons àvia
R - 2 - Llençar oli fregits
>>> td.neteja()
>>> for f in td:    # doctesttag: +TAG=2_ToDo
...    print(f)
P - 2 - Dur nebots al teatre
P - 2 - ITV cotxe
P - 3 - Canviar bateria càmera
P - 4 - Desembussar safareig
P - 4 - Despuçar Bobby

Test exercici 3 : Classe FeinaDMA

>>> from feinesDMA import FeinaDMA
>>> from datetime import date
>>> f1 = FeinaDMA("Comprar entrades teatre", 4, date(2021, 10, 16))
>>> f1.descripcio, f1.prioritat, f1.pendent, f1.data_limit    # doctesttag: +TAG=3_FeinaDMA
('Comprar entrades teatre', 4, True, datetime.date(2021, 10, 16))
>>> f1.criteris()    # doctesttag: +TAG=3_FeinaDMA
(4, datetime.date(2021, 10, 16))
>>> print(f1)    # doctesttag: +TAG=3_FeinaDMA
P - 4 - Comprar entrades teatre - 16/10/2021
>>> f1.rebaixa()
>>> f1.descripcio, f1.prioritat, f1.pendent, f1.data_limit    # doctesttag: +TAG=3_FeinaDMA
('Comprar entrades teatre', 4, False, datetime.date(2021, 10, 16))
>>> f2 = FeinaDMA("Recollir entrades teatre", 1, date(2000, 5, 12))
>>> f2.pendent = False
>>> f3 = FeinaDMA("Buscar mòbil 2a mà", 3)
>>> f4 = FeinaDMA("Planificar viatge Grècia", 2, date(2000, 3, 25))
>>> f4.pendent = False
>>> f5 = FeinaDMA("Canviar terra geranis", 1)
>>> f6 = FeinaDMA("Arreglar cable bicicleta", 3, date(2000, 12, 6))
>>> f2.descripcio, f2.prioritat, f2.pendent, f2.data_limit    # doctesttag: +TAG=3_FeinaDMA
('Recollir entrades teatre', 1, False, datetime.date(2000, 5, 12))
>>> f3.descripcio, f3.prioritat, f3.pendent, f3.data_limit    # doctesttag: +TAG=3_FeinaDMA
('Buscar mòbil 2a mà', 3, True, datetime.date(9999, 12, 31))
>>> f4.descripcio, f4.prioritat, f4.pendent, f4.data_limit    # doctesttag: +TAG=3_FeinaDMA
('Planificar viatge Grècia', 2, False, datetime.date(2000, 3, 25))
>>> f5.descripcio, f5.prioritat, f5.pendent, f5.data_limit    # doctesttag: +TAG=3_FeinaDMA
('Canviar terra geranis', 1, True, datetime.date(9999, 12, 31))
>>> for x in [f2, f3, f4, f5, f6]:    # doctesttag: +TAG=3_FeinaDMA
...    print(x.descripcio, x.criteris())
Recollir entrades teatre (10, datetime.date(2000, 5, 12))
Buscar mòbil 2a mà (3, datetime.date(9999, 12, 31))
Planificar viatge Grècia (10, datetime.date(2000, 3, 25))
Canviar terra geranis (1, datetime.date(9999, 12, 31))
Arreglar cable bicicleta (3, datetime.date(2000, 12, 6))
>>> for x in [f2, f3, f4, f5, f6]:    # doctesttag: +TAG=3_FeinaDMA
...    print(x)
R - 1 - Recollir entrades teatre - 12/05/2000
P - 3 - Buscar mòbil 2a mà - 31/12/9999
R - 2 - Planificar viatge Grècia - 25/03/2000
P - 1 - Canviar terra geranis - 31/12/9999
P - 3 - Arreglar cable bicicleta - 06/12/2000