Треки
/
C#
C#
/
Вправи
/
Відсотки - це цікаво
Відсотки - це цікаво

Відсотки - це цікаво

Навчальна вправа

Вступ

Числа з плаваючою комою

Число з плаваючою комою містить нуль або більше цифр після десяткового розділювача. Наприклад: -2.4, 0.1, 3.14, 16.984025 і 1024.0.

Різні типи з плаваючою комою можуть зберігати різну кількість цифр після десяткового розділювача; це називається точністю.

У C# є три типи з плаваючою комою:

  • float: 4 байти (точність ~6-9 цифр). Записується як 2.45f.
  • double: 8 байтів (точність ~15-17 цифр). Це найпоширеніший тип. Записується як 2.45 або 2.45d.
  • decimal: 16 байтів (точність 28-29 цифр). Зазвичай використовується під час роботи з грошовими даними, оскільки його точність зменшує ймовірність помилок округлення. Записується як 2.45m.

Як бачимо, кожен тип може зберігати різну кількість цифр. Наприклад, якщо спробувати зберегти число π у float, збережуться лише перші 6 знаків після коми (остання збережена цифра буде округлена).

Цикли while

У цій вправі нам може знадобитися цикл. У C# є кілька способів записати цикл, але тут найдоречнішим буде цикл while:

int x = 23;

while (x > 10)
{
    // Execute logic if x > 10
    x = x - 2;
}

Цикли do/while

Якщо код у циклі має виконуватися принаймні один раз, можна використати цикл do/while:

int x = 23;

do
{
    // Execute body, repeating only if x > 10
    x = x - 2;
} while (x > 10);

Вказівки

У цій вправі ми працюватимемо з ощадними рахунками. Щороку баланс ощадного рахунку оновлюється відповідно до його відсоткової ставки. Відсоткова ставка, яку надає банк, залежить від суми грошей на рахунку (його балансу):

  • 3.213% для відʼємного балансу (баланс стає ще більш відʼємним).
  • 0.5% для додатного балансу, меншого за 1000 доларів.
  • 1.621% для додатного балансу від 1000 доларів (включно) і меншого за 5000 доларів.
  • 2.475% для додатного балансу від 5000 доларів (включно).

На нас чекає чотири завдання, і кожне з них стосуватиметься балансу та його відсоткової ставки.

1. Обчислити відсоткову ставку

Реалізуйте (статичний) метод SavingsAccount.InterestRate(), щоб обчислити відсоткову ставку на основі заданого балансу:

SavingsAccount.InterestRate(balance: 200.75m)
// 0.5f

Зверніть увагу, що повернене значення має тип float.

2. Обчислити відсотки

Реалізуйте (статичний) метод SavingsAccount.Interest(), щоб обчислити відсотки на основі заданого балансу:

SavingsAccount.Interest(balance: 200.75m)
// 1.00375m

Зверніть увагу, що повернене значення має тип decimal.

3. Обчислити річне оновлення балансу

Реалізуйте (статичний) метод SavingsAccount.AnnualBalanceUpdate(), щоб обчислити оновлений річний баланс з урахуванням відсоткової ставки:

SavingsAccount.AnnualBalanceUpdate(balance: 200.75m)
// 201.75375m

Зверніть увагу, що повернене значення має тип decimal.

4. Обчислити кількість років до досягнення бажаного балансу

Реалізуйте (статичний) метод SavingsAccount.YearsBeforeDesiredBalance(), щоб обчислити мінімальну кількість років, потрібних для досягнення бажаного балансу за щорічного нарахування складних відсотків:

SavingsAccount.YearsBeforeDesiredBalance(balance: 200.75m, targetBalance: 214.88m)
// 14

Зверніть увагу, що повернене значення має тип int.

Note

Коли до початкового балансу застосовують прості відсотки, баланс множать на відсоткову ставку, а добуток цих двох величин дає суму відсотків.

Складні відсотки, зі свого боку, нараховують через регулярні проміжки часу. Щоразу суму відсотків обчислюють і додають до початкового балансу, тож наступні нарахування відсотків відбуваються вже від більшого балансу.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
C# Exercism

Час розпочати Відсотки - це цікаво?

Зареєструйтеся на Exercism, щоб вивчати й опановувати C#, а також 62 концепції178 вправ та справжнє наставництво від людей, і все це безкоштовно.