高考数学《算法初步》专题程序框图学案(1)程序构图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。
一个程序框图包括以下几部分:表示相应操作的程序框;带箭头的流程线;程序框外必要文(2)构成程序框的图形符号及其作用程序框名称功能起止框表示一个算法的起始和结束,是任何流程图不可少的。
输入、输出框表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置。
处理框赋值、计算,算法中处理数据需要的算式、公式等分别写在不同的用以处理数据的处理框内。
判断框判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”。
学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下:1、使用标准的图形符号。
2、框图一般按从上到下、从左到右的方向画。
3、除判断框外,大多数流程图符号只有一个进入点和一个退出点。
判断框具有超过一个退出点的唯一符号。
4、判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。
5、在图形符号内描述的语言要非常简练清楚。
(3)、算法的三种基本逻辑结构:顺序结构、条件结构、循环结构顺序结构:顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤。
如在示意图中,A框和B 框是依次执行的,只有在执行完A框指定的操作后,才能接着执行B框所指定的操作.典型例题A B基础过关例1. 如果学生的成绩大于或等于60分,则输出“及格”,否则输出“不及格”.用程序框图表示这一算法过程.解:变式训练1:画出解不等式ax+b>0(b≠0)的程序框图.解:例2. 设计一个计算1+2+3+…+100的值的算法,并画出相应的程序框图.(要求用循环结构)解:第一步:设i的值为1;第二步:设sum的值为0;第三步:如果i≤100执行第四步,否则转去执行第七步;第四步:计算sum+i并将结果代替sum;例2.变式训练1开始输入a,b,ca>bmax:=b max:=ac>maxmax:=c输出max是否否是第五步:计算i+1并将结果代替i;第六步:转去执行第三步;第七步:输出sum的值并结束算法.变式训练2:阅读右面的流程图,输出max的含义是___________________________。
解:求a,b,c中的最大值例3. 某快递公司规定甲、乙两地之间物品的托运费用根据下列方法计算:f=⎩⎨⎧>⨯-+⨯50≤).50(85.0)50(53.050),(53.0ωωωω其中f(单位:元)为托运费,ω为托运物品的重量(单位:千克),试写出一个计算费用f算法,并画出相应的程序框图.解:算法:第一步:输入物品重量ω;第二步:如果ω≤50,那么f =0.53ω,否则,f = 50×0.53+(ω-50)×0.85;第三步:输出物品重量ω和托运费f.相应的程序框图.变式训练3:程序框图如下图所示,则该程序框图表示的算法的功能是解::求使10000)(531≥⨯⋅⋅⋅⨯⨯⨯成立的最小正整数n的值加2。
开始输入x(x<=5000)x<=800←yx<=1300)800(05.0-←xy)1300(1.025-+←xy输出yYYNN例4.下面是计算应纳税所得额的算法过程, 其算法如下:S1 输入工资x(x<=5000); S2 如果x<=800,那么y=0;如果800<x<=1300,那么 y=0.05(x-800); 否则 y=25+0.1(x-1300)S3 输出税款y,结束。
请写出该算法的流程图. 解:流程图如上右。
变式训练4:下面是求解一元二次方程)0(02≠=++a c bx ax 的流程图,根据题意填写: (1) ;(2) ;(3) 。
解:(1)0∆<(2)21224242b b acx a b b ac x a-+-←---←(3)输出12,x x第3课时 基本算法语句输入语句 (1)输入语句的一般格式第图形计算器格式INPUT “提示内容”;变量INPUT “提示内容”,变量基础过关 变式训练3(2)输入语句的作用是实现算法的输入信息功能;(3)“提示内容”提示用户输入什么样的信息,变量是指程序在运行时其值是可以变化的量;(4)输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式;(5)提示内容与变量之间用分号“;”隔开,若输入多个变量,变量与变量之间用逗号“,”隔开。
输出语句(1)输出语句的一般格式(2)输出语句的作用是实现算法的输出结果功能;(3)“提示内容”提示用户输入什么样的信息,表达式是指程序要输出的数据;(4)输出语句可以输出常量、变量或表达式的值以及字符。
赋值语句(1)赋值语句的一般格式(2)赋值语句的作用是将表达式所代表的值赋给变量;(3)赋值语句中的“=”称作赋值号,与数学中的等号的意义是不同的。
赋值号的左右两边不能对换,它将赋值号右边的表达式的值赋给赋值号左边的变量;(4)赋值语句左边只能是变量名字,而不是表达式,右边表达式可以是一个数据、常量或算式;(5)对于一个变量可以多次赋值。
条件语句:1、条件语句的一般格式有两种:(1)IF —THEN —ELSE 语句;(2)IF —THEN 语句。
2、IF —THEN —ELSE 语句IF —THEN —ELSE 语句的一般格式为图1,对应的程序框图为图2。
图1 图2WHILE 语句(1)WHILE 语句的一般格式是 对应的程序框图是PRINT “提示内容”;表达式图形计算器格式Disp “提示内容”,变量变量=表达式图形计算器格式表达式 变量IF 条件 THEN语句1 ELSE语句2 END IF否是 满足条件?语句1语句2循环体(2)当计算机遇到WHILE 语句时,先判断条件的真假,如果条件符合,就执行WHILE 与WEND 之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。
这时,计算机将不执行循环体,直接跳到WEND 语句后,接 例1. 用描点法作函数3024233+-+=x x x y的图象时,需要求出自变量和函数的一组对应值,编写程序,分别计算当x=-5,-4,-3,-2,-1,0,1,2,3,4,5时函数值。
解:程序:INPUT“x=”;x3024233+*-∧*+∧=x x x yPRINT x PRINT y END变式训练1:编写程序,计算一个学生数学,语文,英语三门课的平均成绩。
解:程序:INPUT“Maths=” ;a INPUT“Chjinese=” ;b INPUT“English=” ;cPRINT “The average=”;(a+b+c)/3 END例2. 儿童乘坐火车时,若身高不超过1.1 m ,则不需买票;若身高超过1.1 m 但不超过1.4 m ,则需买半票;若身高超过1.4 m ,则需买全票.试设计一个买票的算法,并画出相应的程序框图及程序。
解:是否买票,买何种票,都是以身高作为条件进行判断的,此处形成条件结构嵌套. 程序框图是:典型例题WHILE 条件 循环体 WENDINPUT tIF t<= 4 THEN c=0.2 ELESc=0.2+0.1(t -3) END IF PRINT c END变式训练2 i=1WHILE i<8 i=i+2 s=2※I+3 WEND PRINT s END变式训练3程序是:INPUT “请输入身高h (米):”;h IF h<=1.1 THEN PRINT “免票” ELSEIF h<=1.4 THEN PRINT “买半票” ELSEPRINT “买全票” END IF END IF END变式训练2:若输入8时,则下图程序执行后输出的结果是 解:0.7例3. 上图程序运行后输出的结果为 ( ) A. 50 B. 5 C. 25 D. 0 解:D.a=0 j=1WHILE j<=5 a=(a+j) MOD 5 j=j+1 WEND PRINT a END 例3变式训练3:上图程序运行后的输出结果为 ( ) A.17 B.19 C.21 D.23 解:C.例4.意大利数学家菲波拉契,在1202年出版的一书里提出了这样的一个问题:一对兔子饲养到第二个月进入成年,第三个月生一对小兔,以后每个月生一对小兔,所生小兔能全部存活并且也是第二个月成年,第三个月生一对小兔,以后每月生一对小兔.问这样下去到年底应有多少对兔子? 试画出解决此问题的程序框图,并编写相应的程序.解: 分析: 根据题意可知,第一个月有1对小兔,第二个月有1对成年兔子,第三个月有两对兔子,从第三个月开始,每个月的兔子对数是前面两个月兔子对数的和,设第N 个月有两F 对兔子,第N -1个月有S 对兔子,第N -2个月有Q 对兔子,则有F=S+Q,一个月后,即第N+1个月时,式中变量S 的新值应变第N 个月兔子的对数(F 的旧值),变量Q 的新值应变为第N -1个月兔子的对数(S 的旧值),这样,用S+Q 求出变量F 的新值就是N+1个月兔子的数,依此类推,可以得到一个数序列,数序列的第12项就是年底应有兔子对数,我们可以先确定前两个月的兔子对数均为1,以此为基准,构造一个循环程序,让表示“第×个月的I 从3逐次增加1,一直变化到12,最开始输出F 结束I =I +1 Q =S S =F F =S +QI ≤12I =3S =1 Q =1 NY S=1 Q=1 I =3WHILE I <=12 F=S+Q Q=S S=F I =I +1 WEND PRINT F END变式训练4:写出已知函数⎪⎩⎪⎨⎧<-=>=).0(1),0(0),0(1x x x y 输入x 的值,求y 的值程序.解:INPUT “请输入x 的值:”;x IF x>0 THEN y=1 ELSEIF x=0 THEN y=0 ELSE y=-1 END IF END IFPRINT “y 的值为:”;y END。