1、11.2 程序框图,1程序框图的概念 通常用一些 来表示算法,这种图称作程序框图(简称框图)或流程图 注意:(1)算法可以用自然语言来描述,但为了使算法的程序或步骤表达得更为直观,我们经常用图形方式来表示它; (2)流程图又称程序框图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形,通用图形符号构成一张图,2用框图表示算法步骤的一些常用的图形符号,流程图的开始或结束,数据的输入或结果的输出,赋值、执行计算语句、结果的传送,根据给定条件判断,流程进行的方向,连接另一页或另一部分的框图,帮助理解流程图,3.画流程图的规则 (1)使用 的框图的符号 (2)框图一般按 的方向画 (3
2、)除判断框外,大多数流程图符号只有 进入点和 退出点判断框是具有超过一个退出点的唯一符号 (4)一种判断框是“是”与“不是”两分支的判断,而且有且仅有个结果;另一种是多分支判断,有 不同的结果 (5)在图形符号内描述的语言要非常 ,从上到下、从左到右,标准,一个,一个,两,几种,简练清楚,本节重点:程序框图符号含义的掌握和画程序框图的规则 本节难点:理解程序框图符号的含义和画程序框图的规则 1算法可以用自然语言来描述,但为了使算法的程序或步骤表达得更为直观,我们更经常地用图形方式来表示它用框图表示算法的特点是直观、形象、容易理解,2学习本节要注意每一种框图都有特定的含义,应用框图时,一是要弄清
3、每一种框图的含义,注意其区别,如起止框与处理框及判断框的区别,熟练掌握它们;二是要遵循画程序框图的规则;三是要注重模仿、操作、探索,在画框图过程中,进一步体会算法思想、提高逻辑思维能力,3算法中间任何需要输入、输出的位置都可以用输入和输出框,需要输入的字母、符号、数据都填在输入框内;算法中间处理数据所需要的算式、公式等可分别写在不同的用以处理数据的处理框内;同时还可以对变量进行赋值它们可以使用输入框输入的数据进行运算;算法中需对两个不同结果进行判断时,需将实现判断所需条件写在判断框内,任何算法都要有起止框(终端框)表明一个算法程序的开始和结束,命题方向 程序框图的概念 例1 关于程序框图,有以
4、下说法 程序框图只有一个入口,也只有一个出口 输入框只能在开始框之后,输出框只能在结束框前 判断框内的条件是惟一的 在程序框图中,大多数框图符号只有一个进入点和一个退出点,判断框是惟一具有超过一个退出点的一个符号,一种判断框是“是”与“不是”两分支的判断,而且有且仅有两个结果,另一种是多分支判断,有几种不同的结果 在图形符号内描述的语言要非常简练、清楚 其中正确说法的个数为( ) A2 B3 C4 D5,【解析】输入、输出框可以在程序中需要输入输出的任何位置判断框内的条件不是惟一的,如ab,可改为ab.选C. 【答案】C,变式训练1 下列关于程序框图的说法正确的是( ) A程序框图是描述算法的
5、语言 B在框图中,一个判断框最多只能有两个退出点 C程序框图虽可以描述算法,但不如用自然语言描述算法直观 D程序框图和流程图不是一个概念,【解析】由于存在着一种多分支判断,所以一个判断框可能有多个退出点,所以B选项是错误的;因为用程序框图描述算法的优点主要就是直观、形象、容易理解,相对于自然语言描述算法,在步骤上表达简单了许多,所以C选项是错误的;另外程序框图就是流程图,所以D选项也是错误的,故选A. 【答案】A,命题方向 数值计算的框图表示 例2 已知f(x)x22x3,画出求f(3)、f(5)、 f(5)的值的一个程序框图,解:程序框图如图所示: 解法一: 解法二:,变式训练2利用梯形的面
6、积公式计算上底为2,下底为4,高为5的梯形的面积 设计出该问题的算法及程序框图,命题方向 根据程序框图判断算法 例3 如图是解决某个问题而绘制的程序框图仔细分析各图框内的内容及图框之间的关系, 回答下面的问题: (1)图框中x2的含义是什么? (2)图框中y1axb的含义是什么? (3)图框中y2axb的含义是什么?,(4)该程序框图解决的是怎样的一个问题? (5)若最终输出的结果是y13,y22.当x取5时输出的结果5ab的值应该是多大? (6)在(5)的前提下输入的x值越大,输出的axb是不是越大?为什么? (7)在(5)的前提下当输入的x值为多大时,输出结果axb等于0?,解:(1)图框
7、中x2表示把2赋给变量x或使x2. (2)图框中y1axb的含义:该图框在执行的前提下,即当x2时计算axb的值,并把这个值赋给y1. (3)图框中,y2axb的含义:该图框在执行的前提下,即当x3时计算axb的值,并把这个值赋给y2. (4)该程序框图解决的是求函数f(x)axb的函数值的问题,其中输入的是自变量x的值,输出的是x对应的函数值,(5)y13,即2ab3y22,即3ab2 由得a1,b1,f(x)x1, x取5时,5abf(5)5116. (6)输入的x值越大,输出的函数值axb越大,因为f(x)x1是R上的增函数 (7)令f(x)x10得x1,因而当输入的值为1时,输出的函数
8、值为0.,变式训练3 写出图中程序框图的执行结果 若R8,则a_. 【解析】R8时,b2,故a0. 【答案】0,命题方向 程序框图在现实生活中的应用 例4 通常说一年有365天,它表示地球围绕太阳一周需要的时间,但事实上并不是这样简单根据天文资料,地球围绕太阳转一周所需要的精确时间是365.2422天,称之为天文年这个误差看似不大,却引起季节和日历之间难以预料的大变动在历法上规定四年一闰年,百年少一闰,第四百年又加一闰如何判断一年是不是闰年呢?请用程序框图描述这个算法,解:上节我们研究了用算法的自然语言表示将2000年到2500年中的闰年输出,本例试图从更一般的情形研究何年是闰年的情形我们可以
9、先用自然语言表示该问题的算法 设y为年份,按照历法规定,如果y为闰年,那么或者y能被4整除而不能被100整除,或者y能被400整除 算法如下: S1 输入整数y; S2 判断y能否被4整除若不能,则输出“y不是闰年”;若能,则转S3;,S3 判断y能否被100整除 若不能,则输出“y是闰年”;若能,则转S4; S4 判断y能否被400整除 若不能,则输出“y不是闰年”; 若能,则输出“y是闰年” 算法的程序框图见图,变式训练4某居民区的物业部门每月向居民收取卫生费,计费方法是:3人和3人以下的住户,每户收取5元;超过3人的住户,每超出1人加收1.2元设计一个算法,根据输入的人数,计算应收取的卫
10、生费,并画出程序框图,解:设某户有x人,根据题意,收取的卫生费y应是x的分段函数 当x3时,y5;当x3时,y5(x3)1.21.2x1.4.S1 输入x; S2 如果x3,则y5;如果x3,则y1.2x1.4; S3 输出y.,相应的程序框图如图所示,当堂检测 1下列关于程序框图的说法中正确的个数是( ) 用程序框图表示算法直观、形象、容易理解 程序框图能够清楚地展现算法的逻辑结构,也就是通常所说的一图胜万言 在程序框图中,起止框是任何流程不可少的 输入和输出框可用在算法中任何需要输入、输出的位置 A1个 B2个 C3个 D4个,【解析】由程序框图定义可知,都正确 【答案】D,2在程序框图中
11、,算法中间要处理数据或计算,可分别写在不同的( ) A处理框内 B判断框内 C输入、输出框内 D循环框内 【解析】由处理框的意义可知,对变量进行赋值,执行计算语句,处理数据,结果的传送等都可以放在处理框内,选A. 【答案】 A,3在程序框图中,一个算法步骤到另一个算法步骤的连接用( ) A连结点 B判断框 C流程线 D处理框 【解析】 流程线的意义是流程进行的方向,一个算法步骤到另一个算法步骤表示的是流程进行的方向,故选C.而连结点是当一个框图需要分开来画时,在断开处画上连结点判断框是根据给定条件进行判断,处理框是赋值、计算、数据处理、结果传送,所以A、B、D都不对 【答案】C,4写出下列算法的功能 (1)如图(1)中算法的功能是(a0,b0)_; (2)如图(2)中算法的功能是_,【答案】 (1)求以a、b为直角边的直角三角形的斜边的长,或求两个正实数平方和的算术平方根 (2)求两个实数a、b的和,解:算法如下: S1 输入a,b,c的值1,2,3; S2 计算max S3 输出max. 程序框图如图所示:,5写出求yx22x3的最大值的算法,画出程序框图,