Solució del lliurament 1 G10 d’Informàtica

Organització:

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

Data:

15 de març de 2023

Durada:

50 minuts

Copyright:

Reconeixement-CompartirIgual 4.0 No adaptada de Creative Commons

Jocs de proves

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

Tests exercici 1

>>> from rotacio import rotacions_paraula
>>> it = rotacions_paraula('exemple')
>>> next(it)    # doctesttag: +TAG=1_rotacions
'xemplee'
>>> for p in it:
...   print(p, end='-')    # doctesttag: +TAG=1_rotacions
empleex-mpleexe-pleexem-leexemp-eexempl-exemple-
>>> for p in rotacions_paraula('tapo'):
...   print(p, end='-')    # doctesttag: +TAG=1_rotacions
apot-pota-otap-tapo-
>>> for p in rotacions_paraula('abcdefghijk'):
...   print(p, end='-')    # doctesttag: +TAG=1_rotacions
bcdefghijka-cdefghijkab-defghijkabc-efghijkabcd-fghijkabcde-ghijkabcdef-hijkabcdefg-ijkabcdefgh-jkabcdefghi-kabcdefghij-abcdefghijk-
>>> for p in rotacions_paraula('aramatacatamara'):
...   print(p, end='-')    # doctesttag: +TAG=1_rotacions
ramatacatamaraa-amatacatamaraar-matacatamaraara-atacatamaraaram-tacatamaraarama-acatamaraaramat-catamaraaramata-atamaraaramatac-tamaraaramataca-amaraaramatacat-maraaramatacata-araaramatacatam-raaramatacatama-aaramatacatamar-aramatacatamara-
>>> for p in rotacions_paraula('tot'):
...   print(p, end='-')    # doctesttag: +TAG=1_rotacions
ott-tto-tot-
>>> for p in rotacions_paraula('doremifasol'):
...   print(p, end='-')    # doctesttag: +TAG=1_rotacions
oremifasold-remifasoldo-emifasoldor-mifasoldore-ifasoldorem-fasoldoremi-asoldoremif-soldoremifa-oldoremifas-ldoremifaso-doremifasol-
>>> for p in rotacions_paraula('esterotipia'):
...   print(p, end='-')    # doctesttag: +TAG=1_rotacions
sterotipiae-terotipiaes-erotipiaest-rotipiaeste-otipiaester-tipiaestero-ipiaesterot-piaesteroti-iaesterotip-aesterotipi-esterotipia-
>>> for p in rotacions_paraula('filibuster'):
...   print(p, end='-')    # doctesttag: +TAG=1_rotacions
ilibusterf-libusterfi-ibusterfil-busterfili-usterfilib-sterfilibu-terfilibus-erfilibust-rfilibuste-filibuster-
>>> for p in rotacions_paraula('pneumonoultramicroscopicsilicovolcanoconioses'):
...   print(p, end='-')    # doctesttag: +TAG=1_rotacions
neumonoultramicroscopicsilicovolcanoconiosesp-eumonoultramicroscopicsilicovolcanoconiosespn-umonoultramicroscopicsilicovolcanoconiosespne-monoultramicroscopicsilicovolcanoconiosespneu-onoultramicroscopicsilicovolcanoconiosespneum-noultramicroscopicsilicovolcanoconiosespneumo-oultramicroscopicsilicovolcanoconiosespneumon-ultramicroscopicsilicovolcanoconiosespneumono-ltramicroscopicsilicovolcanoconiosespneumonou-tramicroscopicsilicovolcanoconiosespneumonoul-ramicroscopicsilicovolcanoconiosespneumonoult-amicroscopicsilicovolcanoconiosespneumonoultr-microscopicsilicovolcanoconiosespneumonoultra-icroscopicsilicovolcanoconiosespneumonoultram-croscopicsilicovolcanoconiosespneumonoultrami-roscopicsilicovolcanoconiosespneumonoultramic-oscopicsilicovolcanoconiosespneumonoultramicr-scopicsilicovolcanoconiosespneumonoultramicro-copicsilicovolcanoconiosespneumonoultramicros-opicsilicovolcanoconiosespneumonoultramicrosc-picsilicovolcanoconiosespneumonoultramicrosco-icsilicovolcanoconiosespneumonoultramicroscop-csilicovolcanoconiosespneumonoultramicroscopi-silicovolcanoconiosespneumonoultramicroscopic-ilicovolcanoconiosespneumonoultramicroscopics-licovolcanoconiosespneumonoultramicroscopicsi-icovolcanoconiosespneumonoultramicroscopicsil-covolcanoconiosespneumonoultramicroscopicsili-ovolcanoconiosespneumonoultramicroscopicsilic-volcanoconiosespneumonoultramicroscopicsilico-olcanoconiosespneumonoultramicroscopicsilicov-lcanoconiosespneumonoultramicroscopicsilicovo-canoconiosespneumonoultramicroscopicsilicovol-anoconiosespneumonoultramicroscopicsilicovolc-noconiosespneumonoultramicroscopicsilicovolca-oconiosespneumonoultramicroscopicsilicovolcan-coniosespneumonoultramicroscopicsilicovolcano-oniosespneumonoultramicroscopicsilicovolcanoc-niosespneumonoultramicroscopicsilicovolcanoco-iosespneumonoultramicroscopicsilicovolcanocon-osespneumonoultramicroscopicsilicovolcanoconi-sespneumonoultramicroscopicsilicovolcanoconio-espneumonoultramicroscopicsilicovolcanoconios-spneumonoultramicroscopicsilicovolcanoconiose-pneumonoultramicroscopicsilicovolcanoconioses-

