1、第九章 算法初步、框图、统计、统计案例 第一节 算法与程序框图、基本算法语句 1算法(1)古代定义:指的是用阿拉伯数字进行算术运算的过程.(2)现代定义:算法通常是指按照一定规则解决某一类问题的 _和_的步骤.(3)应用:算法通常可以编成计算机程序,让计算机执行并解 决问题.明确 有限 2程序框图(1)程序框图的概念:程序框图又称流程图,是一种用_ _、_及_来准确、直观地表示算法的图形.程序 框 流程线 文字说明 图形符号 名 称 功 能 _框(起止框)表示一个算法的_和_ _,是任何算法程序框图不可缺少的 _ _框 表示一个算法输入和输出的信息,可用在程序框图中任何需要输入、输出的位置 _
2、框(执行框)赋值、计算.算法中处理数据需要的算式、公式等,它们分别写在不同的用以处理数据的处理框内 终端 起始 束 输入、输出 处理 结(2)构成程序框图的图形符号及其作用 图形符号 名 称 功 能 _框 判断某一条件是否成立,成 立时在出口处标明_ _;不成立时在出口处标 明_ 流程线 连接_,表示算法进行 的前进方向以及先后顺序 连接点 连接程序框图的两部分 判断“是”或“Y”“否”或“N”程序框(3)程序框图的构成 一个程序框图包括以下几部分:实现不同算法功能的相对应的程序框;带箭头的流程线;程序框内必要的说明文字.3三种基本逻辑结构及相应语句 名 称 示 意 图 相 应 语 句 顺序
3、结构 输入语句:INPUT “提示内容”;变量 输出语句:PRINT “提示内容”;表达式 赋值语句:变量=表达式 名 称 示 意 图 相 应 语 句 条件 结构 _ 语句体 _ _ 语句体1 _ 语句体2 _ IF 条件 THEN END IF IF 条件 THEN ELSE END IF 名 称 示 意 图 相 应 语 句 循环结构 直到型循环结构 _ 循环体 _ 条件 当型循环结构 _ 条件 循环体 _ DO LOOP UNTIL WHILE WEND 判断下面结论是否正确(请在括号中打“”或“”).(1)算法可以无限操作下去.()(2)一个程序框图一定包含顺序结构,但不一定包含条件结构
4、和循环结构.()(3)5x是赋值语句.()(4)输入语句可以同时给多个变量赋值.()(5)一个赋值语句可以给多个变量同时赋值.()【解析】(1)错误.算法必须在有限步操作后停止.(2)正确.由程序框图的三种逻辑结构知该说法正确.(3)错误.赋值语句中不能给常量赋值.(4)正确.输入语句可以同时给多个变量赋值.(5)错误.一个赋值语句只能给一个变量赋值.答案:(1)(2)(3)(4)(5)1如果执行如图所示的程序框图,输 入n=6,m=4,那么输出的p等于()(A)720(B)360(C)240(D)120【解析】选B.当k=1时,p=1(6-4+1)=3,当k=2时,p=3(6-4+2)=12
5、,当k=3时,p=12(6-4+3)=60,当k=4时,p=60(6-4+4)=360,故选B.2.下面程序运行的结果是()(A)5,8 (B)8,5 (C)8,13 (D)5,13【解析】选C.此程序先将A的值赋给X,再将B的值赋给A,再将XA的值赋给B,即将原来的A与B的和赋给B,最后A的值是原来B的值8,而B的值是原来A与B两数之和13.3执行如图所示的程序框图,输出的s值为()(A)-3 (B)(C)(D)2 1213【解析】选D.第一次循环:i=1,第二次循环:第三次循环:第四次循环:2 11s;2 131113i2,s;1213 112i3,s3;112 3 1i4,s2.3 1
6、4程序框图如图所示,若输出的S=57,则判断框内应填入()(A)k4?(B)k5?(C)k6?(D)k7?【解析】选A.各次循环情况如表所示:当k=5时应退出循环,故判断框中应填入k4?.循环次数 0 1 2 3 4 k 1 2 3 4 5 S 1 4 11 26 57 5若某程序框图如图所示,则该程序运行后输出的k值为_.【解析】起始k=2,第一次循环后k=3,a=64,b=81;第二次循环后k=4,a=256,b=256;第三次循环后k=5,a=1 024,b=625;故k=5.答案:5 考向 1 程序框图的执行问题【典例1】(1)(2012山东高考)执行 如图所示的程序框图,如果输入a=
7、4,那么输出的n的值为()(A)2 (B)3(C)4 (D)5(2)(2013茂名模拟)如图给出了一个程序框图,其作用是输入x的值,输出相应的y值,若要使输入的x值与输出的y值相等,则这样的x值有_个.【思路点拨】(1)按照程序框图判定每一次循环之后变量的变化及最终输出的值.(2)先由程序框图判断出程序所表示的函数关系,再把y换为x得方程求出相应x的值.【规范解答】(1)选B.若输入a=4,则执行P=0,Q=1,n=0,判 断01成立,进行第一次循环:P=1,Q=3,n=1,判断13成立,进行第二次循环:P=5,Q=7,n=2,判断57成立,进行第三次循 环:P=21,Q=15,n=3,判断2
8、13是否成 立;又p=8.5,显然|9-x3|3不成立,即为“否”,有|9-x3|3,即6x312,此时有 解得x3=8,符合题意,故选B 12xx7.52,39x8.52,(2)如果执行如图所示的框图,输入N5,则输出的数等于()5465(A)(B)(C)(D)4556【解析】选D.根据程序框图可知,该程序框图的功能是计算 现在输入的N5,所以输 出的数 1111S1 22 33 4N(N1),11111111S(1)()1 22 33 44 55 6223 115().566 考向 2 程序框图的识别与完善问题【典例2】(1)如图给出了一个程序框图,该程序框图的功能是()(A)求三个数中最
9、大的数(B)求三个数中最小的数(C)按从小到大排列(D)按从大到小排列 (2)(2012南昌模拟)如图是计算函数 的值的程序框图,在,处应分别填入的是()(A)yln(x),y0,y2x(B)yln(x),y2x,y0(C)y0,y2x,yln(x)(D)y0,yln(x),y2x xln(x),x2,y0,2x3,2,x3 (3)给出如图的程序框图,如果输出的S2 450,那么判断框中应填入_.【思路点拨】(1)根据各判断框的功能进行判断或取特殊值运行后判断.(2)处应填当x2时,y的表达式;处应填当x3时,y的表达式;处应填当2b成立,故将b的值赋给a得a=5,又ac不成立,故直接输出a的
10、值为5,再结合选项知,B成立.(2)选B.依题意得,当x2时,yln(x),因此处应填yln(x);当23时,y2x,因此处应填y2x.(3)依次执行程序框图,S=0+2,i=2+2=4;S=0+24,i=4+2=6;S=0+246,i=6+2=8;,由此得,当i2n时,S=0+246(2n2)n(n-1),由n(n-1)2 450得n=50.即i=100时,S=2 450,又本题中为直到型循环结构,当条件满足时退出循环,故判断框中应填入i100?答案:i100?【互动探究】在本例(3)中,若将程序框图改为如下形式,其他条件不变,试解答本题.【解析】由本例解析知,当i=100时,S=2 450
11、,又程序框图 为当型循环结构,当条件满足时进入循环,故判断框中应填入i100?【拓展提升】1.识别运行程序框图和完善程序框图的思路(1)要明确程序框图的顺序结构、条件结构和循环结构.(2)要识别运行程序框图,理解框图所解决的实际问题.(3)按照题目的要求完成解答并验证 2.解决程序框图问题时应注意的问题(1)不要混淆处理框和输入框(2)注意区分条件结构和循环结构(3)注意区分当型循环和直到型循环(4)循环结构中要正确控制循环次数(5)要注意各个框的顺序【变式训练】已知函数 如图表示的是给定x的 值,求其对应的函数值y的程序框图处应填写_;处应填写_ 2log x,x2,y2x,x2.【解析】由
12、框图可知只有满足中的条件则对应的函数解析式才为y2x,故此处应填写x2?则处应填写ylog2x.答案:x2?ylog2x 考向 3 基本算法语句【典例3】(1)为了在运行下面的程序之后得到结果y16,则键盘输入的x应该是_(2)请写出下面程序输出的结果(3)根据给出的程序写出相应的算法功能,并画出相应的程序框图【思路点拨】(1)本题考查的是用条件语句表示的程序运行,解题的关键是按照程序的顺序和条件语句的特点进行.(2)赋值语句的功能是将后面的值赋给了前面的变量.(3)本题考查的是当型循环结构,表示的是不大于999的奇数的平方和.【规范解答】(1)由程序可得:当x999 PRINT S END【
13、拓展提升】1.输入语句的要求(1)输入语句要求输入的值是具体的常量.(2)提示内容提示用户输入的是什么信息,必须加双引号,提示内容“原原本本”地在计算机屏幕上显示,提示内容与变量之间要用分号隔开.(3)一个输入语句可以给多个变量赋值,中间用“,”分隔;输入语句还可以是“提示内容1”;变量1,“提示内容2”;变量2,“提示内容3”;变量3,的形式.例如,INPUT“a=,b=,c=”;a,b,c;INPUT“a=”;a,“b=”;b,“c=”;c.2.输出语句的要求(1)表达式是指算法和程序要求输出的信息.(2)提示内容提示用户要输出的是什么信息,提示内容必须加双引号,提示内容要用分号和表达式分
14、开.(3)如同输入语句一样,输出语句可以一次完成输出多个表达式的功能,不同的表达式之间可用“,”分隔;输出语句还可以是“提示内容1”;表达式1,“提示内容2”;表达式2,“提示内容3”;表达式3,的形式.例如,PRINT“a,b,c:”;a,b,c;PRINT“a”;a,“b”;b,“c”;c.3.赋值语句的要求(1)赋值语句左边只能是变量名字,而不能是表达式,右边表达式可以是一个常量、变量或含变量的运算式.如2=x是错 误的.(2)赋值号的左右两边不能对换.赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量.如“A=B”“B=A”的运行结果是不同的,如x=5是对的,5=x是错的,A+B=
15、C是错的,C=A+B是对的.(3)不能利用赋值语句进行代数式的演算(如化简、因式分解、解方程等),如y=x2-1=(x-1)(x+1),这是实现不了的.在赋值号右边表达式中每一个变量的值必须事先赋给确定的值.在一个赋值语句中只能给一个变量赋值.不能出现两个或两个以上的“=”,但对于同一个变量可以多次赋值.【变式备选】下面是一个用基本语句编写的程序,阅读后解决所给出的问题:(1)该算法程序的功能是什么?(2)画出该程序相应的程序框图【解析】(1)由算法程序可知,该算法程序的功能是计算分段函数 的函数值(2)程序框图:2x2x,x2,yx5,x2【易错误区】循环规律与程序中的逻辑顺序不明确致误【典
16、例】为了求满足1+2+3+n2 012 的最大的自然数n,程序框图如图所示,则输出框中应填:输出()(A)i-2 (B)i-1(C)i (D)i+1【误区警示】本题易出现的错误主要有两个方面:(1)循环规律不明确,导致S与i的关系错误.(2)程序框图中S=S+i与i=i+1的逻辑顺序不明确,导致错误.【规范解答】选A.依次执行程序框图:S=0+1,i=2;S=0+1+2,i=3;S=0+1+2+3,i=4;由此可得 S=1+2+3+n时,i=n+1;经检验知当S=1+2+3+62=1 953时,i=63,满足条件进入循环;S=1+2+3+62+63=2 016时,i=64,不满足条件,退出循环
17、.所以应该输出62,即i-2故选A【思考点评】1解决程序框图问题要注意几个常用变量(1)计数变量:用来记录某个事件发生的次数,如ii1.(2)累加变量:用来计算数据之和,如SSi.(3)累乘变量:用来计算数据之积,如ppi.2.循环体规律的探求 通常由开始一步一步运行,根据判断条件,要么几步后就会输出结果或会呈现出规律,再根据规律计算出结果.1.(2012安徽高考)如图所示,程序框图(算法流程图)的输出结果是()(A)3 (B)4 (C)5 (D)8【解析】选B.由程序框图可知,第一次循环后,得到x2,y2,满足判断条件;第二次循环后,得到x4,y3,满足判断条件;第三次循环后,得到x8,y4
18、,不满足判断条件,故跳出循环,输出y4.2.(2012北京高考)执行如图所示的程序框图,输出S值 为()(A)2 (B)4 (C)8 (D)16【解析】选C.框图执行如下:k=0,S=1;S=1,k=1;S=2,k=2;S=8,k=3.所以输出8.3.(2012辽宁高考)执行如图所示的程序框图,则输出的S值是()32(A)4 (B)(C)(D)123【解析】选D.当i1时,当i2时,当i3时,当i4时,当i5 时,当i6时程序终止,故输出的结果为1.2S124;2S2(1)23;23S2223;2S4322;2S124;4.(2012天津高考)阅读如图所示的程 序框图,运行相应的程序,则输出S
19、的值 为()(A)8 (B)18(C)26 (D)80【解析】选C.当n1时,S2;当n 2时,S23238;当n3时,S 8333226;当n4时输出S26.5.(2012江西高考)如图是某算法的程序框图,则程序运行 后输出的结果是_ 【解析】当k1时,此时 成立,因此 a1,T011,k112,k 不成立,因此a0,T101,k213,sin1sin 0 02sin12此时k6成立,再次循环;因 不成立,因此a0,T101,k314,此时k6成立,再次循 环;因 成立,因此a1,T112,k415,此时k sin 20成立,因此a1,T213,k516,此时k6不成立,退出循环,此时T3.
20、答案:3 3sin1 sin 023sin 20sin125sin 21.阅读如图所示的程序框图,输出的s值为()2(A)0 (B)12 (C)1 (D)212【解析】选B.程序框图的功能是计算 易知 23456sinsinsinsinsinsin4444447891011sinsinsinsinsin44444,23456sinsinsinsinsinsin4444447891011sinsinsinsinsin12.44444 2如图所示的程序框图运行的结果是()2 0112 01211(A)(B)(C)(D)2 0122 0132 0122 013【解析】选B.由程序框图的算法原理可得:A=0,i=1;不满足循环条件,输出 111A,i2A,i31 21 22 3111A,i2 012;1 22 32 011 2 0121111A,i2 0131 22 32 011 2 0122 0122 013;111A1 22 32 011 2 012112 0121.2 012 2 0132 0132 013