トラック
/
jq
jq
/
演習
/
組み立てライン
組み立てライン

組み立てライン

学習演習

はじめに

数値

マニュアルより

jqは、JSONと同じデータ型をサポートしています。数値、文字列、真偽値、配列、オブジェクト(JSONの言い方では、文字列のキーだけを持つハッシュのことです)、そして"null"です。

ここでは数値に注目しましょう。

数値と数値演算子

すべての数値は、整数であれそれ以外であれ、IEEE754倍精度浮動小数点数です。そのため、精度は53ビットに限られます。

数値には、おなじみの演算子を使えます。

  • 算術演算:+、-、*、/、%

  • 比較演算:==、!=、<、<=、>=、>

  • 標準の数学関数

    入力が1つの関数では、値をその関数にパイプで渡します。

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

    入力が2つの関数では、その関数は入力を無視し、値を仮引数として受け取ります(仮引数はセミコロンで区切るのでしたね)。

    $ 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)では、1時間に221台の車が生産されます。 生産台数は速度に比例して増えていきます。 つまり、速度を4に設定すると、1時間に4 * 221 = 884台の車が生産されるはずです。 ただし、速度が上がるほど欠陥のある車が生産される可能性が高くなり、そうした車は廃棄しなければなりません。 次の表は、速度が成功率にどのように影響するかを示しています。

  • 1から4:成功率100%。
  • 5から8:成功率90%。
  • 9:成功率80%。
  • 10:成功率77%。

取り組むタスクは2つです。

1. 1時間あたりの生産率を計算する

成功率を考慮して、組立ラインの1時間あたりの生産率を計算してください。

2. 1分あたりに生産される完成品の数を計算する

1分あたりに完成した、正常に動作する車が何台生産されるかを計算してください。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
jq Exercism

組み立てラインを始める準備はできましたか?

Exercismに登録すれば、12個のコンセプト75個の演習、そして本物の人間によるメンタリングとともに、jqを学んでマスターできます。すべて無料です。