算法初步 算法的含义、程序框图 (一)了解算法的含义,了解算法的思想。 (二)理解程序框图的三种基本逻辑结构:顺序结构、条件结构和循环结构。  算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础。算法初步虽然是新课标增加的内容,但与前面的知识有着密切的联系,并且与实际问题的联系也非常密切。因此,在高考中算法初步知识将与函数、数列、三角、概率、实际问题等知识点进行整合,是高考试题命制的新“靓”点。这样试题就遵循了“在知识网络交汇处设计试题”的命制原则,既符合高考命题“能力立意”的宗旨,又突出了数学的学科特点。这样做,可以从学科的整体高度和思维价值的高度考虑问题,可以揭示数学各知识之间得到的内在联系,可以使考查达到必要的深度。 考查形式与特点是: (1)选择题、填空题主要考查算法的含义、流程图、基本算法语句等内容,一般在每份试卷中有1~2题,多为中档题出现。 (2)在解答题中可通过让学生读程序框图去解决其它问题,此类试题往往是与数列题结合在一起,具有一定的综合性,可以考查学生的识图能力及对数列知识的掌握情况. 第1课时 算法的含义 1.算法的概念:对一类问题的机械的、统一的求解方法称为算法。 2.算法的特性:(1)有限性 (2)确定性 例1.给出求1+2+3+4+5的一个算法。 解:算法1 第一步:计算1+2,得到3 第二步:将第一步中的运算结果3与3相加,得到6 第三步:将第二步中的运算结果6与4相加,得到10 第四步:将第三步中的运算结果10与5相加,得到15 算法2 第一步:取n=5 第二步:计算 第三步:输出运算结果 变式训练1.写出求的一个算法. 解:第一步:使,; 第二步:使; 第三步:使; 第四步:使; 第五步:使; 第六步:如果,则返回第三步,否则输出. 例2. 给出一个判断点P是否在直线y=x-1上的一个算法。 解:第一步:将点P的坐标带入直线y=x-1的解析式 第二步:若等式成立,则输出点P在直线y=x-1上 若等式不成立,则输出点P不在直线y=x-1上 变式训练2.任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做出判断. 分析:(1)质数是只能被1和自身整除的大于1的整数. (2)要判断一个大于1的整数n是否为质数,只要根据质数的定义,用比这个整数小的数去除n,如果它只能被1和本身整除,而不能被其它整数整除,则这个数便是质数. 解:算法:第一步:判断n是否等于2.若n=2,则n是质数;若n>2,则执行第二步. 第二步:依次从2~(n-1)检验是不是n的因数,即整除n的数.若有这样的数,则n不是质数;若没有这样的数,则n是质数. 例3. 解二元一次方程组:  分析:解二元一次方程组的主要思想是消元的思想,有代入消元和加减消元两种消元的方法,下面用加减消元法写出它的求解过程. 解:第一步:② - ①×2,得: 5y=3; ③ 第二步:解③得 ; 第三步:将代入①,得 . 变式训练3.设计一个算法,使得从10个确定且互不相等的数中挑选出最大的一个数. 解:算法1 第一步:假定这10个数中第一个是“最大值”; 第二步:将下一个数与“最大值”比较,如果它大于此“最大值”,那么就用这个数取代“最大值”,否则就取“最大值”; 第三步:再重复第二步。 第四步:在这十个数中一直取到没有可以取的数为止,此时的“最大值”就是十个数中的最大值。 算法2 第一步:把10个数分成5组,每组两个数,同组的两个数比较大小,取其中的较大值; 第二步:将所得的5个较大值按2,2,1分组,有两个数的组组内比较大小,一个数的组不变; 第三步:从剩下的3个数中任意取两个数比较大小,取其中较大值,并将此较大值与另一个数比较,此时的较大值就是十个数中的最大值。 例4. 用二分法设计一个求方程的近似根的算法. 分析:该算法实质是求的近似值的一个最基本的方法. 解:设所求近似根与精确解的差的绝对值不超过0.005,算法: 第一步:令.因为,所以设x1=1,x2=2. 第二步:令,判断f(m)是否为0.若是,则m为所求;若否,则继续判断大于0还是小于0. 第三步:若,则x1=m;否则,令x2=m. 第四步:判断是否成立?若是,则x1、x2之间的任意值均为满足条件的近似根;若否,则返回第二步. 变式训练4.一个人带三只狼和三只羚羊过河,只有一条船,同船可以容纳一个人和两只动物.没有人在的时候,如果狼的数量不少于羚羊的数量,狼就会吃掉羚羊.请设计过河的算法. 解:算法或步骤如下: S1 人带两只狼过河; S2 人自己返回; S3 人带一只羚羊过河; S4 人带两只狼返回; S5 人带两只羚羊过河; S6 人自己返回; S7 人带两只狼过河; S8 人自己返回; S9 人带一只狼过河. 第2课时 程序框图 (1)程序构图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形。 一个程序框图包括以下几部分:表示相应操作的程序框;带箭头的流程线;程序框外必要文字说明。 (2)构成程序框的图形符号及其作用 程序框 名称 功能   起止框 表示一个算法的起始和结束,是任何流程图不可少的。   输入、输出框 表示一个算法输入和输出的信息,可用在算法中任何需要输入、输出的位置。   处理框 赋值、计算,算法中处理数据需要的算式、公式等分别写在不同的用以处理数据的处理框内。   判断框 判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”。  学习这部分知识的时候,要掌握各个图形的形状、作用及使用规则,画程序框图的规则如下: 1、使用标准的图形符号。2、框图一般按从上到下、从左到右的方向画。3、除判断框外,大多数流程图符号只有一个进入点和一个退出点。判断框具有超过一个退出点的唯一符号。4、判断框分两大类,一类判断框“是”与“否”两分支的判断,而且有且仅有两个结果;另一类是多分支判断,有几种不同的结果。5、在图形符号内描述的语言要非常简练清楚。 (3)、算法的三种基本逻辑结构:顺序结构、条件结构、循环结构 顺序结构:顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。 顺序结构在程序框图中的体现就是用流程线将程序框自上而 下地连接起来,按顺序执行算法步骤。如在示意图中,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; 第五步:计算i+1并将结果代替i; 第六步:转去执行第三步; 第七步:输出sum的值并结束算法. 变式训练2:阅读右面的流程图, 输出max的含义是___________________________。 解: 求a,b,c中的最大值 例3. 某快递公司规定甲、乙两地之间物品的托运费 用根据下列方法计算: f= 其中(单位:元)为托运费,ω为托运物品的重量 (单位:千克),试写出一个计算费用算法,并画出相应的程序框图. 解:算法: 第一步:输入物品重量ω; 第二步:如果ω≤50,那么f =0.53ω,否则,f = 50×0.53+(ω-50)×0.85; 第三步:输出物品重量ω和托运费f. 相应的程序框图.  变式训练3:程序框图如下图所示,则该程序框图表示的算法的功能是 解::求使成立的最小正整数n的值加2。 例4.下面是计算应纳税所得额的算法过程, 其算法如下: S1 输入工资x(x<=5000); S2 如果x<=800,那么y=0; 如果8000 THEN[来源:] y=1 ELSE IF x=0 THEN y=0 ELSE y=-1 END IF END IF PRINT “y的值为:”;y END 算法语言单元测验题 一、选择题 1.我们已学过的算法有求解一元二次方程的求根公式,加减消元法求二元一次方程组解,二分法求函数零点等.对算法的描述有①对一类问题都有效;②对个别问题有效;③计算可以一步步地进行,每一步都有惟一的结果;④是一种通法,只要按部就班地做,总能得到结果.以上正确描述算法的有 ( ) A.1个 B.2个 C.3个 D.4个 2.右面程序的输出结果为( )程序: A. 3,4 B. 7,7 C. 7,8 D. 7,11 3.算法 S1 m=a S2 若b2,则执行S3 s3 依次从2到n一1检验能不能整除n,若不能整除n,则输出n。 满足上述条件的是 ( ) A.质数 B.奇数 C.偶数 D.约数 5.右图输出的是 A.2005 B.65 C.64 D.63 6.给出以下算法: S1 i=3,S=0 S2 i=i+2 S3 S=S+i S4 S≥2009?如果S≥2009,执行S5;否则执行S2 S5 输出i S6 结束 则算法完成后,输出的i的值等于 。 7.将两个数A=9,B=15交换使得A=15,B=9下列语句正确的一组是( ) A. B. C. D. 8.计算机执行下面的程序段后,输出的结果是( ) A. B. C. D. 9.读程序 甲:INPUT i=1 乙:INPUT I=1000 S=0 S=0 WHILE i≤1000 DO S=S+i S=S+i i=i+l I=i一1 WEND Loop UNTIL i<1 PRINT S PRINT S END END 对甲乙两程序和输出结果判断正确的是 ( ) A.程序不同结果不同 B.程序不同,结果相同 C.程序相同结果不同 D.程序同,结果同 10.阅读右边的程序框图,若输入的n是100, 则输出的变量S和T的值依次是( ) A.2500,2500 B.2550,2550 C.2500,2550 D.2550,2500 二、填空题 11.上图程序框图可用来估计π的值(假设函数CONRND(-1,1)是产生随机数的函数,它能随机产生区间(-1,1)内的任何一个实数)。如果输入1000,输出的结果为788,则运用此方法估计的π的近似值为 (保留四位有效数字)。 12.给出以下算法: S1 i=3,S=0 S2 i=i+2 S3 S=S+i S4 S≥2009?如果S≥2009,执行S5;否则执行S2 S5 输出i S6 结束 则算法完成后,输出的i的值等于 。 13.一个算法的程序框图如下图所示,若该程序输出的结果为,则判断框中应填入的条件是 。 14.下面程序输出的n的值是______________. 三、解答题 15.某市公用电话(市话)的收费标准为:分钟之内(包括分钟)收取元;超过分钟部分按元/分钟加收费。设计一个程序,根据通话时间计算话费 16.写出求m=60和n=33的最大公约数的算法和程序框图. 17.有10个互不相等的数,写出找出其中一个最大数的算法和程序 18.假定在银行中存款10000元,按11.25%的利率,一年后连本带息将变为11125元,若将此款继续存人银行,试问多长时间就会连本带利翻一番?请用直到型和当型两种语句写出程序. 19..用循环语句描述1++++…+. 20.目前高中毕业会考中,成绩在85~100为“A”,70~84为“B”,60~69为“C”,60分以下为“D”.编制程序,输入学生的考试成绩(百分制,若有小数则四舍五入),输出相应的等级. 算法语言测试题答案 一、选择题 1.C 2.D 3.B 4.A 5.D 6.解析:根据算法可知,i的值in构成一个等差数列{in},S的值是数列{in}相应的前n项的和,且i1=5,d=2,所以in=2n+1。又S≥2009,所以n≥43,故in=89,所以输出的i的值为89。7.B 8.B 把赋给变量,把赋给变量,把赋给变量,把赋给变量,输出 9.B 10.解析:由程序框图知,S=100+98+96+……+2=2550 T=99+97+95+……+1=2500,选D 点评:该题主要考查算法流程图、等差数列求和等基础知识,以及算法思想、数据处理能力、语言转换能力。本题采用直到型循环语句描述算法,解题的关键是循环体中两个n=n-1的理解,明确循环一次后n的值就减少了2。 二、填空题 11.解析:本题转化为用几何概型求概率的问题。根据程序框图知,如果点在圆x2+y2=1内,m就相加一次;现N输入1000,m起始值为0。输出结果为788,说明m相加了788次,也就是说有788个点在圆x2+y2=1内。设圆的面积为S1,正方形的面积为S2,则概率P==[来源:] ∴π=4p=4×≈3.152 点评:本题是算法框图与几何概型的整合,融合自然,具有创新性,有力地考查了基础知识和逻辑思维能力,同时又能体会到求无理数近似值的一种算法,可培养学生用数学的意识。 12.解析:根据算法可知,i的值in构成一个等差数列{in},S的值是数列{in}相应的前n项的和,且i1=5,d=2,所以in=2n+1。又S≥2009,所以n≥43,故in=89,所以输出的i的值为89。 13.解析:由循环体可知,当sum=1时,s=0+;当sum=2时,s=+=,……,当sum=4时,s=+=,因此,判断框中应填:“i<5?”或“sum<4?” 点评:本题设计角度比较新颖,具有探索性,同时答案又具开放性。此题融算法、数列求和于一体,虽属常规题,但由于问法不同,有力考查学生对数列、框图等知识的掌握情况以及分析问题和解决问题的能力 14.3 三、解答题 15.解:               16.【解法一】 S1:以n 除m,得余数r=27 S2:判断r是否为零,若r=0,则n为解,若r≠0,则重复S3操作(r=27) S3:以n作为新的m(33),以r作为新的,l(27),求新的m/n的余数r=6 S4:判断r是否为零,若r=O,则前一个n即为解,否则要继续S5操作 S5:以n 作为新的m(即m=27),以r作为新的n(即n=6),求新的余数r=3 S6:判断上一个r 是否为零,若r=O,则前一个n即为解,否则要执行S7操作 S7:以n作为新的m(m =6),r作为新的n(n=3),求新的r= O S8:判断r是否为零,这里r=O,算法结束,得,n=3是60与33的最大公约数程序框图略 【解法二】 S1:输入60,33,将m=60,n=33 S2:求m/n余数r S3:若r=0,则n就是所求最大公约,输出n,若r≠O,执行下一步 S4:使n 作为新的m,使r作为新的n,执行S2 程序框图(当型) 【解法三】 S1:令m=60,n=33 S2:重复执行下面序列,直到求得r=0为止 S3:求m/n的余数r S4:令m=n,n=r S5:输出m (直到型) 17.【解】(一)算法 S1:输入一个数,放在MAX中 S2:i=1 S3:输入第1个数,放入x中 S4:若x>MAX,则MAX=z S5: i=i+1 S6:若i≤9,返回S3继续执行,否则停. (二)程序框图[来源: ] 18.【解】 19.解:算法分析: 第一步是选择一个变量S表示和,并赋给初值0,再选取一个循环变量i,并赋值为0; 第二步开始进入WHILE循环语句,首先判断i是否小于9; 第三步为循环表达式(循环体),用WEND来控制循环; 第四步用END来结束程序. 可写出程序如下: S=0 i=0 WHILE i<=9 S=S+1/2^i i=i+1 WEND PRINT S END 运行该程序,输出: S=1.9980 20.答案: I=1 WHILE I=1 INPUT “shu ru xue sheng cheng ji a=”;a IF a<60 THEN PRINT “D” ELSE IF a<70 THEN PRINT “C” ELSE IF a<85 THEN PRINT “B” ELSE PRINT “A” END IF END IF END IF INPUT “INPUT 1,INPUT 2”;I WEND END

【点此下载】