内容正文:
2.2 算法的控制结构
目录-CONTENTS
一、顺序结构
Sequential Structure
三、循环结构
Loop Structure
二、分支结构
Selection Structure
新课导入
玩过积木的同学都知道,即使是很复杂的积木作品,都是由最基本的积木块(不妨称为基本结构)通过各种组合构成的。
3
新课导入
到所属班级的班主任处签到注册领取高一新生校园手册
是否缴费?
到财务处缴费
是否住校生?
到所属班级的教室休息
凭缴费单到高一公寓领取生活用品,布置床铺
类似地,观察左边的“高一新生报到流程”示意图,我们可以看出该图也是由一定的组合构成的。
无论内容怎样复杂、功能如何强大的算法,也都由基本的结构组合而成,这些基本的结构称为算法的控制结构。
算法的控制结构有三种,即顺序结构、分支结构和循环结构。
4
2.2.1 顺序结构
在健康意识日益提升的当下,现代人正以更系统、多维的方式关注自身健康状态。除了传统的体重管理,人们开始运用科学指标构建健康评估体系,例如BMI(身体质量指数)、日均睡眠时长、体脂率等等。
小悦是一名高一学生,开学后长胖了不少,她想通过腰围和身高快速估算体脂率【体脂率(%)= (腰围cm ÷ 身高cm) × 100 - 15】,如果要为小悦设计算法,应该怎么设计呢?
2.2.1 顺序结构
体脂率标准对照表
这种从单一数据到全景画像的转变,不仅反映了公众对健康管理的精细化追求,更彰显了科技赋能下个人健康主权的觉醒——每个人都在成为自己健康的第一责任人,用数据与知识编织起一张主动防御的健康之网。
2.2.1 顺序结构
开始
计算体脂率(%)= (腰围cm ÷ 身高cm) × 100 - 15
结束
输入腰围、身高
输出体脂率
观察左图,思考这个算法属于什么控制结构?总结出这个控制结构的特点。
顺序结构
1
按照先后顺序依次执行
2
每个步骤只执行一次
2.2.1 顺序结构
图例
特点
顺序结构指的是算法中各个步骤按照先后顺序依次执行的结构。
顺序结构的算法执行时,必定具有下列特点:
①每个步骤按照算法中出现的顺序依次执行。
②每个步骤一定会被执行一次,而且只执行一次。
顺序结构算法的一般结构
概念
第一个操作
第二个操作
第三个操作
2.2.1 顺序结构
顺序结构
知识小练
输入两个数a和b,计算这两个数的乘积c(用流程图描述算法)
开始
输入a,b
c = a*b
输出c
结束
第一个操作
第二个操作
第三个操作
2.2.2 分支结构
2.2.2 分支结构
小悦输入腰围和身高后得知了自己的体脂率,现在她想更改算法,根据体脂率判断个人胖瘦。
根据小悦的情况,我们可知若体脂率大于34%,则输出“肥胖”,否则输出“苗条”,想一想应该怎么设计算法呢?
2.2.2 分支结构
开始
结束
输入腰围、身高
计算体脂率
输出“肥胖”
大于34%?
输出“苗条”
是
否
观察左图,思考分支结构体现在哪里?总结出分支结构的特点。
1
首先进行条件判断
2
其中一个分支被执行
分支结构
2.2.2 分支结构
图例
特点
先进行条件判断,再根据判断结果分别执行不同处理的控制结构。
分支结构在执行时具有下列特点:
①先进行条件判断,根据条件满足与否来决定执行哪个分支;
②在一个分支结构中,必定有一个分支被执行,其他的分支则被忽略。
分支结构算法的一般结构
概念
分支1
条件满足?
分支2
是
否
2.2.2 分支结构
案例分析:一个一元二次方程是否存在实数根,需要根据条件“b2-4ac≥0”是否成立来判断。如果条件成立就输出“有实数根”,否则就输出“无实数根”。如何用包含分支结构的算法流程图表示呢?
用流程图描述分支结构的算法时,流程线会从条件判断框(菱形)上面的角进入,在进行条件判断后,从条件判断框的左、右或者下面的角走向各个分支。
2.2.2 分支结构
在解决问题的一个完整算法中,有时需要几种控制结构的协同才能完整地表示解决问题的全部过程。
细化
如果对判断方程是否有实数根不做细化,那么整个算法是顺序结构,即先执行第一步“输入方程系数a,b,c的值”,然后再按照顺序执行第二步“根据系数判断方程是否有实数根并赋值给变量f ”。如果将算法进一步细化,那么原来第二步处理就需要用分支结构来实现。
2.2.2 分支结构
课堂探讨
请同学们在小组内讨论,说一说分支结构的应用场景有哪些?
1
成绩评级:根据分数判断等级(如≥90为A,80-89为B等)
3
交通信号灯:根据时间或传感器数据切换红、黄、绿灯。
2
用户权限验证:检查用户输入的密码是否正确,决定是否允许登录。
2.2.3 循环结构
2.2.3 循环结构
小悦判断出了自己属于“苗条”,她也想判断身边亲朋好友的肥瘦情况,但是她发现分支结构算法程序一次只能判断一个人的,因此她想修改算法,让这个程序每次运行最多能判断100个人,想一想应该如何修改算法呢?
循环结构
1
在循环条件控制下
2
重复执行某些操作步骤(循环体)
循环条件满足?
循环体
是
否
2.2.3 循环结构
开始
结束
输入腰围、体重
计算体脂率
输出“肥胖”
大于34%?
输出“苗条”
Y
N
N
n=1
Y
n=n+1
n<=100
初始化次数n为1
循环次数最多100次
循环条件满足?
循环体
是
否
循环结构算法流程图
1
2
3
定义:
在条件的控制下,某些操作步骤需要重复执行的控制结构就是循环结构。
组成:
初始化部分:初始化操作,例如设置循环变量的初始值。
循环条件:这是一个布尔表达式,用于判断是否继续执行循环。
循环体:这是在循环中重复执行的代码块。
2.2.3 循环结构
重复执行:循环控制结构的主要特点是能够重复执行。
条件控制:循环的执行是由特定的条件控制的。这个条件可以是一个表达式,当条件为真时,循环继续执行;当条件为假时,循环终止。
特点:
注意事项
所示的算法在执行时,如果循环条件始终满足,那么循环体永远会被执行,此时算法陷入“死循环”,也就违背了算法的有穷性特征。因此,算法在设计时应避免此类情形的发生。
循环条件满足?
循环体
是
否
循环结构算法流程图
2.2.3 循环结构
2.2.3 循环结构
分支结构
循环结构
分支结构
循环结构
判断:下列流程图属于分支结构还是循环结构?
1、分支结构:条件是否成立只判断1次
2、循环结构:条件是否成立可判断多次,形成了一个闭环
判断依据:
“累加器”指的是算法执行过程中对同类事物或数据进行统计计算的实现技术。下述算法中的“result→result+a”就起到了累加的作用。
拓展链接——程序设计中的“累加器”
2.2.3 循环结构
一百以内累加
2.2.3 循环结构
知识小练
设计一算法,求和:1+2+3+…+100,先分析再用流程图表示出来。
分析:
开始:程序启动。
初始化:设置sum=0,i=1。
循环条件判断:检查i是否小于等于100。如果是,进入循环体;否则跳转到结束。
循环体:将i加到sum,然后i自增1。
返回条件判断:回到步骤③。
结束:输出sum的值,程序结束
开始
i=1
s=0
i=i+1
s=s+i
i<=100
输出s
结束
否
是
知识小结
先进行条件判断,再根据判断结果分别执行不同处理的控制结构。
在条件的控制下,某些操作步骤需要重复执行的控制结构就是循环结构。
知识小结
条件?
分支1
分支2
否
是
条件?
循环体
是
否
02、分支结构
03、循环结构
指的是算法中各个步骤按照先后顺序依次执行的结构。
第一个操作
第二个操作
第三个操作
01、顺序结构
巩固提高
1、以下代码执行后,变量 result 的值是多少?该代码体现了哪种控制结构?( )
巩固提高
A. 11,顺序结构
B. 8,顺序结构
C. 11,分支结构
D. 8,循环结构
A
2、某学校图书馆规定:
如果学生借阅的是小说类书籍,则允许借阅 2 本;
如果是科普类书籍,则允许借阅 1 本;
其他类型的书籍不可借阅。
根据这一规则,以下哪项描述是正确的?( )
巩固提高
A. 借阅“科幻小说”时,因包含“小说”字样,可借 2 本
B. 借阅“历史科普”时,因包含“科普”字样,可借 1 本
C. 借阅“漫画”时,因不属于小说或科普类,不可借阅
D. 无论借阅什么书,都只能借 1 本
C
3、小美在玩一个数字拼图游戏,规则如下:
从数字 1 开始,每次增加 2(即1, 3, 5, 7...)
当数字 超过15 时,游戏立即结束
记录游戏结束前最后一次报出的数字
请问小美最后一次报出的数字是多少?游戏共进行了多少次循环?( )
巩固提高
A. 最后一次数字是15,共8次循环
B. 最后一次数字是13,共7次循环
C. 最后一次数字是17,共9次循环
D. 最后一次数字是11,共6次循环
B
谢谢!
$