Tests exercici 2

>>> from indexmat import index_matriu
>>> it = index_matriu(5)
>>> next(it), next(it)  # doctesttag: +TAG=2_indexmat
((1, 2), (1, 3))
>>> for p in it:  # doctesttag: +TAG=2_indexmat
...   print(p, end='-')
(1, 4)-(1, 5)-(2, 3)-(2, 4)-(2, 5)-(3, 4)-(3, 5)-(4, 5)-
>>> for p in index_matriu(8):  # doctesttag: +TAG=2_indexmat
...   print(p, end='-')
(1, 2)-(1, 3)-(1, 4)-(1, 5)-(1, 6)-(1, 7)-(1, 8)-(2, 3)-(2, 4)-(2, 5)-(2, 6)-(2, 7)-(2, 8)-(3, 4)-(3, 5)-(3, 6)-(3, 7)-(3, 8)-(4, 5)-(4, 6)-(4, 7)-(4, 8)-(5, 6)-(5, 7)-(5, 8)-(6, 7)-(6, 8)-(7, 8)-
>>> for p in index_matriu(12):  # doctesttag: +TAG=2_indexmat
...   print(p, end='-')
(1, 2)-(1, 3)-(1, 4)-(1, 5)-(1, 6)-(1, 7)-(1, 8)-(1, 9)-(1, 10)-(1, 11)-(1, 12)-(2, 3)-(2, 4)-(2, 5)-(2, 6)-(2, 7)-(2, 8)-(2, 9)-(2, 10)-(2, 11)-(2, 12)-(3, 4)-(3, 5)-(3, 6)-(3, 7)-(3, 8)-(3, 9)-(3, 10)-(3, 11)-(3, 12)-(4, 5)-(4, 6)-(4, 7)-(4, 8)-(4, 9)-(4, 10)-(4, 11)-(4, 12)-(5, 6)-(5, 7)-(5, 8)-(5, 9)-(5, 10)-(5, 11)-(5, 12)-(6, 7)-(6, 8)-(6, 9)-(6, 10)-(6, 11)-(6, 12)-(7, 8)-(7, 9)-(7, 10)-(7, 11)-(7, 12)-(8, 9)-(8, 10)-(8, 11)-(8, 12)-(9, 10)-(9, 11)-(9, 12)-(10, 11)-(10, 12)-(11, 12)-
>>> for p in index_matriu(20):  # doctesttag: +TAG=2_indexmat
...   print(p, end='-')
(1, 2)-(1, 3)-(1, 4)-(1, 5)-(1, 6)-(1, 7)-(1, 8)-(1, 9)-(1, 10)-(1, 11)-(1, 12)-(1, 13)-(1, 14)-(1, 15)-(1, 16)-(1, 17)-(1, 18)-(1, 19)-(1, 20)-(2, 3)-(2, 4)-(2, 5)-(2, 6)-(2, 7)-(2, 8)-(2, 9)-(2, 10)-(2, 11)-(2, 12)-(2, 13)-(2, 14)-(2, 15)-(2, 16)-(2, 17)-(2, 18)-(2, 19)-(2, 20)-(3, 4)-(3, 5)-(3, 6)-(3, 7)-(3, 8)-(3, 9)-(3, 10)-(3, 11)-(3, 12)-(3, 13)-(3, 14)-(3, 15)-(3, 16)-(3, 17)-(3, 18)-(3, 19)-(3, 20)-(4, 5)-(4, 6)-(4, 7)-(4, 8)-(4, 9)-(4, 10)-(4, 11)-(4, 12)-(4, 13)-(4, 14)-(4, 15)-(4, 16)-(4, 17)-(4, 18)-(4, 19)-(4, 20)-(5, 6)-(5, 7)-(5, 8)-(5, 9)-(5, 10)-(5, 11)-(5, 12)-(5, 13)-(5, 14)-(5, 15)-(5, 16)-(5, 17)-(5, 18)-(5, 19)-(5, 20)-(6, 7)-(6, 8)-(6, 9)-(6, 10)-(6, 11)-(6, 12)-(6, 13)-(6, 14)-(6, 15)-(6, 16)-(6, 17)-(6, 18)-(6, 19)-(6, 20)-(7, 8)-(7, 9)-(7, 10)-(7, 11)-(7, 12)-(7, 13)-(7, 14)-(7, 15)-(7, 16)-(7, 17)-(7, 18)-(7, 19)-(7, 20)-(8, 9)-(8, 10)-(8, 11)-(8, 12)-(8, 13)-(8, 14)-(8, 15)-(8, 16)-(8, 17)-(8, 18)-(8, 19)-(8, 20)-(9, 10)-(9, 11)-(9, 12)-(9, 13)-(9, 14)-(9, 15)-(9, 16)-(9, 17)-(9, 18)-(9, 19)-(9, 20)-(10, 11)-(10, 12)-(10, 13)-(10, 14)-(10, 15)-(10, 16)-(10, 17)-(10, 18)-(10, 19)-(10, 20)-(11, 12)-(11, 13)-(11, 14)-(11, 15)-(11, 16)-(11, 17)-(11, 18)-(11, 19)-(11, 20)-(12, 13)-(12, 14)-(12, 15)-(12, 16)-(12, 17)-(12, 18)-(12, 19)-(12, 20)-(13, 14)-(13, 15)-(13, 16)-(13, 17)-(13, 18)-(13, 19)-(13, 20)-(14, 15)-(14, 16)-(14, 17)-(14, 18)-(14, 19)-(14, 20)-(15, 16)-(15, 17)-(15, 18)-(15, 19)-(15, 20)-(16, 17)-(16, 18)-(16, 19)-(16, 20)-(17, 18)-(17, 19)-(17, 20)-(18, 19)-(18, 20)-(19, 20)-

