У цій вправі ми писатимемо код, який допоможе фрилансеру спілкуватися зі своїми клієнтами щодо цін на певні проєкти. Ми напишемо кілька допоміжних функцій, щоб швидко розраховувати вартість для клієнтів.
Клієнт звертається до фрилансера із запитанням про його ставки. Фрилансер пояснює, що працює 8 годин на день. Однак фрилансер знає лише свою погодинну ставку для цього проєкту. Допоможіть їм обчислити денну ставку за погодинною ставкою.
Реалізуйте функцію dailyRateFrom(hourlyRate:), яка приймає аргумент hourlyRate — погодинну ставку фрилансера.
Функція повинна повернути денну ставку на основі погодинної ставки.
dailyRateFrom(hourlyRate: 60)
// Returns 480.0
Повернена денна ставка має бути Double.
Іноді клієнт хоче найняти фрилансера на довший період. Фрилансер готовий дати клієнту знижку, але лише якщо той наймає його щонайменше на місяць. Усього налічується 22 робочі дні. Допоможіть фрилансеру обчислити місячну ставку за його погодинною ставкою та відсотком знижки від повної ставки, яку він готовий надати, округлену до найближчого цілого числа.
Реалізуйте функцію monthlyRateFrom(hourlyRate:withDiscount:), яка приймає аргументи hourlyRate — погодинну ставку фрилансера, та withDiscount — знижку, яку фрилансер готовий надати клієнту.
Функція повинна повернути місячну ставку, округлену до найближчого цілого числа.
monthlyRateFrom(hourlyRate: 77, withDiscount: 10.5)
// Returns 12129
Іншого дня менеджер проєкту пропонує фрилансеру попрацювати над проєктом із фіксованим бюджетом. Маючи фіксований бюджет і погодинну ставку фрилансера, допоможіть обчислити, скільки днів він працюватиме, поки бюджет не вичерпається. Врахуйте, що в цьому сценарії фрилансер завжди готовий надати знижку незалежно від кількості найманих днів. Результат потрібно округлити вниз до найближчого цілого числа.
Реалізуйте функцію workdaysIn(budget:hourlyRate:withDiscount:), яка приймає аргументи:
budget — бюджет проєкту.hourlyRate — погодинну ставку фрилансера.withDiscount — знижку, яку фрилансер готовий надати клієнту.Функція повинна повернути кількість робочих днів, які фрилансер працюватиме над проєктом, округлену вниз.
workdaysIn(budget: 20000, hourlyRate: 80, withDiscount: 11.0)
// Returns 35.0
Зареєструйтеся на Exercism, щоб вивчати й опановувати Swift, а також 35 концепцій116 вправ та справжнє наставництво від людей, і все це безкоштовно.