學習軌道
/
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 刻意避開任何「真值性」的概念,所以零值、空字串和空陣列都_不_等同於false。

三元運算子

一種簡單又常見的情況,是根據條件從兩個值中挑選一個。

Julia 和許多語言一樣有三元運算子,可以讓寫法更精簡。

語法是conditional ? value_if_true : value_if_false。

所以前面的例子可以改寫成:

n = n < 0 ? 0 : n

編譯器並不要求加上括號,但括號可以提升可讀性。

說明

在這個練習中,你將撰寫程式碼來分析汽車工廠組裝線的生產情形。 組裝線的速度範圍可以從 0(關閉)到 10(最高)。

在最低速度(1)時,每小時可以生產 221 輛車。 產量會隨速度呈線性成長。 因此當速度設為 4 時,每小時應該生產 4 * 221 = 884 輛車。 不過,速度越快,生產出瑕疵車的可能性也越高,這些瑕疵車之後必須被丟棄。

你有三個任務。 每個需要實作的函式都接受一個整數參數,也就是組裝線的速度。

1. 計算成功率

實作 success_rate() 方法,計算在指定速度下,產品能夠正確無誤地製造出來的機率。 下表說明速度如何影響成功率:

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

2. 計算每小時產量

實作 production_rate_per_hour() 方法,計算組裝線每小時的產量,並將成功率納入考量。

julia> production_rate_per_hour(6)
1193.4

請注意,回傳的值是浮點數。

3. 計算每分鐘生產的可用產品數量

實作 working_items_per_minute() 方法,計算每分鐘能生產多少輛可用的車:

julia> working_items_per_minute(6)
19

請注意,回傳的值是整數:未完成的產品不會計入。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Julia Exercism

準備好開始 汽車組裝 了嗎?

註冊 Exercism,透過 35 個概念128 個練習 和真人引導來學習並精通 Julia,全部免費。