1. Autopistes de peatge (4 punts)

Dissenya les funcions següents i desa-les al fitxer autopistes.py.

trams(numEntrada, numSortida, preuTram, preuMax)

Retorna un float amb el preu d’anar des de l’entrada numEntrada fins a la sortida numSortida d’una autopista, on cada tram d’autopista costa preuTram euros, i tenim un preu màxim preuMax.

Per exemple:

>>> round(trams(3, 10, 6.5, 50), 2)
45.5
>>> round(trams(10, 3, 6.5, 50), 2)
45.5
>>> round(trams(7, 8, 5, 60),    2)
5.0
>>> round(trams(14, 2, 6.1, 60), 2)
60.0

Trobaràs més tests al fitxer test-trams.txt


peatge(numEnt, numSor, kms, tipus, teVinyeta)

Retorna el preu total del peatge a pagar (un float).

Aquest preu és la suma de dues components. La primera depèn només del número de trams que hi ha entre l’inici (numEnt) i el final (numSor) del trajecte. La segona té en compte el número de quilòmetres que s’han fet (kms), el tipus de vehicle (un string “T” per turisme, “C” per camió, o “A” per altres), i si el vehicle du vinyeta o no (un booleà teVinyeta).

  • El preu de recórrer els trams d’aquesta autopista és de 6.5€/tram, amb un màxim de 60€.

  • El càlcul del preu pels quilòmetres recorreguts depèn del tipus de vehicle: si és un turisme és 0.03€/km, si és un camió és 0.4€/km, altrament és 0.25€/km. A més a més, si el vehicle du vinyeta el preu pels quilòmetres rep una bonificació: del 100% si es tracta d’un turisme, del 80% pels camions, altrament del 90%.

Per exemple:

>>> round(peatge(3, 10, 63, 'T', True),   2)
45.5
>>> round(peatge(10, 3, 63, 'C', False),  2)
70.7
>>> round(peatge(7, 8, 14, 'A', True),    2)
6.85
>>> round(peatge(14, 4, 123, 'T', False), 2)
63.69

Trobaràs més tests al fitxer test-peatge.txt