内容正文:
2.2算法
的控制结构
1
目录
CONTENTS
1
顺序结构
2
分支结构
3
循环结构
2
观察左图所示的“高一新生报到流程”示意图,我们可以看出该图是由一定的结构组成的。
到所属班级的班主任处签到注册;
领取高一新生校园手册
已缴费
是住校生
到所属教室班级休息
到财务处缴费
凭缴费单到高一公寓领取生活用品,布置床铺
否
否
是
是
高一新生报到流程
无论内容怎么复杂,功能如何强大的算法也都是由基本的结构组合而成,这些基本的结构就被称为算法的控制结构。
01
PART ONE
顺序结构
4
小明近日长胖了不少,他想根据身高和体重的指数计算自己的BMI值,BMI=体重(kg)/身高2 ,如果要为小明设计算法,想一想,应该怎么设计呢?
01 顺序结构
5
顺序结构
按照顺序从上往下依次执行,每条语句必须而且只能执行一次。
01 顺序结构
开始
结束
输入身高、体重
计算BMI=体重/身高2
输出BMI
6
01 顺序结构
练一练
输入两个数a,b.
计算两个数的和S;(用流程图描述算法)
开始
输入a,b
s=a+b
输出S
结束
7
02
PART TWO
分支结构
8
小明输入身高体重后得到了自己的BMI值,他想改以下程序,根据BMI值判断胖瘦,若BMI>24,则显示“胖”,否则显示“瘦”。
02 分支结构
开始
结束
输入身高、体重
计算BMI=体重/身高2
输出“你有点胖了哟”
BMI>24
输出“你一点也不胖”
Y
N
9
分支结构
又称选择结构。执行过程根据条件判断选择不同分支执行:条件为真时执行处理步骤S1,否则执行处理步骤Step2。选择模式对条件是否成立只判断1次。
02 分支结构
10
03
PART TWO
循环结构
11
小明判断了自己的BMI值后,他的朋友们也想判断,但是他发现这个程序每次只能判断一个人的,每次要重新启动程序后,才能判断下一个人,他想改一下程序,让这个程序每次运行最多能判断100个人。程序可以怎么改呢?
03 循环结构
12
03 循环结构
开始
结束
输入身高、体重
计算BMI=体重/身高2
输出“你有点胖了哟”
BMI>24
输出“你一点也不胖”
Y
N
N
n=1
Y
n=n+1
n<=100
初始化次数n为1
循环次数最多100次
每执行一次,循环次数+1
13
03 循环结构
循环结构
循环结构是一种重复某一部分操作的结构。即在条件控制下,某些操作步骤需要重复执行(循环),在不满足重复处理条件时,循环结束。
14
03 循环结构
问题: 设计一算法,求和:1+2+3+…+100
算法:
第一步:从1开始将自然数1、2、 3、…、100逐个相加,和用变量S表示;
第二步:输出累加结果。
思考:1、上边的式子有怎样的规律呢?
2、怎么用流程图表示呢?
i = i + 1
S=S + i
S=S + i
S=0
第一次循环:S=0+ 1 → S=S+ 1
第二次循环:S=0+1 + 2 → S=S+ 2
第三次循环:S=0+1 + 2 +3 → S=S+ 2
…
第一百次循环:S=0+1 + 2 +3+…99+100 → S= S + 100
15
03 循环结构
开始
i=1
s=0
i=i+1
s=s+i
i<=100
输出s
结束
否
是
问题: 设计一算法,求和:1+2+3+…+100
拓展
程序设计中的“累加器”
“累加器”指的是算法执行过程中对同类事物或数据进行统计计算的实现技术。上述算法中的“s=s+i”就起到了累加的作用。
16
03 循环结构
开始
i=0或i=2
s=0
i=i+2
s=s+i
i<=100
输出s
结束
否
是
问题: 设计一算法,求1-100所有偶数的和
17
三种基本结构流程图
条件?
A
B
否
是
3.循环结构
2.分支结构
1.顺序结构
18
练一练
1.“若是本店会员,所有商品打85折,否则无折扣”,用算法描述这一问题,合适的算法结构是( )
A.选择结构 B.循环结构
C.顺序结构 D.树形结构
A
19
练一练
2.某算法的部分流程图如下图所示。执行这部分流程后,“x←x-2”被执行的次数为( )
A.0 B.1
C.2 D.3
C
【解析】执行两次后,x值为-1,循环结束。
20
练一练
任意输入三个数,输出其中最小数(用流程图描述算法)。 课本58页 第1题
自然语言描述:
1.输入3个数a,b,c;
2.比较a和b;
3.若a>b,则执行第4步,否则转向第5步
4.若b>c,则输出c;否则输出b。
5.若a>c,则输出c;否则输出a。
21
练一练
任意输入三个数,输出其中最小数(用流程图描述算法)。 课本58页 第1