Triangle de Tartaglia¶
Avís
Per a resoldre aquest exercici no es poden fer servir llistes, tuples, diccionaris ni cap altra estructura de dades per a desar tots els elements d’un iterador.
Ens proposen que apliquem el següent mètode per generar el triangle de Tartaglia :
Dissenyeu la funció genenadora següent i deseu-la al mòdul
tartaglia
(fitxertartaglia.py
):- tartaglia.crea_linia(iterlin)¶
Donat un iterador,
iterlin
sobre la seqüència dels nombres enters corresponents a una determinada fila del triangle de Tartaglia (a partir de la segona fila), genera un altre iterador sobre la seqüència dels nombres enters corresponents a la fila següent a la donada. Exemples:>>> from tartaglia import * >>> a = crea_linia(iter([1, 4, 6, 4, 1])) >>> next(a) 1 >>> next(a) 5 >>> for x in a: ... print(x, end = '/') 10/10/5/1/ >>> a = crea_linia(iter([1, 1])) >>> for x in a: ... print(x, end = '/') 1/2/1/ >>> a = crea_linia(iter([1,7,21,35,35,21,7,1,])) >>> for x in a: ... print(x, end = '/') 1/8/28/56/70/56/28/8/1/
Disposeu de jocs de prova en el fitxer test-linia.txt
.
Dissenyeu la funció generadora següent i deseu-la al mòdul
tartaglia
(fitxertartaglia.py
):- tartaglia.triangle_tartaglia(n)¶
Donat un enter,
n
, genera un iterador sobre una seqüència d’iteradors corresponents a les files consecutives del triangle de Tartaglia fins a la filan
. Aquesta funció ha de cridar la funciócrea_linia()
. Exemples:>>> from tartaglia import * >>> t1 = triangle_tartaglia(1) >>> for subit in t1: ... for e in subit: ... print(e, end = '/') ... print('/') 1// >>> t2 = triangle_tartaglia(2) >>> for subit in t2: ... for e in subit: ... print(e, end = '/') ... print('/') 1// 1/1// >>> t3 = triangle_tartaglia(4) >>> for subit in t3: ... for e in subit: ... print(e, end = '/') ... print('/') 1// 1/1// 1/2/1// 1/3/3/1//
Disposeu de jocs de prova en el fitxer test-tartaglia.txt
.
Disposeu de més jocs de prova de totes dues funcions en el fitxer test-tartaglia2.txt
.
Solució
Disposeu d’una solució al fitxer tartaglia.py
.