Треки
/
C#
C#
/
Вправи
/
Автомобілі, збираймося!
Автомобілі, збираймося!

Автомобілі, збираймося!

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

Вступ

Числа

У C# є два різні типи чисел:

  • Цілі числа: числа, у яких немає цифр після десяткового розділювача (без дробової частини). Наприклад, -6, 0, 1, 25, 976 і 500000.
  • Числа з плаваючою комою: числа, у яких після десяткового розділювача є нуль або більше цифр. Наприклад, -2.4, 0.1, 3.14, 16.984025 і 1024.0.

Два найпоширеніші числові типи в C# - це int і double. int - це 32-бітне ціле число, а double - це 64-бітне число з плаваючою комою.

Арифметичні дії виконують за допомогою стандартних арифметичних операторів. Числа можна порівнювати за допомогою стандартних операторів порівняння чисел, а також операторів рівності (==) і нерівності (!=).

У C# є два типи числових перетворень:

  1. Неявні перетворення: дані не втрачаються, і додатковий синтаксис не потрібен.
  2. Явні перетворення: дані можуть втратитися, і потрібен додатковий синтаксис у вигляді приведення типу.

Оскільки int має меншу точність, ніж double, перетворення з int на double безпечне, а отже, є неявним. Однак перетворення з double на int може призвести до втрати даних, тому воно потребує явного перетворення.

int softCool = 1358938113;
double notLost = 4.8151623;

// implicit cast: no loss of information
double macDebug = softCool;         // 1358938113.0

// explicit cast: possible loss of information 
int somethingLost = (int)notLost;   // 4

Умовні конструкції

У цій вправі ми маємо виконувати логіку за певної умови. Найпоширеніший спосіб зробити це в C# - скористатися конструкцією if/else:

int x = 6;

if (x == 5)
{
    // Execute logic if x equals 5
}
else if (x > 7)
{
    // Execute logic if x greater than 7
}
else
{
    // Execute logic in all other cases
}

Умова конструкції if має бути типу bool. У C# немає поняття істинних значень.

Вказівки

У цій вправі ми будемо писати код для аналізу виробництва на складальній лінії автомобільного заводу. Швидкість складальної лінії може бути від 0 (вимкнено) до 10 (максимум).

За найнижчої швидкості (1) щогодини виробляється 221 автомобіль. Обсяг виробництва зростає лінійно зі швидкістю. Тож зі швидкістю 4 має вироблятися 4 * 221 = 884 автомобілі на годину. Однак вищі швидкості підвищують імовірність виробництва дефектних автомобілів, які потім доводиться вибраковувати.

На нас чекають три завдання.

1. Обчислити коефіцієнт успішності

Реалізуйте (статичний) метод AssemblyLine.SuccessRate(), щоб обчислити частку виробів, створених без помилок, за заданої швидкості. У таблиці нижче показано, як швидкість впливає на коефіцієнт успішності:

  • 0: 0% успішності.
  • від 1 до 4: 100% успішності.
  • від 5 до 8: 90% успішності.
  • 9: 80% успішності.
  • 10: 77% успішності.
AssemblyLine.SuccessRate(10)
// => 0.77

2. Обчислити продуктивність за годину

Реалізуйте (статичний) метод AssemblyLine.ProductionRatePerHour(), щоб обчислити продуктивність складальної лінії за годину з урахуванням коефіцієнта успішності:

AssemblyLine.ProductionRatePerHour(6)
// => 1193.4

Зауважте, що повернене значення має тип double.

3. Обчислити кількість робочих виробів, виготовлених за хвилину

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

AssemblyLine.WorkingItemsPerMinute(6)
// => 19

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

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

Час розпочати Автомобілі, збираймося!?

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