Треки
/
jq
jq
/
Вправи
/
Конвеєр
Конвеєр

Конвеєр

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

Вступ

Числа

З керівництва

jq підтримує той самий набір типів даних, що й JSON: числа, рядки тексту (англ. string), булеві значення (англ. Boolean), масиви, обʼєкти (які в термінах JSON є хешами лише з рядковими ключами) та "null".

Зосередьмося на числах.

Числа та числові оператори

Усі числа, цілі чи ні, належать до чисел з плаваючою комою подвійної точності IEEE754. Це обмежує точність до 53 бітів.

З числами можна використовувати звичайні оператори:

  • арифметичні: +, -, *, /, %

  • порівняння: ==, !=, <, <=, >=, >

  • стандартні математичні функції

    Для функцій з одним вхідним значенням передайте значення у функцію через конвеєр

    $ jq -n '(1 | atan) * 4'
    3.141592653589793
    

    Для функцій із двома вхідними значеннями вхід ігнорується, а самі значення передаються як параметри (нагадаємо, параметри розділяються крапками з комою)

    $ jq -n 'pow(2; 10)'
    1024
    

    Розділювач аргументів функції - крапка з комою, а не кома.

Інші вирази jq

Щоб розвʼязати цю вправу, потрібно знати про умовні вирази.

Умовні вирази

jq використовує вираз if-then-else для умовних виразів. Як вираз, його розміщують у конвеєрі.

Синтаксис такий: if CONDITION then TRUE_EXPR else FALSE_EXPR end.

Гілка else необовʼязкова.

42 | if . < 33 then "small" else "larger" end
# => "larger"

Для додаткових умов використовують elif

42 | if . < 33 then "small"
     elif . < 67 then "medium"
     else "large"
     end
# => "medium"

Вказівки

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

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

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

Перед нами два завдання.

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

Обчисліть обсяг виробництва складальної лінії за годину з урахуванням частки успішних автомобілів.

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

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

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

Час розпочати Конвеєр?

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