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

Organització:

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

Data:

1 de juliol de 2024

Durada:

2 hores i 30 minuts

Copyright:

Reconeixement-CompartirIgual 4.0 No adaptada de Creative Commons

Jocs de proves

Aquests jocs de proves necessiten el fitxer cincinnati.csv.

Fitxer de tests de correccio de l’Examen de Reava 2324 Q2

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

1_PartidaPenjat

>>> from penjat import PartidaPenjat
>>> x = PartidaPenjat('PATATA')
>>> x.secreta, x.fallades, x.lletres    # doctesttag: +TAG=1_PartidaPenjat
('PATATA', 0, set())
>>> len(x)    # doctesttag: +TAG=1_PartidaPenjat
6
>>> for i in range(len(x)):    # doctesttag: +TAG=1_PartidaPenjat
...     print(x[i], end=';')
-;-;-;-;-;-;
>>> x.jugada('A')
>>> x.secreta, x.fallades, x.lletres    # doctesttag: +TAG=1_PartidaPenjat
('PATATA', 0, {'A'})
>>> for i in range(len(x)):    # doctesttag: +TAG=1_PartidaPenjat
...     print(x[i], end=';')
-;A;-;A;-;A;
>>> str(x)    # doctesttag: +TAG=1_PartidaPenjat
'-A-A-A'
>>> x.jugada('Ç')
>>> x.jugada('T')
>>> x.fallades, x.lletres == {'A', 'Ç', 'T'}    # doctesttag: +TAG=1_PartidaPenjat
(1, True)
>>> print(x)    # doctesttag: +TAG=1_PartidaPenjat
-ATATA
>>> x.estat()    # doctesttag: +TAG=1_PartidaPenjat
'JUGANT'
>>> x.jugada('B')
>>> x.jugada('T')
>>> x.jugada('P')
>>> x.fallades, x.lletres == {'Ç', 'T', 'A', 'B', 'P'}    # doctesttag: +TAG=1_PartidaPenjat
(2, True)
>>> print(x)    # doctesttag: +TAG=1_PartidaPenjat
PATATA
>>> x.estat()    # doctesttag: +TAG=1_PartidaPenjat
'GUANYA'
>>> p = PartidaPenjat('AJUNTAMENT')
>>> p.secreta, p.fallades, p.lletres    # doctesttag: +TAG=1_PartidaPenjat
('AJUNTAMENT', 0, set())
>>> len(p)    # doctesttag: +TAG=1_PartidaPenjat
10
>>> for i in range(len(p)):    # doctesttag: +TAG=1_PartidaPenjat
...     print(p[i], end='')
----------
>>> p.jugada('A')
>>> p.secreta, p.fallades, p.lletres    # doctesttag: +TAG=1_PartidaPenjat
('AJUNTAMENT', 0, {'A'})
>>> for i in range(len(p)):    # doctesttag: +TAG=1_PartidaPenjat
...     print(p[i], end='')
A----A----
>>> p.jugada('I')
>>> p.jugada('N')
>>> p.fallades, p.lletres == {'A', 'I', 'N'}    # doctesttag: +TAG=1_PartidaPenjat
(1, True)
>>> str(p)    # doctesttag: +TAG=1_PartidaPenjat
'A--N-A--N-'
>>> p.estat()    # doctesttag: +TAG=1_PartidaPenjat
'JUGANT'
>>> p.jugada('E')
>>> p.jugada('I')
>>> p.jugada('O')
>>> p.jugada('P')
>>> (p.fallades, p.lletres == {'E', 'N', 'A', 'I', 'P', 'O'})    # doctesttag: +TAG=1_PartidaPenjat
(3, True)
>>> print(p)    # doctesttag: +TAG=1_PartidaPenjat
A--N-A-EN-
>>> p.estat()    # doctesttag: +TAG=1_PartidaPenjat
'JUGANT'
>>> p.jugada('I')
>>> p.jugada('U')
>>> p.jugada('M')
>>> p.jugada('S')
>>> p.jugada('T')
>>> p.jugada('E')
>>> p.jugada('J')
>>> print(p)    # doctesttag: +TAG=1_PartidaPenjat
AJUNTAMENT
>>> p.estat()    # doctesttag: +TAG=1_PartidaPenjat
'GUANYA'
>>> p.fallades    # doctesttag: +TAG=1_PartidaPenjat
4
>>> q = PartidaPenjat('A')    # doctesttag: +TAG=1_PartidaPenjat
>>> q.secreta, q.fallades, q.lletres
('A', 0, set())
>>> for c in q:    # doctesttag: +TAG=1_PartidaPenjat
...     print(c, end='')
-
>>> print(q)
-
>>> q.jugada('E')
>>> q.jugada('I')
>>> q.jugada('O')
>>> q.jugada('U')
>>> print(q)    # doctesttag: +TAG=1_PartidaPenjat
-
>>> q.fallades, q.lletres == {'O', 'E', 'U', 'I'}    # doctesttag: +TAG=1_PartidaPenjat
(4, True)
>>> q.estat()    # doctesttag: +TAG=1_PartidaPenjat
'JUGANT'
>>> q.jugada('A')
>>> q.fallades, q.lletres == {'A', 'E', 'I', 'O', 'U'}    # doctesttag: +TAG=1_PartidaPenjat
(4, True)
>>> q.estat()    # doctesttag: +TAG=1_PartidaPenjat
'GUANYA'
>>> print(q)    # doctesttag: +TAG=1_PartidaPenjat
A
>>> q = PartidaPenjat('XYZ')    # doctesttag: +TAG=1_PartidaPenjat
>>> q.secreta, q.fallades, q.lletres
('XYZ', 0, set())
>>> q.jugada('A')
>>> q.jugada('B')
>>> q.jugada('C')
>>> q.jugada('D')
>>> q.jugada('E')
>>> q.jugada('F')
>>> q.jugada('G')
>>> q.jugada('H')
>>> q.jugada('I')
>>> q.jugada('J')
>>> q.estat()    # doctesttag: +TAG=1_PartidaPenjat
'PERD'

