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

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

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

Вступ

Числа

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

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

У Java найчастіше використовують два числові типи: int і double. int - це 32-бітове ціле число, а double - 64-бітове число з плаваючою комою.

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

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

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

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

Інструкції if-else

Інструкція if-then

Найпростіша інструкція керування потоком виконання в Java - інструкція if-then. Цю інструкцію використовують, щоб виконувати частину коду лише за певної умови, яка дорівнює true. Інструкцію if-then визначають за допомогою конструкції if:

class Car {
    void drive() {
        // the "if" clause: the car needs to have fuel left to drive
        if (fuel > 0) {
            // the "then" clause: the car drives, consuming fuel
            fuel--;
        }
    }
}

У наведеному прикладі, якщо в машині закінчилося пальне, виклик методу Car.drive нічого не зробить.

Інструкція if-then-else

Інструкція if-then-else дає альтернативний шлях виконання на випадок, коли умова в конструкції if набуває значення false. Цей альтернативний шлях виконання йде після конструкції if і визначається за допомогою конструкції else:

class Car {
    void drive() {
        if (fuel > 0) {
            fuel--;
        } else {
            stop();
        }
    }
}

У наведеному прикладі, якщо в машині закінчилося пальне, виклик методу Car.drive викличе інший метод, щоб зупинити машину.

Інструкція if-then-else також підтримує кілька умов за допомогою конструкції else if:

class Car {
    void drive() {
        if (fuel > 5) {
            fuel--;
        } else if (fuel > 0) {
            turnOnFuelLight();
            fuel--;
        } else {
            stop();
        }
    }
}

У наведеному прикладі, якщо пального залишилося 5 або менше, машина поїде, але при цьому увімкнеться індикатор пального. Коли пальне сягне 0, машина перестане рухатися.

Вказівки

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

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

  • Від 1 до 4: 100% успішних автомобілів.
  • Від 5 до 8: 90% успішних автомобілів.
  • 9: 80% успішних автомобілів.
  • 10: 77% успішних автомобілів.

Попереду два завдання.

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

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

CarsAssemble.productionRatePerHour(6)
// => 1193.4

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

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

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

CarsAssemble.workingItemsPerMinute(6)
// => 19

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

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

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

Зареєструйтеся на Exercism, щоб вивчати й опановувати Java, а також 26 концепцій158 вправ та справжнє наставництво від людей, і все це безкоштовно.