トラック
/
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は「truthiness」のような考え方を意図的に避けているので、ゼロの値、空の文字列、空の配列はfalseと_同じではありません_。

三項演算子

よくある単純な場面として、条件に応じて2つの値のどちらかを選びたいことがあります。

Juliaには、多くの言語と同じく、これをより簡潔に書くための三項演算子があります。

構文はconditional ? value_if_true : value_if_falseです。

つまり、先ほどの例は次のように書き換えられます。

n = n < 0 ? 0 : n

コンパイラーが括弧を必要とするわけではありませんが、あると読みやすくなることもあります。

説明

この演習では、自動車工場の組み立てラインの生産を分析するコードを書きます。 組み立てラインの速度は、0(停止)から10(最大)まで設定できます。

最も低い速度(1)では、1時間あたり221台の車が生産されます。 生産量は速度に比例して増加します。 ですから、速度を4に設定すると、1時間あたり4 * 221 = 884台の車を生産することになります。 ただし、速度が上がるほど不良品が作られる可能性が高くなり、そうした車は廃棄しなければなりません。

取り組むタスクは3つあります。 必要な各関数は、整数の入力を1つ受け取ります。その入力は組み立てラインの速度です。

1. 成功率を計算する

与えられた速度に対して、製品がエラーなく作られる確率を計算するsuccess_rate()メソッドを実装しましょう。 次の表は、速度が成功率にどう影響するかを示しています。

  • 0: 成功率0%。
  • 1から4まで: 成功率100%。
  • 5から8まで: 成功率90%。
  • 9: 成功率80%。
  • 10: 成功率77%。
julia> success_rate(10)
0.77

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

成功率を考慮に入れて、組み立てラインの1時間あたりの生産量を計算するproduction_rate_per_hour()メソッドを実装しましょう。

julia> production_rate_per_hour(6)
1193.4

戻り値は浮動小数点数であることに注意してください。

3. 1分あたりに生産される正常な車の数を計算する

1分あたりに何台の正常な車が生産されるかを計算するworking_items_per_minute()メソッドを実装しましょう。

julia> working_items_per_minute(6)
19

戻り値は整数であることに注意してください。未完成の車は含まれません。

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

車の組み立てを始める準備はできましたか?

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