def get_billing_status(balance, days_in_month):
daily = 300 / days_in_month
if balance < 0: return "Приостановка обслуживания"
days_left = balance / daily
if days_left <= 2: return "Второе предупреждение"
if days_left <= 5: return "Первое предупреждение"
return "Активен"
def run_task_2():
print("ЗАДАНИЕ 2: ТАРИФ СОТОВОГО ОПЕРАТОРА")
month_types = [
("Февраль", 28, 300/28),
("Апрель", 30, 300/30),
("Январь", 31, 300/31)
]
for m_name, days, daily in month_types:
border2 = round(daily * 2, 2)
border5 = round(daily * 5, 2)
print(f"\nМесяц: {m_name} ({days} дн). Списание: {round(daily, 2)} руб/день")
print(f"Классы: Блок (<0), 2-е пред. (0-{border2}), 1-е пред. ({border2}-{border5}), ОК (>{border5})")
print(f"Тесты: -1, 0, {border2}, {border2}+0.1, {border5}, {border5}+0.1")
test_cases = [
(-1, "Приостановка обслуживания"),
(0, "Второе предупреждение"),
(border2, "Второе предупреждение"),
(border2 + 0.1, "Первое предупреждение"),
(border5, "Первое предупреждение"),
(border5 + 0.1, "Активен")
]
for bal, exp in test_cases:
res = get_billing_status(bal, days)
print(f" Баланс: {bal} | Итог: {res} | {'OK' if res == exp else 'FAIL'}")
if __name__ == "__main__":
run_task_2()