fa2 main programmed, todo: algorithm beschrijving
This commit is contained in:
parent
abff08989f
commit
d9eb3e9a93
|
@ -0,0 +1,109 @@
|
|||
# bereken basisprijs per KM
|
||||
def standaardprijs(afstandKM):
|
||||
|
||||
# prijskort geeft de waarde onder 50KM aan, prijslang boven de 50KM, basisprijs voor langer dan 50km
|
||||
prijskort = 0.80
|
||||
prijslang = 0.60
|
||||
basisprijs = 15
|
||||
|
||||
# do not allow negative KM, return 0
|
||||
if afstandKM < 0:
|
||||
return 0
|
||||
|
||||
# calculate price until 50KM, and return, round to 2 decimals or you get weird floats
|
||||
if afstandKM < 50:
|
||||
return round(afstandKM*prijskort, 2)
|
||||
|
||||
# calculate price 50KM and longer, and return
|
||||
if afstandKM >= 50:
|
||||
return round(prijslang*afstandKM+basisprijs, 2)
|
||||
|
||||
# bereken ritprijs afhankelijk van leeftijd, dag en rit lengte
|
||||
def ritprijs(leeftijd, weekendrit, afstandKM):
|
||||
|
||||
# bereken basisprijs
|
||||
basisprijs = standaardprijs(afstandKM)
|
||||
|
||||
# jonger dan 12 of 65 en ouder
|
||||
if leeftijd < 12 or leeftijd >= 65:
|
||||
# check of het weekend is
|
||||
if weekendrit == True:
|
||||
# tijdens het weekend 35% korting
|
||||
return round(basisprijs*0.65, 2)
|
||||
else:
|
||||
# geen weekend, 30% korting
|
||||
return round(basisprijs*0.70, 2)
|
||||
else:
|
||||
# check of het weekend is
|
||||
if weekendrit == True:
|
||||
# tijdens weekend 40% korting
|
||||
return round(basisprijs*0.60, 2)
|
||||
else:
|
||||
# geen weekend, basisprijs
|
||||
return round(basisprijs, 2)
|
||||
|
||||
# testen
|
||||
|
||||
# 11 jaar, geen weekend 0 kilometer
|
||||
print(ritprijs(11, False, 0))
|
||||
# 12 jaar, geen weekend 0 kilometer
|
||||
print(ritprijs(12, False, 0))
|
||||
# 64 jaar, geen weekend 0 kilometer
|
||||
print(ritprijs(64, False, 0))
|
||||
# 65 jaar, geen weekend 0 kilometer
|
||||
print(ritprijs(65, False, 0))
|
||||
|
||||
print('---')
|
||||
|
||||
# 11 jaar, wel weekend 0 kilometer
|
||||
print(ritprijs(11, True, 0))
|
||||
# 12 jaar, wel weekend 0 kilometer
|
||||
print(ritprijs(12, True, 0))
|
||||
# 64 jaar, wel weekend 0 kilometer
|
||||
print(ritprijs(64, True, 0))
|
||||
# 65 jaar, wel weekend 0 kilometer
|
||||
print(ritprijs(65, True, 0))
|
||||
|
||||
print('-----')
|
||||
|
||||
# 11 jaar, geen weekend 10 kilometer
|
||||
print(ritprijs(11, False, 10))
|
||||
# 12 jaar, geen weekend 10 kilometer
|
||||
print(ritprijs(12, False, 10))
|
||||
# 64 jaar, geen weekend 10 1kilometer
|
||||
print(ritprijs(64, False, 10))
|
||||
# 65 jaar, geen weekend 10 kilometer
|
||||
print(ritprijs(65, False, 10))
|
||||
|
||||
print('---')
|
||||
|
||||
# 11 jaar, wel weekend 10 kilometer
|
||||
print(ritprijs(11, True, 10))
|
||||
# 12 jaar, wel weekend 10 kilometer
|
||||
print(ritprijs(12, True, 10))
|
||||
# 64 jaar, wel weekend 10 kilometer
|
||||
print(ritprijs(64, True, 10))
|
||||
# 65 jaar, wel weekend 10 kilometer
|
||||
print(ritprijs(65, True, 10))
|
||||
|
||||
print('-----')
|
||||
|
||||
# 11 jaar, geen weekend 100 kilometer
|
||||
print(ritprijs(11, False, 100))
|
||||
# 12 jaar, geen weekend 100 kilometer
|
||||
print(ritprijs(12, False, 100))
|
||||
# 64 jaar, geen weekend 100 1kilometer
|
||||
print(ritprijs(64, False, 100))
|
||||
# 65 jaar, geen weekend 100 kilometer
|
||||
print(ritprijs(65, False, 100))
|
||||
|
||||
print('---')
|
||||
|
||||
# 11 jaar, wel weekend 100 kilometer
|
||||
print(ritprijs(11, True, 100))
|
||||
# 12 jaar, wel weekend 100 kilometer
|
||||
print(ritprijs(12, True, 100))
|
||||
# 64 jaar, wel weekend 100 kilometer
|
||||
print(ritprijs(64, True, 100))
|
||||
# 65 jaar, wel weekend 100 kilometer
|
||||
print(ritprijs(65, True, 100))
|
Reference in New Issue