學習軌道
/
jq
jq
/
練習
/
組裝線
組裝線

組裝線

學習練習

簡介

數字

摘自使用手冊

jq 支援和 JSON 相同的一組資料型態:數字、字串、布林值、陣列、物件(用 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,透過 12 個概念75 個練習 和真人引導來學習並精通 jq,全部免費。