Solució del lliurament 1 G30 d’Informàtica

Organització:

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

Data:

28 de setembre de 2022

Copyright:

Reconeixement-CompartirIgual 3.0 No adaptada de Creative Commons

Durada:

45 minuts

Jocs de proves

Tests exercici 1

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

>>> from maxrel import maxims
>>> it = iter([22, 34, 55, 67, 90, 10, 10, -45, -60, -18, -90, 88, 55, 32, 44, 11, 39, 89, 50, 22])
>>> for elem in maxims(it):    # doctesttag: +TAG=1_maxrels
...     print(elem, end=',')
90,-18,88,44,89,
>>> from math import sin
>>> it = ( int(i*sin(i)) for i in range(100) )
>>> for elem in maxims(it):    # doctesttag: +TAG=1_maxrels
...     print(elem, end=',')
1,7,13,18,25,32,37,41,51,57,58,67,76,80,80,94,
>>> it = ( (-1)**i for i in range(40) )
>>> for elem in maxims(it):    # doctesttag: +TAG=1_maxrels
...     print(elem, end=',')
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
>>> from itertools import *
>>> it = chain.from_iterable(product([1, 4, 3, 6, 8], repeat = 3))
>>> for elem in maxims(it):    # doctesttag: +TAG=1_maxrels
...     print(elem, end=',')
4,3,6,8,4,4,6,8,3,4,6,8,6,6,6,8,8,8,8,8,4,4,6,8,6,8,4,4,6,8,6,6,6,8,8,8,8,8,3,4,6,8,4,4,6,8,4,6,8,6,6,6,8,8,8,8,8,6,6,6,8,6,6,6,8,6,6,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
>>> def gen1():
...    n = 0
...    while True:
...      yield n
...      n = (n * 500 + 323) % 8877
>>> it = maxims(gen1())
>>> for i in range(20):    # doctesttag: +TAG=1_maxrels
...     print(next(it), end=',')
6845,6116,7631,7779,5508,5156,8375,7238,6207,8052,7865,8715,2489,7758,5228,7044,8390,1938,5720,6107,

Tests exercici 2

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

>>> from frase import transforma
>>> f = iter('LA DEESSA TE UNA CASA RARA'.split())
>>> for p in transforma(f):     # doctesttag: +TAG=2_tfrase
...    print(p, end='-')
LR-TS-UNR-CRSR-
>>> f = iter('ARA MIRA LA PARRILLA QUE GRAN I ALTA AAA RRR'.split())
>>> for p in transforma(f):     # doctesttag: +TAG=2_tfrase
...    print(p, end='-')
MIRR-LR-QUS-GRRN-I-RLTR-
>>> f = iter('EL SENYOR DE SES ESSES SEQUES VE DE LLUNY EEE SSS'.split())
>>> for p in transforma(f):     # doctesttag: +TAG=2_tfrase
...    print(p, end='-')
SL-SSNYOR-DS-SSQUSS-VS-DS-LLUNY-
>>> f = iter(['INICI'] + ['ESSA', 'BARROCA'] * 1000 + ['FI'])
>>> for p in transforma(f):     # doctesttag: +TAG=2_tfrase
...    print(p, end='-')
INICI-FI-
>>> import itertools
>>> f1 = itertools.cycle(['CARRO', 'NOU', 'FRASES', 'VANES'])
>>> f2 = transforma(f1)
>>> for x in range(5000):
...     a = next(f2)
>>> for x in range(10):        # doctesttag: +TAG=2_tfrase
...     print(next(f2), end='-')
NOU-VRNSS-NOU-VRNSS-NOU-VRNSS-NOU-VRNSS-NOU-VRNSS-