轨道
/
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,全部免费。