师:同学们,今天我们一起来学习高一信息技术第二单元 2.2 做出判断的分支第二课时。本节课我们将学习分支结构、if 分支语句以及关系表达式。上节课我们编程计算适宜运动心率,大家知道,计算适宜运动心率不仅与年龄和安静心率有关,还和性别有一定关系。今天我们继续编程,实现根据性别计算适宜运动心率。
已知适宜运动心率的公式为(220 - 年龄 - 安静心率)× 60% 至 80% + 安静心率,这适用于计算男性适宜运动心率。而女性适宜运动心率的计算,要把公式中的 220 改为 210。我们发现公式中的 220 或 210 会因性别不同而改变,可以用变量 n 来表示,然后根据性别确定 n 的取值。如果性别是男,n 取 220;如果性别是女,n 取 210。
我们要解决的问题有:一、输入年龄、安静心率、性别;二、根据性别确定公式中 n 的取值,计算适宜运动心率低值和高值;三、输出计算结果,即适宜运动心率范围。对比上节课的活动,新问题是输入性别后,根据性别确定 n 的取值,这一判断功能可采用分支结构实现。
分支结构是一种根据给定条件进行判断的结构,常见的有单分支结构和双分支结构。单分支结构流程图,先有一个判断框,如果判断条件成立,就执行下面的语句或语句组,然后继续向下执行;如果判断条件不成立,就不执行语句或语句组,直接向下执行。
双分支结构,先对条件进行判断,如果条件成立,就执行语句或语句组 a;否则执行语句或语句组 b。要根据性别确定 n 用 220 还是 210 计算,可以使用双分支结构实现。
算法设计如下:第一步,输入年龄 age;第二步,输入安静心率 hrrest;第三步,输入性别 gender;第四步,判断 Gender 的值,如果是字符串“male”,n 取 220,否则 n 取 210;第五步,计算适宜运动心率低值;第六步,计算适宜运动心率高值;最后输出适宜运动心率范围。
如何把流程图转化为程序代码呢?对比上节课活动的程序,除了用变量 n 替换原来计算公式中的 220,还添加了一个输入语句,输入“male”或“female”,并赋值给性别变量 gender。那流程图中的双分支结构如何用代码实现呢?
双分支语句基本格式:if 条件 : 换行缩进语句或语句组 a,然后顶格 else : 换行缩进语句或语句组 b。这里的缩进可以是 4 个空格或者一个 tab 格。对照双分支结构流程图理解,如果条件成立,就执行语句或语句组 a;否则执行语句或语句组 b。这是利用双分支语句给 n 赋值,if gender == “male”,就把 220 赋值给 n,else : 就把 210 赋值给 n。这里的条件语句 gender == “male”,我们称之为关系表达式。
关系表达式是用关系运算符连接起来的式子,注意这里的等于号是双写,数学的等号作用是比较等于号两边是否相等,要与赋值语句中的赋值号区分开。常用的关系运算符还有大于、大于等于、小于、小于等于、不等于。当关系表达式成立时,例如输入的性别是“male”,那么“male” == “male”就成立,这时关系表达式的值为真,否则值为假。下面我们运行几个关系表达式。
关系运算又称比较运算,用于对两个类型相同的表达式的值进行比较。先看数值比较,按大小比较,9 >= 7.9 条件成立,值为真;23 == 24 条件不成立,值为假;4 != 0 条件成立,bool 返回值为真;9 的二次幂小于等于 9 + 2,在关系表达式中,算数运算优先于关系运算,所以先计算 9 的二次幂等于 81,9 + 2 = 11,再进行关系运算,81 小于等于 11,条件不成立,返回值为假。字符串同样可进行比较,字符串比较是逐个字符进行比较,字符串“abc” < “abd”条件成立,返回值为真;小写字串“abc” == 大写字串“ABC”条件不成立,返回值为假。因此关系表达式的值只有真或假。
