مسیرها
/
jq
jq
/
تمرین‌ها
/
خط مونتاژ
خط مونتاژ

خط مونتاژ

تمرین یادگیری

مقدمه

عدد

از این راهنما

jq از همان مجموعه انواع داده‌ای پشتیبانی می‌کند که JSON دارد: عدد، رشته، «منطقی»، آرایه، شیء (که در زبان JSON، هش‌هایی با کلیدهای تنها رشته‌ای هستند)، و «null».

بیایید روی عددها تمرکز کنیم.

عدد و عملگرهای عددی

همه‌ی عددها، چه عددهای صحیح و چه غیر آن، اعداد ممیز شناور با دقت دوگانه‌ی IEEE754 هستند. این موضوع دقت ما را به ۵۳ بیت محدود می‌کند.

عملگرهای معمول را می‌توانید با عددها به کار ببرید:

  • محاسبات: +، -، *، /، %

  • مقایسه: ==، !=، <، <=، >=، >

  • توابع ریاضی استاندارد

    برای توابع تک‌ورودی، مقدار را با pipe به تابع بدهید

    $ 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: نرخ موفقیت ۱۰۰٪.
  • 5 تا 8: نرخ موفقیت ۹۰٪.
  • 9: نرخ موفقیت ۸۰٪.
  • 10: نرخ موفقیت ۷۷٪.

شما دو وظیفه دارید.

1. محاسبه‌ی نرخ تولید در ساعت

نرخ تولید در ساعت خط مونتاژ را با در نظر گرفتن نرخ موفقیت آن محاسبه کنید.

2. محاسبه‌ی تعداد خودروهای سالمی که در دقیقه تولید می‌شوند

محاسبه کنید در هر دقیقه چند خودروی کامل و سالم تولید می‌شود.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
jq Exercism

آماده‌اید خط مونتاژ را شروع کنید؟

در Exercism ثبت‌نام کنید تا jq را همراه با 12 مفهوم75 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.