Solució del lliurament 1 G30 d’Ampliació d’Informàtica¶
- Organització:
Secció ETSEIB, Departament de Ciències de la Computació, UPC
- Data:
11 d’octubre de 2023
- Durada:
30 minuts
- Copyright:
Reconeixement-CompartirIgual 3.0 No adaptada de Creative Commons
Jocs de proves
Test seqint¶
Els exemples que compten per la nota són només els que van seguits de # doctesttag: +TAG=1_seqint
>>> from seqint import seqint
>>> for n in seqint(iter([])): # doctesttag: +TAG=1_seqint
... print(repr(n), end='-')
Cas mínim (subseqüència buida o sense xifres):
>>> for n in seqint(iter([-1])): # doctesttag: +TAG=1_seqint
... print(repr(n), end='-')
0-
Una subseqüència amb les xifres 1 i 3:
>>> for n in seqint(iter([ 2, 5, -1 ])): # doctesttag: +TAG=1_seqint
... print(repr(n), end='-')
25-
Tres subseqüències:
>>> for n in seqint(iter([ 6, 2, 7, 1, -1, 0, 3, 6, -1, -1])): # doctesttag: +TAG=1_seqint
... print(repr(n), end='-')
6271-36-0-
>>> for n in seqint(iter([-1, -1, -1, -1, -1])): # doctesttag: +TAG=1_seqint
... print(repr(n), end='-')
0-0-0-0-0-
>>> for n in seqint(iter([4, -1, 2, -1, 7, -1, 6, -1, 1, -1])): # doctesttag: +TAG=1_seqint
... print(repr(n), end='-')
4-2-7-6-1-
>>> for n in seqint(iter([5, 5, 5, 5, 5, -1,
... 4, 4, 4, 4, -1,
... 3, 3, 3, -1,
... 2, 2, -1,
... 1, -1,
... 0, -1])): # doctesttag: +TAG=1_seqint
... print(repr(n), end='-')
55555-4444-333-22-1-0-
Cinc subseqüències:
>>> exemple2 = [ 7, 6, 9, 4, -1, 2, 5, 6, 2, 5, 1, -1, 2, 2, -1, 9, -1, -1]
>>> for n in seqint(iter(exemple2)): # doctesttag: +TAG=1_seqint
... print(repr(n), end='-')
...
7694-256251-22-9-0-
Test selelem¶
Els exemples que compten per la nota són només els que van seguits de # doctesttag: +TAG=2_selelem
>>> import itertools
>>> from selelem import selelem
>>> sel = itertools.cycle([False, True])
>>> nombres = itertools.count(10)
>>> exemple = selelem(nombres, sel)
>>> for i in range(10): # doctesttag: +TAG=2_selelem
... print(next(exemple), end='·')
...
11·13·15·17·19·21·23·25·27·29·
>>> seleccio = [False, True, True, True, False, True, False]
>>> nombres = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> # resultat: 1 2 3
>>> exemple = selelem(nombres, seleccio)
>>> for n in exemple: # doctesttag: +TAG=2_selelem
... print(n, end='·')
...
1·2·3·5·
>>> sel = itertools.cycle([False, False, True, True])
>>> nombres = itertools.count(17)
>>> exemple = selelem(nombres, sel)
>>> for i in range(10): # doctesttag: +TAG=2_selelem
... print(next(exemple), end='·')
...
19·20·23·24·27·28·31·32·35·36·
>>> sel= (True, False, False, False, False, False, False, False, True )
>>> for n in selelem(range(100), sel): # doctesttag: +TAG=2_selelem
... print(repr(n), end='·')
0·8·
>>> sel= (n % 8 == 0 for n in range(100))
>>> for c in selelem('Avinguda Diagonal, 647 08029 Barcelona', sel): # doctesttag: +TAG=2_selelem
... print(repr(c), end='·')
'A'·' '·'l'·'8'·'c'·