insereix_zeros

>>> from zeros import insereix_zeros
>>> l = [1, 2, -1, -2]
>>> it = insereix_zeros(l)
>>> list(it)    # doctesttag: +TAG=2_insereix_zeros
[1, 2, 0, -1, -2]
>>> l = [1, -1, -2, 3, 4, -8]
>>> it = insereix_zeros(l)
>>> list(it)    # doctesttag: +TAG=2_insereix_zeros
[1, 0, -1, -2, 0, 3, 4, 0, -8]
>>> l = [1, -1, -2, 3, 4, -8]
>>> it = insereix_zeros(iter(l))
>>> list(it)    # doctesttag: +TAG=2_insereix_zeros
[1, 0, -1, -2, 0, 3, 4, 0, -8]
>>> l = [1, 2, 3, 4]
>>> it = insereix_zeros(l)
>>> list(it)    # doctesttag: +TAG=2_insereix_zeros
[1, 2, 3, 4]
>>> l = [1, -1]
>>> it = insereix_zeros(l)
>>> list(it)    # doctesttag: +TAG=2_insereix_zeros
[1, 0, -1]
>>> l = [1]
>>> it = insereix_zeros(l)
>>> list(it)    # doctesttag: +TAG=2_insereix_zeros
[1]

enregistra

>>> import networkx as nx
>>> from xat_moodle import enregistra
>>> g = nx.Graph()
>>> g.add_nodes_from(['a', 'b', 'c'])
>>> g.add_weighted_edges_from([('a', 'b', 3), ('a', 'c', 5),], weight='minuts')
>>> enregistra(g, 'b', 'c', 10)
>>> g.edges(data='minuts')    # doctesttag: +TAG=3_enregistra
EdgeDataView([('a', 'b', 3), ('a', 'c', 5), ('b', 'c', 10)])
>>> enregistra(g, 'a', 'b', 10)
>>> g.edges(data='minuts')    # doctesttag: +TAG=3_enregistra
EdgeDataView([('a', 'b', 13), ('a', 'c', 5), ('b', 'c', 10)])
>>> enregistra(g, 'c', 'a', 10)
>>> g.edges(data='minuts')    # doctesttag: +TAG=3_enregistra
EdgeDataView([('a', 'b', 13), ('a', 'c', 15), ('b', 'c', 10)])
>>> enregistra(g, 'a', 'd', 10)
>>> g.edges(data='minuts')    # doctesttag: +TAG=3_enregistra
EdgeDataView([('a', 'b', 13), ('a', 'c', 15), ('a', 'd', 10), ('b', 'c', 10)])

intercanvia

>>> from swap import intercanvia
>>> intercanvia('barcelona')    # doctesttag: +TAG=4_intercanvia
'abcrlenoa'
>>> intercanvia('les gates cegues')    # doctesttag: +TAG=4_intercanvia
'el saget secugse'
>>> intercanvia('ababab')    # doctesttag: +TAG=4_intercanvia
'bababa'
>>> intercanvia('abba')    # doctesttag: +TAG=4_intercanvia
'baab'
>>> intercanvia('aba')    # doctesttag: +TAG=4_intercanvia
'baa'
>>> intercanvia('ab')    # doctesttag: +TAG=4_intercanvia
'ba'
>>> intercanvia('a')    # doctesttag: +TAG=4_intercanvia
'a'
>>> intercanvia('')    # doctesttag: +TAG=4_intercanvia
''

mateixa_edat

>>> import pandas as pd
>>> from naufragi import mateixa_edat
>>> df = pd.read_csv('cincinnati.csv').set_index('PassengerId')
>>> mateixa_edat(df, 'Elias, Mr. Tannous')    # doctesttag: +TAG=5_mateixa_edat
['Elias, Mr. Tannous', 'Madill, Miss. Georgette Alexandra', 'McGowan, Miss. Anna "Annie"', 'Najib, Miss. Adele Kiamie "Jane"', 'Yasbeck, Mrs. Antoni (Selini Alexander)']
>>> mateixa_edat(df, 'Mallet, Master. Andre')    # doctesttag: +TAG=5_mateixa_edat
['Becker, Master. Richard F', 'Dean, Master. Bertram Vere', 'Goodwin, Master. Sidney Leonard', 'Johnson, Miss. Eleanor Ileen', 'Mallet, Master. Andre', 'Nakid, Miss. Maria ("Mary")', 'Panula, Master. Eino Viljami']
>>> mateixa_edat(df, 'Laleff, Mr. Kristo')    # doctesttag: +TAG=5_mateixa_edat
[]
>>> mateixa_edat(df, 'van Melkebeke, Mr. Philemon')    # doctesttag: +TAG=5_mateixa_edat
[]