4. Recursivitat: Comprova dates (2 punts)¶
Avís
Per a resoldre aquest exercici no es poden fer servir
iteracions (ni for ni while ), només
funcions recursives.
Representem les dates d’inici i de fi d’un procés industrial com una tupla amb dues instàncies de la classe datetime.date, on la primera representa la data d’inici i la segona la data de fi del procés. A aquesta tupla l’anomenem p-span. Diem que un p-span és incorrecte quan la seva data d’inici és estrictament posterior a la data de fi.
Es demana que al mòdul date_checking (fitxer date_checking.py) implementeu la funció recursiva següent:
- date_checking.verificacio(l)¶
- Paràmetres:
l – llista de
p-span- Retorna:
l’índex (d’acord amb la indexació de les llistes de Python) i diferència de dies del primer
p-spanincorrecte. En cas que no n’hi hagi cap, s’ha de retornar el parell -1, -1.
Per exemple, donada la llista amb les dates següents:
>>> l = []
>>> l.append((datetime.date (2023, 3, 20), datetime.date (2023, 3, 25)))
>>> l.append((datetime.date (2023, 3, 20), datetime.date (2023, 3, 20)))
>>> l.append((datetime.date (2023, 3, 20), datetime.date (2023, 3, 19)))
>>> l.append((datetime.date (2023, 3, 20), datetime.date (2023, 2, 15)))
>>> verificacio(l)
(2, -1)
el resultat correcte verificacio(l) és (2, -1) ja que el primer p-span incorrecte està a la posició 2 i la seva diferència en dies de les dates d’inici i fi és de -1 dies. El p-span de la posició 3 també és incorrecte però és posterior.
Nota
Disposeu de més jocs de proves al fitxer tests-date_checking.txt.