Tests exercici 3

>>> from datetime import date
>>> from seqdates import dates_posteriors
>>> import itertools
>>> it = dates_posteriors(date(2023, 3, 16), 3)
>>> next(it), next(it)    # doctesttag: +TAG=3_seqdates
(datetime.date(2023, 3, 16), datetime.date(2023, 3, 19))
>>> for d in range(5):
...   print(next(it), end='>>>')    # doctesttag: +TAG=3_seqdates
2023-03-22>>>2023-03-25>>>2023-03-28>>>2023-03-31>>>2023-04-03>>>
>>> it = dates_posteriors(date(1800, 1, 1), 15)
>>> for d in range(5):
...   print(next(it), end='>>>')    # doctesttag: +TAG=3_seqdates
1800-01-01>>>1800-01-16>>>1800-01-31>>>1800-02-15>>>1800-03-02>>>
>>> it = dates_posteriors(date(3000, 6, 4), 100)
>>> it = itertools.islice(it, 1000, 1020)
>>> for d in it:
...   print(next(it), end='>>>')    # doctesttag: +TAG=3_seqdates
3274-06-27>>>3275-01-13>>>3275-08-01>>>3276-02-17>>>3276-09-04>>>3277-03-23>>>3277-10-09>>>3278-04-27>>>3278-11-13>>>3279-06-01>>>
>>> it = dates_posteriors(date(1, 1, 1), 1)
>>> it = itertools.islice(it, 4000, 4030)
>>> for d in it:
...   print(next(it), end='>>>')    # doctesttag: +TAG=3_seqdates
0011-12-16>>>0011-12-18>>>0011-12-20>>>0011-12-22>>>0011-12-24>>>0011-12-26>>>0011-12-28>>>0011-12-30>>>0012-01-01>>>0012-01-03>>>0012-01-05>>>0012-01-07>>>0012-01-09>>>0012-01-11>>>0012-01-13>>>