1.1.3 算法的三种基本逻辑结构和框图表示(一)
学习目标 1.熟悉各种程序框及流程线的功能与作用.2.能够读懂简单的程序框图.3.能够用程序框图表示顺序结构的算法.
知识点一 程序框图
思考 许多办事机构都有工作流程图,你觉得要向来办事的人员解释工作流程,是用自然语言好,还是用流程图好?
答案 使用流程图好.因为使用流程图表达更直观准确.
梳理 1.程序框图的概念
通常用一些通用图形符号构成一张图来表示算法,这种图称做程序框图(简称框图).
2.构成程序框图的图形符号及其作用
图形符号
名称
符号表示的意义
起、止框
框图的开始或结束
输入、输出框
数据的输入或者结果的输出
处理框
赋值、执行计算语句、结果的传送
判断框
根据给定条件判断
流程线
流程进行的方向
连接点
连接另一页或另一部分的框图
注释框
帮助理解框图
在程序框图中,一个或几个程序框的组合表示算法中的一个步骤;带有方向箭头的流程线将程序框连接起来,表示算法步骤的执行顺序.
3.画程序框图应遵循的规则
(1)使用标准的框图符号.
(2)框图一般按从上到下、从左到右的方向画.
(3)除判断框外,其他框图符号只有一个进入点和一个退出点,判断框是唯一一个具有超过一个退出点的程序框.
(4)一种判断框是二择一形式的判断,有且仅有两个可能结果;另一种是多分支判断,可能有几种不同的结果.
(5)在图形符号内描述的语言要非常简练清楚.
知识点二 顺序结构
顺序结构描述的是最简单的算法结构,语句与语句之间,框与框之间按从上到下的顺序进行.
1.任何一个程序框图必须有起止框.( √ )
2.任何一个算法都离不开顺序结构.( √ )
3.对于一个程序框图来说,判断框内的条件是唯一的.( × )
题型一 程序框的认识和理解
例1 下列说法正确的是( )
A.程序框图中的图形符号可以由个人来确定
B.也可以用来执行计算语句
C.程序框图中可以没有输出框,但必须要有输入框
D.用程序框图表达算法,其优点是算法的基本逻辑结构展现得非常直接
答案 D
解析 一个完整的程序框图至少要有起止框和输入、输出框,输入、输出框只能用来输入、输出信息,不能用来执行计算.
反思与感悟 (1)理解程序框图中各框图的功能是解此类题的关键,用程序框图表示算法更直观、清晰、易懂.
(2)起止框用表示,是任何流程不可少的,表明程序的开始或结束.
(3)输入、输出框用表示,可用在算法中任何需要输入、输出的位置,需要输入的字母、符号、数据都填在框内.
(4)处理框用表示,算法中处理数据需要的算式、公式等可以分别写在不同的用以处理数据的处理框内,另外,对变量进行赋值时,也用到处理框.
(5)判断框用表示,是唯一具有超过一个退出点的图形符号.
跟踪训练1 程序框图中表示判断框的是( )
A.矩形框B.菱形框C.圆形框D.椭圆形框
答案 B
解析 要画好程序框图,就必须准确了解各图形符号的意义,圆角矩形框为起、止框,矩形框为执行框,平行四边形框为输入、输出框,菱形框为判断框,故选B.
题型二 利用顺序结构表示算法
例2 已知直角三角形的两条直角边长分别为a,b,设计一个求直角三角形内切圆面积的算法,并画出对应的程序框图.
解 算法步骤如下:
S1 输入直角三角形的直角边长a,b的值.
S2 计算斜边长c=.
S3 计算直角三角形内切圆半径r=(a+b-c).
S4 计算内切圆面积S=πr2.
S5 输出S.
程序框图如图.
反思与感悟 在顺序结构中,语句与语句之间、框与框之间是按照从上到下的顺序连接的,中间没有“转弯”,也没有“回头”,
跟踪训练2 已知一个三角形三条边的边长分别为a,b,c,利用海伦-秦九韶公式.设计一个计算三角形面积的算法,并画出程序框图.
解 算法步骤如下:
S1 输入三角形三条边的边长a,b,c.
S2 计算p=.
S3 计算S=.
S4 输出S.
程序框图如图.
题型三 程序框图的应用
例3 一个算法如图,它的功能是什么?
解 其功能是求点(x0,y0)到直线Ax+By+C=0的距离.
反思与感悟 程序框图本就是为直观清晰表达算法而生,故只需弄清各种程序框、流程线的功能,再依次执行一下程序,不难读懂该图所要表达的算法.
跟踪训练3 写出下列算法的功能:
(1)图①中算法的功能是(a>0,b>0)_________________ ________________________;
(2)图②中算法的功能是________________.
答案 (1)求以a,b为直角边的直角三角形斜边c的长 (2)求两个实数a,b的和
1.对顺序结构,下列说法正确的有( )
①是最基本、最简单的算法结构;
②框与框之间是依次进行处理;
③除输入、输出框之外,中间过程都是处理框;
④可以从一个框图跳到另一个框图执行.
A.4个 B.3个
C.2个 D.1个
答案 B
解析 由于只有①②③正确,所以选B.
2.程序框图符号“”可用于( )
A.输出a=10 B.赋值a=10
C.判断a=10 D.输入a=1
答案 B
解析 图形符号“”是处理框,它的功能是赋值、计算,不是用来输出、判断和输入的,故选B.
3.如图所示的程序框图的输出结果为________.
答案 5,8
解析 因为初始值a=3,b=2,
故3+2=5赋给a,5-2=3赋给b,5+3=8赋给b,
所以最终a=5,b=8,输出5,8.
4.下面程序框图的运行结果是________.
答案
解析 初始值a=2,b=4,
得S=+=2+=,输出S的值为.
5.写出求过点P1(3,5),P2(-1,2)的直线斜率的算法,并画出程序框图.
解 算法如下:
S1 输入x1=3,y1=5,x2=-1,y2=2.
S2 计算k=.S3 输出k.
程序框图如图.
1.在设计计算机程序时要画出程序运行的程序框图,有了这个程序框图,再去设计程序就有了依据,从而就可以把整个程序用程序语言表述出来,因此程序框图是我们设计程序的基本和开端.
2.规范程序框图的表示
(1)使用标准的框图符号;
(2)框图一般按从上到下、从左到右的方向画,流程线要规范;
(3)除判断框外,其他框图符号只有一个进入点和一个退出点;
(4)在图形符号内描述的语言要非常简练、清楚.
一、选择题
1.算法框图中表示处理框的符号是( )
A.矩形框 B.菱形框
C.圆形框 D.椭圆形框
答案 A
2.一个完整的程序框图至少包含( )
A.起止框和输入、输出框
B.起止框和处理框
C.起止框和判断框
D.起止框、处理框和输入、输出框
答案 A
解析 一个完整的程序框图至少需包括起、止框和输入、输出框.对于处理框,由于含有计算功能,所以可不必有.
3.a表示“处理框”,b表示“输入、输出框”,c表示“起、止框”,d表示“判断框”,以下四个图形依次为( )
A.abcdB.dcabC.cbadD.bacd
答案 C
解析 根据框图表示的意义逐一判断.
4.在程序框图中,一个算法步骤到另一个算法步骤的连接用( )
A.连接点 B.判断框
C.连接线 D.处理框
答案 C
解析 连接线的作用是连接程序框及体现程序进行的方向,一个算法步骤到另一个算法步骤表示的是程序进行的方向,故选C.而连接点的作用是连接程序框图的两部分.判断框的作用是判断某一条件是否成立.处理框的作用是赋值、计算、数据处理等.
5.能够使算法的步骤表达更直观的是( )
A.自然语言 B.程序框图
C.数学语言 D.逻辑分析
答案 B
解析 用程序框图表达算法,能使算法的结构更清楚,步骤更直观也更精确.
6.下列是程序框图中的一部分,表示恰当的是( )
答案 A
解析 由各图形符号的功能和流程线的意义知选A.
7.如图所示的程序框图中不含有的程序框是( )
A.起、止框 B.输入、输出框
C.判断框 D.处理框
答案 C
8.阅读如图的程序框图,若输入的a,b,c分别是21,32,75,则输出的a,b,c分别是( )
A.75,21,32 B.21,32,75
C.32,21,75 D.75,32,21
答案 A
解析 由程序框图可知x=a,则x的值为21,由“a=c”知a的值是75,依次得到c的值为32,b的值为21.
二、填空题
9.根据下面的程序框图所表示的算法,输出的结果是________.
答案 2
解析 该算法的第1步分别将X,Y,Z赋于1,2,3三个数,第2步使X取Y的值,即X取值变成2,第3步使Y取X的值,即Y的值也是2,第4步使Z取Y的值,即Z取值也是2,从而第5步输出时,Z的值是2.
10.下图(1)是计算图(2)所示的阴影部分的面积的程序框图,则图(1)中执行框内应填________.
答案 S=a2
解析 正方形的面积为S1=a2,扇形的面积为S2=πa2,则阴影部分的面积为S=S1-S2=a2.因此图中执行框内应填入S=a2.
11.程序框图如图所示.则该程序框图的功能是________________.
答案 交换两个变量x,y的值
三、解答题
12.已知一个直角三角形的两条直角边长分别为a,b,设计一个算法,求该三角形的面积,并画出相应的程序框图.
解 算法如下:S1 输入两直角边的长a,b.
S2 计算S=ab.S3 输出S.
程序框图如图.
13.如图所示的程序框图,当输入的x的值为0和4时,输出的值相等,根据该图和下列各小题的条件回答下面的几个问题.
(1)该程序框图解决的是一个什么问题?
(2)当输入的x的值为3时,求输出的f(x)的值;
(3)要想使输出的值最大,求输入的x的值.
解 (1)该程序框图解决的是求二次函数
f(x)=-x2+mx的函数值的问题.
(2)当输入的x的值为0和4时,
输出的值相等,
即f(0)=f(4).
因为f(0)=0,f(4)=-16+4m,
所以-16+4m=0,
所以m=4.所以f(x)=-x2+4x.
因为f(3)=-32+4×3=3,
所以当输入的x的值为3时,
输出的f(x)的值为3.
(3)因为f(x)=-x2+4x=-(x-2)2+4,
当x=2时,f(x)max=4,
所以要想使输出的值最大,
输入的x的值应为2.
四、探究与拓展
14.如图所示,图①是计算图②中空白部分面积的一个框图,则“?”处应填________.
① ②
答案 S=-a2
解析 由题图②知S阴影=2=2a2-,
所以S空白=a2-S阴影=a2-2a2+=-a2.
故“?”处应填S=-a2.
15.如图所示是解决某个问题而绘制的程序框图,仔细分析各框图内的内容及框图之间的关系,回答下面的问题:
(1)该框图解决的是怎样的一个问题?
(2)若最终输出的结果y1=3,y2=-2,当x=5时输出的结果5a+b的值应该是多大?
(3)在(2)的前提下,输入的x值越大,输出的ax+b是不是越大?为什么?
(4)在(2)的前提下,当输入的x值为多大时,输出结果ax+b=0?
解 (1)该框图解决的是求函数f(x)=ax+b的函数值的问题,其中输入的是自变量x的值,输出的是x对应的函数值.
(2)y1=3,即2a+b=3.①
y2=-2,即-3a+b=-2.②
由①②得a=1,b=1.
∴f(x)=x+1.
∴当x=5时,5a+b=f(5)=5+1=6.
(3)输入的x值越大,输出的函数值ax+b越大,
∵f(x)=x+1是R上的增函数.
(4)令f(x)=x+1=0,得x=-1,
因此当输入的x值为-1时,输出的函数值为0.