1、算法与程序框图要点梳理1算法 在数学中,算法通常是指按照一定规则解决某一类问题的_明确_和_有限_的步骤2程序框图 定义:程序框图又称_流程图_,是一种用_程序框_、_流程线_及_文字说明_来表示算法的图形通常程序框图由程序框和流程线组成,一个或几个程序框的组合表示算法中的一个步骤;_ _流程线_带方向箭头,按照算法进行的顺序将_程序框_ _连接起来3程序框图中图形符号的意义.起止框图: 起止框是任何流程图都不可缺少的,它表明程序的开始和结束,所以一个完整的流程图的首末两端必须是起止框.输入、输出框: 表示数据的输入或结果的输出,它可用在算法中的任何需要输入、输出的位置.处理框: 它是采用来赋
2、值、执行计算语句、传送运算结果的图形符号.判断框: 判断框一般有一个入口和两个出口,有时也有多个出口,它是惟一的具有两个或两个以上出口的符号,在只有两个出口的情形中,通常都分成“是”与“否”(也可用“Y”与“N”)两个分支。4三种基本逻辑结构(1)顺序结构是由_若干个依次执行的步骤_ _组成的,这是任何一个算法都离不开的基本结构其结构形式为 (2)条件结构是指算法的流程根据给定的条件是否成立而选择执行不同的流向的结构形式其结构形式为(3)循环结构是指_从某处开始,按照一定条件反复执行某些步骤的情况_反复执行的处理步骤称为_循环体_循环结构又分为_当型(WHILE型) _和_直到型(UNTIL型
3、)_ _其结构形式为基础自测1 关于程序框图的图形符号的理解,正确的有 ()任何一个程序框图都必须有起止框;输入框只能在开始框之后,输出框只能放在结束框之前;判断框是唯一具有超过一个退出点的图形符号;对于一个程序框图来说,判断框内的条件是唯一的A 1个 B2个 C3个 D4个2如图,是求实数x的绝对值的算法程序框图,则判断框中可填_ x0?(或x0?)_ 3阅读如图所示的程序框图,若输入的x是2,则输出的y值为_1_4若执行如图所示的框图,输入x11,x22,x34,x48,则输出的数为_5执行如图所示的程序框图,如果输入的N是6,那么输出的p是()A120 B720 C1 440 D5 04
4、0第2题图第3题图题型分类 第4题图第5题图题型一算法的条件结构例1已知函数y写出求该函数的函数值的算法及程序框图解算法如下:第一步:输入x;第二步:如果x0,则y2x;如果x0,则y0;如果x10时就结束循环(3)如果执行如图的程序框图,若输入n6,m4,那么输出的p等于 ()A720 B360C240 D120解析:程序运行如下:n6,m4,k1,p1,pp(nmk)6413,km;k112,pp(nmk)3(642)12,km;k213,pp(nmk)12(643)60,k7? Bk6? Ck5? Dk4?解析:第一次循环:k112,S2022;第二次循环:k213,S2237第三次循环
5、:k314,S27418第四次循环:k415,S218541第五次循环:k516,S241688,满足条件则输出S的值,而此时k6,故判断框内应填入的条件应是k5.答案:C(5)某店一个月的收入和支出总共记录了N个数据a1,a2,aN,其中收入记为正数,支出记为负数该店用下边的程序框图计算月总收入S和月净盈利V.那么在图中空白的判断框和处理框中,应分别填入下列四个选项中的 ()AA0,VST BA0,VST DA2,此时结束循环,故输出的P值为4. 答案:C6.执行如图所示的程序框图,输出的s值为 ()A3 B C. D2解析:因为该程序框图执行4次后结束, s的值分别是,3,2,所以输出的s
6、的值等于2.答案:D7执行如图所示的程序框图,若输出的结果是8,则判断框内m的取值范围是 ()A(30,42 B(42,56 C(56,72 D(30,72)解析:由题知,当输出结果k8时,S2(1237)56;当输出结果k7时,S2(1236)42,结合程序框图知,选B.答案:B第7题图 第8题图 第9题图二、填空题8如图所示,程序框图(流程图)的输出结果是_15_解析】 第一次进入循环体有T00,第二次有:T01,第三次有T012,第k1次有T012k,若T105,解得k14,继续执行循环,这时k15,T105,所以输出的k的值是15.9如图所示,程序框图(流程图)的输出值x _12_.1
7、0根据如图所示的程序框图,可知输出的结果i为_ 第10题图第11 题图 第8题图 第12题图112010年上海世博会园区每天900开园,2000停止入园在如图所示的框图中,S表示上海世博会官方网站在每个整点报道的入园总人数,a表示整点报道前1个小时内入园人数,则空白的执行框内应填_ SSa _12为调查深圳市中学生平均每人每天参加体育锻炼的时间X(单位:分钟),按锻炼时间分下列4种情况统计:010分钟;1120分钟;2130分钟;30分钟以上有10 000名中学生参加了此项调查活动,下图是此次调查中某一项的流程图,其输出的结果是6 200.求平均每天参加体育锻炼时间在020分钟内的学生的频率是
8、多少?解:由程序框图,当输入体育锻炼时间X20时,SS1,计数TT1,一直到T10 000,即10 000个数据全部输入完,故输出的结果6 200是每天参加体育锻炼时间X20的学生人数,则每天参加体育锻炼时间在020分钟内的学生人数是10 0006 2003 800,其频率为0.38.基本算法语句要点梳理1. 程序设计语言有很多种。为了实现算法中的三种基本的逻辑结构:顺序结构、条件结构、和循环结构,各种程序设计语言中都包含下列基本的算法语句:输入语句 输出语句 赋值语句 条件语句 循环语句语句一般格式功能输入语句INPUT“提示内容”;变量输入信息输出语句PRINT“提示内容”;表达式输出常量
9、、变量的值和系统信息输出数值计算的结果赋值语句变量表达式将表达式代表的值赋给变量INPUT语句不但可以给单个变量赋值,还可以给多个变量赋值,其格式为:INPUT “提示内容1,提示内容2,提示内容3,”;变量1,变量2,变量3,例如,输入一个学生数学,语文,英语三门课的成绩,可以写成:INPUT “数学,语文,英语”;a,b,c注:“提示内容”与变量之间必须用分号“;”隔开。各“提示内容”之间以及各变量之间必须用逗号“,”隔开。但最后的变量的后面不需要。关于赋值语句有以下几点需要注意:除了输入语句,在该程序中的赋值语句也可以给变量提供初值。赋值语句的作用:先计算出赋值号右边表达式的值,然后把这
10、个值赋给赋值号左边的变量,使该变量的值等于表达式的值。注:赋值号左边只能是变量名字,而不能是表达式。例如3m是错误的赋值号左右不能对换,赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量,例如Yx,表示用x的值替代变量Y的原先的取值,不能改写为xY.因为后者表示用Y的值替代变量x的值赋值语句中的“=”叫做赋值号,与数学中的等号意义不同。在一个赋值语句中只能给一个变量赋值,不能出现一个或多个“”2.条件语句(1)程序框图中的_条件结构_与条件语句相对应(2)条件语句的格式及框图IFTHEN格式 计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语
11、句,如果条件不符合,则直接结束该条件语句,转而执行其他语句.IFTHENELSE格式当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2. 3循环语句(1)程序框图中的_循环结构_与循环语句相对应(2)循环语句的格式及框图 UNTIL语句(直到型)WHILE语句(当型)其中循环体是由计算机反复执行的一组语句构成的.2两种循环语句的区别(1)WHILE当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次
12、条件不符合为止这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句因此,当型循环有时也称为“前测试型”循环.(2)UNTIL当计算机遇到UNTIL语句时,先执行一次循环体,再判断是否满足条件,若不满足,再执行循环体,然后再检查是否满足条件,如此反复,直到满足条件时为止当满足条件时,将不执行循环体,直接跳到LOOP UNTIL语句后,执行LOOP UNTIL后的语句基础自测1下列关于“赋值语句”叙述正确的是 ()A3.6x是赋值语句 B利用赋值语句可以进行代数式的化简C赋值语句中的等号与数学中的等号意义相同D赋值语句的作用是先计算出赋值号右边表达式的值,然后把该值赋给赋
13、值号左边的变量,使该变量的值等于表达式的值2下列关于循环语句的说法,不正确的是()A算法中的循环结构只能由WHILE语句来实现B一般程序设计语言中有当型和直到型两种循环语句结构C循环语句中有当型和直到型两种语句,即WHILE语句和UNTIL语句D算法中的循环结构由循环语句来实现3读下面一段程序,当x1时,求y_10_.INPUT“x”;xyx3+3*x2-24*x+30PRINT yEND4当a1,b3时,执行完下面一段过程后x的值是_4_IFabTHENxabELSExabENDIF5执行完下面一段程序后,输出的结果是_5 050_i1S0WHILEi0 AND x4 THEN y2*x E
14、LSEIF x0ANDx100THEN y1ELSE IFx5 000THEN y0.01*xELSE y50 ENDIFENDIFPRINT“手续费为”;yEND题型三循环语句的应用例3高三(1)班共有50名同学参加数学竞赛,现已有这50名同学的竞赛分数,请设计一个将竞赛成绩优秀同学的平均分输出的算法(规定90分以上为优秀),画出程序框图,并设计程序解程序框图如下:程序为:S0M0i1WHILEi90 THEN SSx MM1END IF ii1WENDPS/MPRINT PEND探究提高在解决实际问题时,要正确理解其中的算法思想,根据题目写出其关系式,再写出相应的算法在循环语句中,也可以嵌
15、套条件语句,甚至是循环语句,此时需要注意嵌套这些语句需要保证语句的完整性,否则就会造成程序无法执行变式训练3 (1)阅读下面两个算法语句:i1WHILEi*(i1)20ii1WENDPRINT“i”;iEND图1i1 DOii1LOOPUNTILi*(i1)20PRINT“i”;iEND图2执行图1中语句的结果是输出_ i4_;执行图2中语句的结果是输出_ i2_(2)如果程序执行后输出的结果是990,那么在程序中UNTIL后面的“条件”应为_ _i9(或i8)_ _i11S1 DOSS*iii1LOOP UNTIL条件PRINTSEND(3)下列程序执行后输出的结果是_990_试题:写出计算
16、的一个算法程序错解程序如下:S0i1WHILEi SS ii1ENDWHILEPRINTS解析:(1)计算的是一个累加算式,所以要用到循环语句;(2)累加次数为100,所以条件应为i100;(3)此解法的错误在于循环起始终止条件不正确,实际上,在循环结构中,引入循环变量i,一是为了计数,二是为了控制循环,使程序执行后输出结果与实际结果一致本题中,循环条件应为i100,且后两行格式有误程序如下:S0i1 WHILEi100SSii1WENDPRINTSEND方法与技巧1输出语句是任何一个程序必不可少的语句2赋值语句是一种重要的基本语句,也是一个程序必不可少的语句利用赋值语句可以实现两个变量值的互
17、换,方法是引进第三个变量3要区分条件语句的两种格式:IFTHENELSE格式和IFTHEN格式4条件语句一般用在需要对条件进行判断的算法设计中,如判断一个数的正负,确定两个数的大小等问题都要用到条件语句5循环语句有“直到型”与“当型”两种,要区别两者的异同,主要解决遇到需要反复执行的任务时,用循环语句编写程序一、选择题1以下程序中,输出时A的值是输入时A的值的 () INPUTA A1倍AAA B2倍A2 A C3倍PRINT A D4倍END2当a3时,下面的程序段输出的结果是 ()开始输入输出结束是是否否IF a10 THEN A9 y2*a B3 ELSE C10 y=a*a D6 PR
18、INT y END3右面的程序框图,如果输入三个实数a,b,c,要求输出这三个数中最大的数,那么在空白的判断框中,应该填入下面四个选项中的( )ABCD4下面的程序语句输出的结果S为 ()i1 A17WHILE i8 B19S2*i+3 C21i=i+1 D23WENDPRINT SEND 二、填空题5如下图,程序运算输出的结果是_ d16_a5b3c(ab)/2dc*cPRINT“d”,dEND6根据所给出的算法语句,可求得f(3)f(2)的值为_8_INPUTxIFx0THENf(x)4*xELSEf(x)=END IFPRINT f(x)END7根据如图所示的程序,当输入a,b分别为2,
19、3时,最后输出的m的值为_3_j=1 n=0WHILE jbTHEN maELSE mbEND IFPRINT mEND8根据如图所示的程序,最后输出的 n的值为_3_三、解答题9设计算法,根据输入的x的值,计算y 的值,写出计算程序解算法如下:第一步,输入x;第二步,如果x2.5,则yx21;第三步,如果x2.5,则yx21;第四步,输出y.程序如下:INPUT“x”;xIFx2.5THENyx21ELSEyx21ENDIFPRINT“y”;yEND一、选择题1读程序INPUTxIFx0THEN ySQR(x)ELSE y(0.5)x1ENDIFPRINTyEND当输出的y的范围大于1时,则
20、输入的x值的取值范围是 ()A(,1) B(1,)C(,1)(1,) D(,0)(0,)2.下面方框中为一个求20个数的平均数的程序,则在横线上应填的语句为 ()i1S0DOINPUT xSSxii1LOOPUNTIL aS/20PRINT aENDAi20 Bi20 Di2 000ii1PRINTiENDA42 B43 C44 D45二、填空题4下述程序的表达式为_ S_i1S0WHILEi2 THEN y3x2ELSE IFx0THEN y2ELSE yx/2 END IFEND IFPRINT y1END7阅读下面程序:其中程序(1)的输出结果是a_5_,b_9_,c_2_.程序(2)的
21、输出结果是x_.a6b2IFa0THEN aaENDIFbb2 aabca2*ba=a/cb=b*c+1PRINT a,b,cEND(1)(3) s=0 i=1while i=10 IF i MOD 5 0 THEN s=s+1 ELSE s=s+i END IF i=i+1 wendPRINT sEND程序运行结果是 23 xi1WHILEi100 AND x1000 THEN a=x100 b=(x-a*100)10c=x mod 10 x=100*c+10*b+a PRINT xEND IF END 上述程序如果输入x的值是351,则运行结果是 153 (4).INPUT MOD 10PRINT END若,则以上程序运行后的结果是 ()A.0.5 B.3 C. 1.5 D.4.5三、解答题8求1的值,画出程序框图,并编写程序解 程序: 程序框图S0 n1 i1 WHILEi10 SS1/n nn2 ii1 WEND PRINT SEND