第4节 算法表示与算法控制结构
知识点
目标
考试要求
算法及算法的表示
①算法的概念
②算法的常用表示方法
③顺序、选择、循环三种控制
b
必考+加试
1.算法是解决问题的方法与步骤,具有有穷性、0个或多个输入、一个或多个输出的特性。
2.描述算法的方式有自然语言、流程图、计算机语言等等。
3.算法的三种基本控制结构是顺序结构、分支结构(选择结构)和循环结构。
4.用流程图表示算法,形象直观,框图主要包含输入输出框、判断框和处理框等。
一、三种常见描述算法的方法
1.用自然语言描述算法的特点是通俗易懂,但容易造成理解歧义,描述算法太长,不够精练。当算法中存在循环或分支较多时,不易清晰表示出来。
2.用流程图描述的算法形象、直观,更容易理解,程序框图的学习十分有利于提高学生的逻辑思维能力。
3.可以用程序设计语言(如VB、C、JAVA等)来实现算法。
【例1】 某算法描述如下:
①将0赋值给变量Num,将10赋值给变量Max,将9赋值给变量i
②若i除以3余2、除以5余3、除以7余2,则将变量Num的值增加1并输出i
③变量i的值增加1,若变量Num小于变量Max,则转②
④结束
对于上述算法,下列说法错误的是( )
A.该算法是用自然语言来描述的
B.该算法符合有穷性的特征
C.该算法最后输出10个数值
D.该算法转换成流程图只需用到一个选择框
解析 本题考核的知识点是算法的表示方法和算法思想。该算法是用自然语言来描述的,从③语句来看,是一个循环结构,循环变量是Num,他的初值是0,条件是小于10,每次递增1,那么Num取值范围是0~9,从②语句来看,把符合三个条件的i输出,同时变量Num增加1,可见输出10个数据。这是一个循环结构包含选择结构,因此有两个判断框,基本算法思想是枚举算法。
答案 D
[方法总结] 理解算法常用三种表示方法及算法的基本结构是解这类题目关键。
【变式训练】 统计投硬币1000次出现正面这一概率实验的算法步骤如下:
①将i,k分别赋初值0;
②用随机函数产生一个数来模拟硬币的正反面,若随机数在[0,0.5)之间,k的值加1;
③i的值加1,若i<1000,则转②;
④输出结果k/1000,结束。
对于上述算法,下列说法错误的是( )
A.变量k代表正面次数
B.该算法的循环结构内部包含了选择结构
C.该算法主要体现了枚举思想
D.该算法没有输入,因此不符合算法的基本特征
解析 本题考核的知识点是算法的表示方法和算法思想。题目中描述随机数在[0,0.5)之间,k的值加1,输出结果k/1000,因此k表示正面的次数。从语句③来看,是一个循环结构,从语句②来看,是一个选择结构,在1000次模拟正反面实验中统计正面出现次数,体现了枚举思想。算法可以没有输入,但必须有输出。
答案 D
二、用流程图来表示算法
1.流程图包含图框和流程线。图框表示各种类型的操作,在框内写出各个步骤,然后用带箭头的线把它们连接起来,以表示执行的先后顺序。
2.在判断框中,有一个入口,根据条件是否成立,选择两个出口中一个方向运行,因此流程图中难点是判断框中流程走向。程序运行过程中的变量取值决定了循环次数,特别要注意循环条件中变量的临界值,通常用表格来表示程序在运行过程中的值。
3.流程图的常用框图和功能
符号名称
图形
功能
开始/结束框
表示算法的开始与结束
输入/输出框
表示算法的输入/输出操作
处理框
表示算法的各种处理操作
判断框
表示算法的条件判断操作
流程线
表示算法的执行方向
4.用流程图表示算法的三种基本结构
(1)顺序结构就是按指令的先后顺序依次执行。
(2)分支(选择)结构就是根据条件成立情况,选择某一条分支中的指令执行。
(3)循环结构也称重复结构,就是首先判断条件是否成立,如果不成立则直接执行循环体外的第一条指令,如果条件成立则执行循环体内的指令,然后再次判断条件是否成立,如果条件成立再次执行循环体内的指令,直至条件不成立跳出循环体为止。
三种基本结构流程示意图如图所示。
【例2】 下列所示流程图片断,属于循环结构的是( )
解析 条件是选择结构和循环结构的核心,他们的区别在于:分支结构中,当条件成立或不成立时,选择其中一个分支执行;循环结构中,当条件成立时,重复执行该指令,直到条件不成立,执行循环体外指令,退出循环。从流程图来看两种结构的区别,判断框的两个出口中,其中一个出口的流程线指向了该判断框的入口,构成一个环,即为循环结构。选项A、D中,均执行其中一条分支,属于分支结构。选项C判断框一个出口流向入口。
答案 C
【变式训练】 如图所示流程图片断,它的控制结构属于( )
A.循环结构 B.树型结构
C.分支结构 D.顺序结构
解析 判断框出口的流程线没有指向入口,当条件成立或不成立时,选择一条分支进行。
答案 C
【例3】 某算法要求如下:输入两个数a、b的值,交换两个数的值,并输出。用流程图表示该算法如下图所示,请将框图中的内容补充完整。
流程图中应填入的内容是①________②________③________。
解析 交换两个数的值在VB程序设计中会经常运用到,可以理解为交换两杯液体的方法和步骤。先把一杯液体a倒入一只空的杯子t,再把另一杯液体b倒入原体存放液体a的杯子,再把杯子t中液体倒入原来存放液体b的杯子,完成交换液体的过程。
答案 ①a←b ②b←t ③输出a、b
[方法总结] 算法是解决问题的方法与步骤,在解题过程中,需要理解一个算法有哪些步骤,因此通过流程图能很好地帮助学生理解算法,即使一个复杂的算法,也可以把其中一部分合并为一个模块,放在处理框中,成为算法的子过程。
【变式训练】 某算法要求如下:输入3个数a、b、c的值,找出这3个数中的最大值Max,并输出。用流程图表示该算法如下图所示,请将框图中的内容补充完整。
流程图中应填入的内容是①________、②________、③________。
解析 找最值是经常要碰到的算法,其基本步骤是把第1个数赋值给最大值Max,再用Max与剩下的数依次比较,把较大数并存放在Max中。
答案 ①Max和b ②Max和c ③Max
【例4】 某算法的流程图如图所示,输入x、y的值分别为31、1,执行这部分流程,下列分析正确的有( )
A.步骤x≥y?被执行5次
B.步骤x←x2被执行6次
C.循环结束后,变量x的值为1?
D.循环结束后,变量n的值为15
解析 本题考核的知识点是用流程图表示算法的理解。流程图中最主要的部分是循环结构,而循环的条件又是解题的关键。这类题目往往用表格的形式来表示各个变量的值,表格的第1行第1列写出循环条件,按变量出现先后的顺序依次排从第2列开始在表格中列出。第2行写出各个变量的初始值,有利于条件的判断。从第3行开始,先判断条件是True或False,如果为True,再把变量的值写在表格中。
x≥y?
x
y
n
循环次数
初始值
31
1
0
初始值
True
15
1
3
1
True
7
1
6
2
True
3
1
9
3
True
1
1
12
4
True
0
1
15
5
False
从表中可以看出,第2行是初值,从第3行开始,先判断条件是否成立,若成立,在第一列中写入True,当x=1时,最后一次进入循环。可以得到以下信息:1.从n←n+3很容易看出循环的次数;2.从x≥y?来看循环条件判断情况,6次;3.退出循环时,变量x、n的值分别为0、15。
答案 D
[方法总结] 在表格中列出各个变量和条件的值,把握条件的界限是解这类题目的关键。注意变量在程序中出现的顺序,该顺序可能会影响到其他变量的值。
【变式训练】 某算法的流程图如图所示,执行这部分流程,下列分析正确的有( )
a<=7?
a
b
循环次数
初始值
2
1
初始值
True
A.步骤a<=7?被执行了3次
B.循环体被执行了3次
C.循环结束后,变量a的值为7
D.循环结束后,变量b的值为11
解析 本题考核的知识点是用流程图表示算法的理解。
a<=7?
a
b
循环次数
初始值
2
1
初始值
True
3
4
1
True
7
11
2
True
18
29
3
False
进入循环前,先判断循环的条件是否成立,若成立,写上True,再写入其他变量的值。从表格的数据来看,退出 循环后,变量a、b的值分别为18和29,循环了3次,条件判断了4次。
答案 B
1.某算法要求如下:输入圆的半径r,计算并输出圆的面积s。用流程图表示该算法如下图所示,请将框图中的内容补充完整。
流程图中应填入的内容是①________、②________。
答案 ①s←3.14*r*r ②输出s
2.某算法要求如下:输入一个三位正整数x,输出他的逆序数,例如,输入246,输出是642。用流程图表示该算法如下图所示,请将框图中的内容补充完整。
流程图中应填入的内容是①________、②________。
答案 ①b←x的十位数 ②x←c*100+b*10+a
3.下图所示是判断一个三位数x是不是水仙数的部分流程图,则图中虚线部分的内容是( )
A. B.
C. C.
答案 B
4.某算法要求如下:输入用户名u和密码p,如用户名不是“admin”,则输出“用户名错误”,若用户名正确,密码不是“a123”,则输出“密码错误”,全都正确,输出“欢迎登录!”。该算法的部分流程图如下图所示,请将框图中的内容补充完整。
流程图中应填入的内容是①________、②________、③________。
答案 ①u<>”admin”? ②p=”a123”?
5.某算法如下图所示,对于该算法理解正确的有( )
A.该算法中包含循环结构
B.描述该算法的思想是解析算法
C.无论输入何值,y输出的值均为26.5
D.算法中不能连续出现两个判断框
解析 本题考核的知识点是用流程图表示算法的理解和算法的基本思想。循环结构的特点是有一个入口,两个出口,且其中一个出口指向入口。从图示来看,两个判断框均没有来自出口的流程指向,故为选择结构,他是一个多分支选择结构。输入的电量,根据他的范围来计算输出的金额,因此基本算法属于解析算法。根据输入的值,可能有3种输出答案。选择结构和循环结构均用到判断框,因此,循环结构中包含选择结构或者双重循环时,就需要用到两个判断框。
答案 B
6.某算法的部分流程图如图所示,执行这部分流程后,变量s值为( )
i<5?
t
s
i
循环次数
初始值
1
0
1
初始值
True
A.24 B.33 C.120 D.153
解析 本题考核的知识点是用流程图表示算法的理解。
i<5?
t
s
i
循环次数
初始值
1
0
1
初始值
True
1
1
2
1
True
2
3
3
2
True
6
9
4
3
True
24
33
5
4
False
答案 B
7.某算法的部分流程图如图所示,执行这部分流程后,变量s值为( )
x>0?
初始值
True
A.2 B.3 C.5 D.9
解析 本题考核的知识点是用流程图表示算法的理解。
x>0?
s
t
x
初始值
0
0
101
True
1
1
10
True
1
2
1
True
5
3
0
False
答案 C
8.某算法的部分流程图如图所示,执行这部分流程,下列说法正确的是( )
x>y?
循环次数
初始值
初始值
True
A.步骤“x>y?”共被执行了3次
B.步骤“x=x-2?”共被执行了4次
C.输出的x,y值分别为6,5
D.输出的x,y值分别为4,6
解析 本题考核的知识点是用流程图表示算法的理解。
x>y?
x
y
循环次数
初始值
10
3
初始值
True
8
4
1
True
6
5
2
True
4
6
3
False
答案 D
9.计算某球队平均年龄的部分算法流程图如图所示,其中:c用来记录已输入球员的人数,sum用来计算有效数据之和,d用来存储从键盘输入的球员年龄值,输入0时表示输入结束。
则下列对于该流程图说法正确的是( )
A.①可能的内容是sum←sum+1
B.该算法主要的结构是选择结构
C.“输入球员年龄至变量d”也是循环体的一部分
D.①和②中的内容交换位置,会影响算法的输出结果
解析 本题考核的知识点是用流程图表示算法的理解。sum用来计算有效数据之和,因此是累加sum=sum+d,另外一条语句是球员人数c=c+1。这两条语句互不影响,交换位置不会影响结果。该算法的主要结构是反复输入球员的年龄,因此是循环结构,因此输入年龄也是多次,在循环体内部,属于循环体。
答案 C
10.某算法的部分流程图如图所示,则程序运行后,变量i值分别为( )
c<=10?
a
b
c
i
初始值
True
A.4 B.5 C.6 D.7
解析 本题考核的知识点是用流程图表示算法的理解。第一次进入循环时,i的值为3。
c<=10?
a
b
c
i
初始值
1
2
3
3
True
2
3
5
4
True
3
5
8
5
True
5
8
13
6
False
答案 C
11.某算法的部分流程图如题图所示。
执行这部分流程后,n的值为( )
A.4 B.5 C.7 D.8
解析
条件j≤148?
i
n
j
初始值
1
0
0
True
2
1
1
True
3
2
2
True
4
3
5
True
5
4
26
False
676
答案 A
1.某算法要求如下:儿童餐每份10元、标准餐每份15元、商务餐每份25元,分别输入这三种套餐的份数x、y、z,计算所需金额M,并输出金额M。用流程图表示该算法如下图所示,请将框图中的内容补充完整。
流程图中应填入的内容是①____________、②____________。
答案 ①M=10*x+15*y+25*z ②输出M或Print M
2.某算法要求如下:输出一数x,判断他是负数还是非负数,并输出结果。用流程图表示该算法如下图所示,请将框图中的内容补充完整。
流程图中应填入的内容是①____________、②____________。
答案 ①x<0 ②输出“非负数”
3.某旅游景点规定,身高在1.2米以下的儿童免票,身高在1.2米~1.5米的儿童购买半价票,身高超过1.5米的购全价票。下图所示算法用于根据身高判断购票情况:
用于输出“购全价票”的图框编号是( )
A.① B.② C.③ D.④
解析 本题考核的知识点是用流程图表示算法的理解。①所在为输入身高h的语句,②为小于1.2的情况,③为不满足小于1.2但满足小于1.5的情况,④为大于1.5。
答案 D
4.某算法的部分流程图如图所示。执行这部分流程后,
a>3?
初始值
循环体被执行的次数为( )
A.0 B.1 C.2 D.3
解析 本题考核的知识点是用流程图表示算法的理解。
a>3?
a
初始值
5
True
4
True
3
False
答案 C
5.某算法的部分流程图如图所示,则程序运行后,变量x和y的值分别为
x>0?
初始值
True
A.2 234 B.0 234
C.2 432 D.0 432
解析 本题考核的知识点是用流程图表示算法的理解。
x>0?
y
x
初始值
0
234
True
4
23
True
43
2
True
432
0
False
答案 D
6.如下图所示的流程图,该算法完成的功能是( )
x<5?
y
x
初始值
True
A.计算y=1+2+3+4+5
B.计算y=1×2×3×4×5
C.计算y=1+2+3+4
D.计算y=1+3+5+7
解析 本题考核的知识点是用流程图表示算法的理解。
X<5?
y
x
初始值
0
1
True
1
2
True
1+2
3
True
1+2+3
4
True
1+2+3+4
5
False
答案 C
7.一个酵母细胞每10分钟分裂为2个,在下一个10分钟,就有4个细胞,然后,8个、16个、……。一个酵母细胞,经过多少分钟后数目超过100个。解决此问题的部分算法流程图如图所示:
空白矩形框中应该填入的是( )
A.x←x^2 B.x←x*x
C.x←x/2 D.x←x*2
解析 本题考核的知识点是用流程图表示算法和数据变化规律的理解。细胞从2,4,8,16的变化,显示后者是前者的2倍。
答案 D
8.某验证密码正确性的流程图如下图所示:
在这个算法中,最多输入密码的次数是( )
A.1次 B.3次 C.4次 D.5次
解析 用表格列出各个变量的值。
N<=4
N
循环次数
初始值
1
初始值
True
2
1
True
3
2
True
4
3
True
5
4
False
答案 C
9.某算法的部分流程图如图所示。
执行这部分流程后,n的值为( )
A.3 B.4 C.5 D.16
解析
条件i≤20 And i Mod 5<>0?
i
n
初始值
1
0
True
2
1
True
3
2
True
4
3
True
5
4
False
答案 B
10.某算法的部分流程图如图所示。
输入n的值为6,执行这部分流程后,s的值为( )
A.14 B.15 C.20 D.21
解析
条件i<6?
S
i
初始值
0
1
True
2
2
True
5
3
True
9
4
True
14
5
False
6
答案 A
课件29张PPT。第4节 算法表示与算法控制结构1.算法是解决问题的_____与_____,具有有穷性、____或多个输入、一个或多个输出的特性。
2.描述算法的方式有_________、_______、___________等等。
3.算法的三种基本控制结构是_________、_________(选择结构)和_________。
4.用流程图表示算法,形象直观,框图主要包含输入输出框、_______和_______等。方法步骤0个自然语言流程图计算机语言顺序结构分支结构循环结构判断框处理框一、三种常见描述算法的方法
1.用自然语言描述算法的特点是通俗易懂,但容易造成理解歧义,描述算法太长,不够精练。当算法中存在循环或分支较多时,不易清晰表示出来。
2.用流程图描述的算法形象、直观,更容易理解,程序框图的学习十分有利于提高学生的逻辑思维能力。
3.可以用程序设计语言(如VB、C、JAVA等)来实现算法。【例1】 某算法描述如下:
①将0赋值给变量Num,将10赋值给变量Max,将9赋值给变量i
②若i除以3余2、除以5余3、除以7余2,则将变量Num的值增加1并输出i
③变量i的值增加1,若变量Num小于变量Max,则转②
④结束
对于上述算法,下列说法错误的是( )
A.该算法是用自然语言来描述的
B.该算法符合有穷性的特征
C.该算法最后输出10个数值
D.该算法转换成流程图只需用到一个选择框解析 本题考核的知识点是算法的表示方法和算法思想。该算法是用自然语言来描述的,从③语句来看,是一个循环结构,循环变量是Num,他的初值是0,条件是小于10,每次递增1,那么Num取值范围是0~9,从②语句来看,把符合三个条件的i输出,同时变量Num增加1,可见输出10个数据。这是一个循环结构包含选择结构,因此有两个判断框,基本算法思想是枚举算法。
答案 D[方法总结] 理解算法常用三种表示方法及算法的基本结构是解这类题目关键。【变式训练】 统计投硬币1000次出现正面这一概率实验的算法步骤如下:
①将i,k分别赋初值0;
②用随机函数产生一个数来模拟硬币的正反面,若随机数在[0,0.5)之间,k的值加1;
③i的值加1,若i<1000,则转②;
④输出结果k/1000,结束。
对于上述算法,下列说法错误的是( )
A.变量k代表正面次数
B.该算法的循环结构内部包含了选择结构
C.该算法主要体现了枚举思想
D.该算法没有输入,因此不符合算法的基本特征解析 本题考核的知识点是算法的表示方法和算法思想。题目中描述随机数在[0,0.5)之间,k的值加1,输出结果k/1000,因此k表示正面的次数。从语句③来看,是一个循环结构,从语句②来看,是一个选择结构,在1000次模拟正反面实验中统计正面出现次数,体现了枚举思想。算法可以没有输入,但必须有输出。
答案 D二、用流程图来表示算法
1.流程图包含图框和流程线。图框表示各种类型的操作,在框内写出各个步骤,然后用带箭头的线把它们连接起来,以表示执行的先后顺序。
2.在判断框中,有一个入口,根据条件是否成立,选择两个出口中一个方向运行,因此流程图中难点是判断框中流程走向。程序运行过程中的变量取值决定了循环次数,特别要注意循环条件中变量的临界值,通常用表格来表示程序在运行过程中的值。3.流程图的常用框图和功能4.用流程图表示算法的三种基本结构
(1)顺序结构就是按指令的先后顺序依次执行。
(2)分支(选择)结构就是根据条件成立情况,选择某一条分支中的指令执行。
(3)循环结构也称重复结构,就是首先判断条件是否成立,如果不成立则直接执行循环体外的第一条指令,如果条件成立则执行循环体内的指令,然后再次判断条件是否成立,如果条件成立再次执行循环体内的指令,直至条件不成立跳出循环体为止。三种基本结构流程示意图如图所示。【例2】 下列所示流程图片断,属于循环结构的是( )解析 条件是选择结构和循环结构的核心,他们的区别在于:分支结构中,当条件成立或不成立时,选择其中一个分支执行;循环结构中,当条件成立时,重复执行该指令,直到条件不成立,执行循环体外指令,退出循环。从流程图来看两种结构的区别,判断框的两个出口中,其中一个出口的流程线指向了该判断框的入口,构成一个环,即为循环结构。选项A、D中,均执行其中一条分支,属于分支结构。选项C判断框一个出口流向入口。
答案 C【变式训练】 如图所示流程图片断,它的控制结构属于( )
A.循环结构 B.树型结构
C.分支结构 D.顺序结构解析 判断框出口的流程线没有指向入口,当条件成立或不成立时,选择一条分支进行。
答案 C【例3】 某算法要求如下:输入两个数a、b的值,交换两个数的值,并输出。用流程图表示该算法如下图所示,请将框图中的内容补充完整。
流程图中应填入的内容是①_______②_______③_______。解析 交换两个数的值在VB程序设计中会经常运用到,可以理解为交换两杯液体的方法和步骤。先把一杯液体a倒入一只空的杯子t,再把另一杯液体b倒入原体存放液体a的杯子,再把杯子t中液体倒入原来存放液体b的杯子,完成交换液体的过程。
答案 ①a←b ②b←t ③输出a、b [方法总结] 算法是解决问题的方法与步骤,在解题过程中,需要理解一个算法有哪些步骤,因此通过流程图能很好地帮助学生理解算法,即使一个复杂的算法,也可以把其中一部分合并为一个模块,放在处理框中,成为算法的子过程。【变式训练】 某算法要求如下:输入3个数a、b、c的值,找出这3个数中的最大值Max,并输出。用流程图表示该算法如下图所示,请将框图中的内容补充完整。流程图中应填入的内容是①____________、②____________、③____________。
解析 找最值是经常要碰到的算法,其基本步骤是把第1个数赋值给最大值Max,再用Max与剩下的数依次比较,把较大数并存放在Max中。
答案 ①Max和b ②Max和c ③Max【例4】 某算法的流程图如图所示,输入x、y的值分别为31、1,执行这部分流程,下列分析正确的有( )
A.步骤x≥y?被执行5次 B.步骤x←x2被执行6次
C.循环结束后,变量x的值为1?D.循环结束后,变量n的值为15解析 本题考核的知识点是用流程图表示算法的理解。流程图中最主要的部分是循环结构,而循环的条件又是解题的关键。这类题目往往用表格的形式来表示各个变量的值,表格的第1行第1列写出循环条件,按变量出现先后的顺序依次排从第2列开始在表格中列出。第2行写出各个变量的初始值,有利于条件的判断。从第3行开始,先判断条件是True或False,如果为True,再把变量的值写在表格中。从表中可以看出,第2行是初值,从第3行开始,先判断条件是否成立,若成立,在第一列中写入True,当x=1时,最后一次进入循环。可以得到以下信息:1.从n←n+3很容易看出循环的次数;2.从x≥y?来看循环条件判断情况,6次;3.退出循环时,变量x、n的值分别为0、15。
答案 D[方法总结] 在表格中列出各个变量和条件的值,把握条件的界限是解这类题目的关键。注意变量在程序中出现的顺序,该顺序可能会影响到其他变量的值。【变式训练】 某算法的流程图如图所示,执行这部分流程,下列分析正确的有( )A.步骤a<=7?被执行了3次
B.循环体被执行了3次
C.循环结束后,变量a的值为7
D.循环结束后,变量b的值为11解析 本题考核的知识点是用流程图表示算法的理解。进入循环前,先判断循环的条件是否成立,若成立,写上True,再写入其他变量的值。从表格的数据来看,退出 循环后,变量a、b的值分别为18和29,循环了3次,条件判断了4次。
答案 B