Треки
/
Julia
Julia
/
Вправи
/
Складання автомобілів
Складання автомобілів

Складання автомобілів

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

Вступ

Оператори порівняння

Оператори порівняння в Julia схожі на оператори багатьох інших мов, хоча й мають додаткові можливості для любителів математики.

Для рівності є оператори == (дорівнює) та != або ≠ (не дорівнює).

txt = "abc"
txt == "abc"  # true
txt != "abc"  # false
txt ≠ "abc"  # false (synonym for !=)

Крім того, є різні оператори «більше» та «менше».

1 < 3  # true
3 > 3  # false
3 <= 3  # true
3 ≤ 3  # true (synonym for <=)
4 >= 3  # true
4 ≥ 3  # true (synonym for >=)

Як часто буває з Julia, відповідний редактор робить використання математичного символа простим. Наберімо \ne, \le або \ge, а потім TAB, щоб отримати ≠, ≤ або ≥.

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

Оператори порівняння можна обʼєднувати в ланцюжок, що дає змогу писати чіткий і стислий код:

n = 3
1 ≤ n ≤ 5  # true (n "between" two limits)

Попередній приклад рівнозначний 1 ≤ n && n ≤ 5.

Розгалуження з if

Це повна форма умовної конструкції if:

if conditional1
    statements...
elseif conditional2
    statements...
else
    statements...
end

Дужки () або фігурні дужки {} не потрібні, а відступи слугують «лише» для покращення читабельності (але читабельність дуже важлива!).

І elseif, і else необовʼязкові, і блоків elseif може бути кілька. Однак end обовʼязковий.

Можна вкладати умовні конструкції if одну в одну, хоча для кращої читабельності варто продумано використовувати дужки, відступи та коментарі.

Найкоротша форма умовної конструкції if має такий вигляд:

if n < 0
    n = 0
end

Нагадаємо: як умови можна використовувати лише вирази, що обчислюються до true або false. Julia свідомо уникає будь-якого поняття «правдивості», тому нульові значення, порожні рядки тексту (англ. string) і порожні масиви не рівнозначні false.

Тернарний оператор

Проста й поширена ситуація: вибрати одне з двох значень залежно від умови.

Julia, як і багато мов, має тернарний оператор, який робить це стислішим.

Синтаксис такий: conditional ? value_if_true : value_if_false.

Отже, попередній приклад можна переписати так:

n = n < 0 ? 0 : n

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

Вказівки

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

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

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

1. Обчисліть показник успішності

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

  • 0: показник успішності 0%.
  • від 1 до 4: показник успішності 100%.
  • від 5 до 8: показник успішності 90%.
  • 9: показник успішності 80%.
  • 10: показник успішності 77%.
julia> success_rate(10)
0.77

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

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

julia> production_rate_per_hour(6)
1193.4

Зверніть увагу, що функція повертає число з плаваючою комою.

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

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

julia> working_items_per_minute(6)
19

Зверніть увагу, що функція повертає ціле число: неповні вироби не враховуються.

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

Час розпочати Складання автомобілів?

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