Wpis z mikrobloga

Jak w #python mogę zrobić algorytm płatności za usługi na zasadzie, że wrzucam pewną ilość pieniędzy, i dla tych pieniędzy dostaje maksymalny czas korzystania z usługi (coś jak parkomat): pierwsza godzina - 2 zł, druga godzina 4 zł, każda kolejna godzina - 5 zł? Ale też obsługuje to interwały 15 oraz 30 minutowe. Czyli np wrzucę 1 zł mogę korzystać 30 min, wrzucę 2 zł mogę korzystać 1h, wrzucę 6 zł mogę korzystać 2h (bo pierwsza godzina 2 zł, druga 4 zł), wrzucę 11 zł mogę korzystać 3h itp. Najlepsza będzie funkcja, która przyjmuje wartość dodanych pieniędzy, a zwraca sekundy.
#programowanie #studbaza #java #csharp
  • 10
@Gaahl75:

return (18*(1*100))/60
18 to ilość groszy za minutę, 1*100 to złotówka pomnożona * 100 aby nie było błędów zaokrągleń float, dzielone przez 60 sekund

0.5 zł czyli 50groszy podstawione w takim wypadku zamiast 1zł zwraca 15 minut, funkcję regulujesz groszami za minutę

dla pierwsze godziny 18gr za minutę, dla następnej 2x więcej, kolejna musisz policzyć ile jest gr za minute z 5zł za godzinę. Tu musisz ifa dać.
@Gaahl75: o pajtonie niewiele powiem sensownego, ale zakładając że projekt studencki i nikt w tym płacić nie będzie ( ͡° ͜ʖ ͡°) a chodzi tylko o napisanie jakiejś ifologii na zaliczenie, to... jechałbym TDD: zacząłbym od napisania prostego testów dla którejś z tych wartości, a potem dopisał kod który spełni te testy (serio, wtedy kod pisze się dziwnie łatwo), a potem znów dodał kolejny przypadek i znów
@ZabiliMiZolwia: zrób progi, jak w systemie podatkowym ( ͡° ͜ʖ ͡°)

suma = suma wartości wszystkich monet w groszach # for
czas=0 # w sekundach
if(suma<=200):
.czas = suma * 18 # 18, tak jak pisał @tos-1_buratino
.return czas
suma = suma - 200

if(suma<=400):
.czas += suma * 9 # bo w 2giej h za każdy grosz dostajesz 3600/400 s
.return czas
suma -= 400

return