高三数学算法初步
- 格式:pdf
- 大小:613.43 KB
- 文档页数:9
【知识梳理】1.算法的含义2.算法的特征特征具体内容确定性算法中的每一步应该是确定的,并且能有效地执行且得到确定的结果,而不应当是模棱两可的正确性和顺序性算法从初始步骤开始,分为若干明确的步骤,上一步是下一步的前提,只有执行完上一步,才能执行下一步有限性一个算法必须在执行完有限步之后结束,而不能是无限的不唯一性求解某个问题的算法不一定是唯一的,一个问题可以有不同的算法普遍性很多具体的问题都可以设计合理的算法去解决;写出的算法必须能解决一类问题3.算法与计算机的关系计算机解决任何问题都要依赖于算法,只有将解决问题的过程分解为若干个明确的步骤,即算法,并用计算机能够接受的“语言”准确地描述出来,计算机才能够解决问题.【常考题型】题型一、算法的概念【例1】(1)下列说法正确的是()A.算法就是某个问题的解题过程B.算法执行后可以产生不同的结果C.解决某一个具体问题算法不同,则结果不同D.算法执行步骤的次数不可以很大,否则无法实施[解析]选项B正确,例如:判断一个整数是否为偶数,结果为“是偶数”和“不是偶数”两种;选项A,算法不能等同于解法;选项C,解决某一个具体问题算法不同,但结果应相同;选项D,算法可以为很多次,但不可以无限次.[答案] B(2)下列叙述不能称为算法的是()A.从北京到上海先乘汽车到飞机场,再乘飞机到上海B.解方程4x+1=0的过程是先移项再把x的系数化成 1C.利用公式S=πr2计算半径为2的圆的面积得π×22D.解方程x2-2x+1=0[解析]选项A,B给出了解决问题的方法和步骤,是算法;选项C是利用公式计算也属于算法;选项D只提出问题没有给出解决的方法,不是算法.[答案] D【类题通法】理解算法的关键点(1)算法实际上是解决问题的一种程序性方法,它通常解决某一个或一类问题,用算法解决问题,体现了从特殊到一般的数学思想.(2)判断一个问题是否有算法,关键看是否有解决某一类问题的程序或步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.【对点训练】计算下列各式中的S值,能设计算法求解的是()①S=2+4+6+…+1 000;②S=2+4+6+…+1 000+…;③S=2+4+6+…+2n(n≥1,n∈N).A.①②B.①③C.②③D.①②③解析:选B由算法的有限性知②不正确,而①③都可通过有限的步骤操作,输出确定结果.题型二、算法的设计【例2】(1)早上从起床到出门需要洗脸刷牙(5 min)、刷水壶(2 min)、烧水(8 min)、泡面(3 min)、吃饭(10 min)、听广播(8 min)几个步骤.从下列选项中选出最好的一种算法() A.第一步洗脸刷牙、第二步刷水壶、第三步烧水、第四步泡面、第五步吃饭、第六步听广播B.第一步刷水壶、第二步烧水同时洗脸刷牙、第三步泡面、第四步吃饭、第五步听广播C.第一步刷水壶、第二步烧水同时洗脸刷牙、第三步泡面、第四步吃饭同时听广播D.第一步吃饭同时听广播、第二步泡面、第三步烧水同时洗脸刷牙、第四步刷水壶[解析]A×所用时间为36分钟B×所用时间为31分钟C√所用时间为23分钟D×不符合日常生活规律[答案] C(2)写出求1+2+3+4+5+6的一个算法.[解]算法一:第一步,计算1+2,得到 3.第二步,将第一步中的运算结果3与3相加,得到 6.第三步,将第二步中的运算结果6与4相加,得到10.第四步,将第三步中的运算结果10与5相加,得到15.第五步,将第四步中的运算结果15与6相加,得到21.算法二:第一步,将原式变形为(1+6)+(2+5)+(3+4)=7×3.第二步,计算7×3.第三步,得到运算结果.算法三:第一步,取n=6.第二步,计算n n+12.第三步,得到运算结果.【类题通法】设计具体问题的算法的步骤设计一个具体问题的算法,通常按以下步骤:(1)认真分析问题,找出解决此题的一般数学方法;(2)借助有关变量或参数对算法加以表述;(3)将解决问题的过程划分为若干步骤;(4)用简练的语言将这个步骤表示出来.【对点训练】1.求1×3×5×7×9×11的值的一个算法如下,请补充完整.第一步,求1×3得结果 3.第二步,将第一步所得结果3乘以5,得到结果15.第三步,_________________________________________________________.第四步,再将第三步所得结果105乘以9,得到结果945.第五步,再将第四步所得结果945乘以11,得到结果10 395,即为最后结果.解析:依据算法功能可知,第三步应为“再将第二步所得结果15乘以7,得到结果105”.答案:再将第二步所得结果15乘以7,得到结果1052.写出解方程x2-2x-3=0的一个算法.解:算法一:第一步,移项,得x2-2x=3.①第二步,①式两边同时加上1并配方,得(x-1)2=4.②第三步,②式两边开方,得x-1=±2.③第四步,解③得x=3,或x=-1.算法二:第一步,计算方程的判别式并判断其符号:Δ=22+4×3=16>0.第二步,将a=1,b=-2,c=-3代入求根公式x=-b±b2-4ac2a,得x1=3,x2=-1.题型三、算法的应用【例3】(1)结合下面的算法:第一步,输入x.第二步,判断x是否小于0.若是,则输出x+2,否则执行第三步.第三步,输出x-1.当输入的x的值为-1,0,1时,输出的结果分别为()A.-1,0,1B.-1,1,0C.1,-1,0 D.0,-1,1[解析]根据x值与0的关系,选择执行不同的步骤.当x=-1时,输出x+2,即输出1;当x=0时,输出x-1,即输出-1;当x=1时,输出x-1,即输出0.[答案] C(2)设计一个判断直线Ax+By+C=0与圆(x-x0)2+(y-y0)2=r2的位置关系的算法.[解]算法如下:第一步,输入圆心坐标(x0,y0),直线方程的系数A、B、C和半径r.第二步,计算z1=Ax0+By0+C.第三步,计算z2=A2+B2.第四步,计算d=|z1|z2.第五步,若d>r,则输出“相离”;若d=r,则输出“相切”;若d<r,则输出“相交”.【类题通法】数学中两种算法应用的处理方法(1)数值性计算问题,如解方程(组)、解不等式(组)或套用公式判断性问题,一般通过数学模型借助数学计算方法分解成清晰的步骤,并条理化.(2)非数值性问题,如查找、变量代换、文字处理等非数值性计算问题,设计算法时,首先建立过程模型,然后根据过程设计步骤,完成算法.【对点训练】已知A(x1,y1),B(x2,y2),写出求直线AB的斜率的一个算法.解:算法如下:第一步,输入x1,y1,x2,y2.第二步,计算Δx=x2-x1,Δy=y2-y1.第三步,若Δx=0,则输出“斜率k不存在”;否则,执行第四步.第四步,计算k=Δy Δx.第五步,输出斜率k.【练习反馈】1.下列关于算法的说法中正确的个数有()①求解某一类问题的算法是唯一的;②算法必须在有限步骤操作之后停止;③x2-x>2是一个算法;④算法执行后一定产生确定的结果;⑤对于像“喝一碗水”这类含有动作的语言能出现在算法的一个步骤中.A.1个B.2个C.3个D.4个解析:选B因为x2-x>2仅仅是一个数学问题,不能表达一个算法,所以③是错误的.依据算法的多样性(不唯一性)知①错误,由算法的有限性知②正确,由于算法具有可执行性,算法的每一步必须是计算机能执行的,所以⑤是错误的,正确的有②④.2.已知直角三角形两直角边长为a、b,求斜边长c的一个算法分下列三步:()①计算c=a2+b2;②输入直角三角形两直角边长a,b的值;③输出斜边长c的值.其中正确的顺序是()A.①②③B.②③①C.①③②D.②①③解析:选D明确各步骤间的关系即可知D选项正确.3.输入一个x值,利用y=|x+1|求函数值的算法如下,请将所缺部分补充完整:第一步,输入x;第二步,________________________;第三步,当x<-1时,计算y=-x-1;第四步,输出y.解析:含绝对值的函数的函数值的算法要注意分类讨论思想的应用,本题中当x≥-1时y=x +1;当x<-1时y=-x-1,由此可完善算法.答案:当x≥-1时,计算y=x+1,否则执行第三步4.已知长方体的长、宽、高分别为a、b、c.写出求对角线长l的算法如下:第一步,输入长、宽、高a、b、c的值.第二步,计算l=a2+b2+c2的值.第三步,____________.将算法补充完整,横线处应填________________.解析:算法要有输出,故第三步应为输出结果l的值.答案:输出对角线长l的值5.设计一个算法,求表面积为16π的球的体积.解:算法一:第一步,取S=16π.第二步,计算R=S4π(由于S=4πR2).第三步,计算V=43πR3.第四步,输出运算结果.算法二:第一步,取S=16π.第二步,计算V=43π(S4π)3.第三步,输出运算结果.。
算法算法是高中数学课程中的新增内容,是中国数学课程内容的一个新特色.“算法”过程是指机械式地按照某种确定的步骤行事,通过一系列小的简单计算操作完成复杂计算的过程.算法的学习内容大致可分为三个步骤:用自然语言描述算法;精确刻画算法(程序框图);计算机实现执行算法(程序语言的描述过程).算法思想贯穿高中数学课程的相关部分.【知识要点】1.算法:算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤或序列能够解决一类问题.现代意义上的“算法”通常是指可以用计算机来解决的某一类问题的程序或步骤.2.程序框图程序框图:用一些通用的符号构成一张图来表示算法,这种图称为程序框图(程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形).用框图表示算法步骤的一些常用的图形符号:程序框名称功能终端框(起止框) 表示一个算法的起始和结束输入、输出框表示一个算法输入和输出的信息处理框(执行框) 赋值、计算判断框判断某一条件是否成立,成立时在出口处标明“是”,不成立时标明“否”↓→流程线(指向线) 指引流程图的方向连接点连接另一页或另一部分的框图程序框图的三种基本逻辑结构:顺序结构:描述的是最简单的算法结构,语句与语句之间、框与框之间按从上到下的顺序进行(如图9-1).图9-1条件分支结构:依据指定条件选择执行不同指令的控制结构(如图9-2).图9-2循环结构:根据指定条件决定是否重复执行一条或多条指令的控制结构(如图9-3).图9-33.几种基本算法语句任何一个程序设计语言中,都包含五种基本的算法语句,即输入语句、输出语句、赋值语句、条件语句、循环语句.输入语句和输出语句分别用来实现算法的输入信息、输出结果的功能;赋值语句是用来表明赋给某一个变量一个具体的确定值的语句;条件语句是处理条件分支逻辑结构的算法语句;循环语句是用来处理算法中的循环结构的语句.4.中国古代算法案例:更相减损之术、辗转相除法:求两个正数的最大公因数的方法.辗转相除法算法步骤:第一步:用两数中较大数除以较小数,求商和余数.第二步:用除数除以余数.第三步:重复第二步,直到余数为0.第四步,得出两数的最大公约数,即余数0之前的余数.更相减损术算法步骤:第一步:用较大数减去较小数,得到差.第二步:比较减数与差的大小,再用较大数减去较小数.第三步:重复第二步,直到差与减数相等为止.第四步:相等数即为最大公约数.割圆术:用正多边形的面积逐渐逼近圆面积的算法求圆周率π. 秦九韶算法:求一元多项式的值的一种方法,递推关系为),,2,1(10n k a x v v a v k n k kn=⎩⎨⎧+==-- 【复习要求】1.了解算法的含义,了解算法的思想.2.理解程序框图的三种基本逻辑结构:顺序结构、条件分支结构、循环结构.3.理解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句的含义.【例题分析】例1 如图(图9-4)所示,将一系列指令用框图的形式表示,箭头指向下一步的操作.请按照框图回答问题:图9-4(1)这个框图表示了怎样的算法?(2)输出的数是多少?【分析】由框图中的文字及图形符号表示的操作内容可知:此算法是“求1到50的和”,由此可以算出输出的数.解:(1)此框图表示的算法为:求1+2+3+…+50的和;(2)易知所求和为1275.【评析】程序框图主要包括三部分:表示相应操作的框,带箭头的流程线和框外必要的说明.读框图时要从这三个方面研究,流程线反映了命令执行的先后顺序,主要看箭头方向,框及内外的文字说明表明了操作内容.常用这种方式考察对算法的理解和应用.例2 (1)如图9-5所示的是一个算法的程序框图,已知a1=3,输出的结果为7,则a2的值为______.图9-5(2)如图9-6所示的是某个函数求值的程序框图,则满足该程序的函数解析式为_____.图9-6(3)如图9-7所示的是求某个数列和的程序框图,此程序输出的结果为_____.图9-7【分析】这三个小题的重点在于读懂框图.(1)只含有顺序结构,(2)含有条件分支结构,表明函数的定义域为R ,当x <0时,遵从解析式f (x )=3x -1,否则(即当x ≥0时),遵从解析式f (x )=2-5x ;(3)中有两个循环变量S 、I ,S 是累加变量,I 是计数变量;另外还要判断I 的奇偶性,以此决定是加还是减.解:(1)112=a ;(2)⎩⎨⎧≥-<-=)0(52)0(13)(x x x x x f ;(3)S =12-22+32-42+…+992-1002=-5050.【评析】题(1),只含有顺序结构,所表示的算法比较简单,只需按照框图箭头方向依次读出即可.题(2)含有条件分支结构,这是一个与分段函数有关的算法,框图中含有判断框.读包含有判断框的框图时,要特别重视判断框内的条件和框外的文字说明,对应的下一步操作会依条件不同而改变.题(3)含有循环结构,当解决一些有规律的科学计算问题,尤其是累加和累乘时,往往可以利用循环结构来实现算法.循环结构有两种,读包含有循环结构的框图时,除关注判断框内外的说明外,一般要从开始依顺序做几次循环,观察变量的变化规律来帮助读懂算法的含义.例3 (1)已知平面上的一点P 0(x 0,y 0)和直线l :Ax +By +C =0,求点P 0到直线l 的距离d ,并画出程序框图.(2)用条件分支结构写“已知三个数a 、b 、c ,找出其中最大数”的算法及框图.(3)写出求n131211++++的和的算法,画出程序框图,并写出相应程序(选做). 【分析】正确分析“算理”,才能选择恰当的算法结构,有条理的表达算法.(1)在已知点到直线距离公式的前提下,适合用顺序结构表示;(2)涉及比大小,必须用到条件分支结构;(3)中分母有规律的递增,可以引入累加变量S 和计数变量i ,且S =S +1/i 是反复进行的,可以用循环结构表示.解:(1)算法及框图为:S1 输入x 0,y 0;A ,B ,C ; S2 计算m =A 2+B 2;S3 计算n =Ax 0+By 0+C ; S4 计算mn d ||=; S5 输出d ;(2)算法及框图为:S1 输入a ,b ,c ; S2 令x =a ;S3 若b >x ,则令x =b ;否则,执行S4;S4 若c >x ,则令x =c ;否则,执行S5; S5 输出x ;(3)算法及框图为:S1 输入i =1,S =0; S2 当i ≤n 时,,1iS S += i =i +1;否则执行S3; S3 输出S ;程序如下; S =0For i =1:1:n S =S +1/i i =i +1 endprint(%io (2),S )【评析】书写算法时,一步一步的程序化步骤,即“算则”固然重要,但这些步骤的依据,即“算理”有着更基本的作用,“算理,,是“算则”的基础,“算则”是“算理”的表现.这三道小题由于算理不同,所蕴含的算法结构也不同.通过实例,模仿、操作、探索,经历通过设计程序框图表达解决问题的过程,可以更好的理解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句,体会和理解算法的含义,了解算法语言的基本构成.本例中涉及的“利用公式求点到直线的距离”、“实数排序求最值问题”、“求数列的和或积的问题”,还包括“二分法求函数零点”、“质数的判定”,“求π的近似值”等等,都是算法的典型案例,学习时要给予充分的重视.一般算法的表示方法并不唯一.不同的算法语言的书写形式是有差别的.本书所采用的是Scilab 语言,学习时要了解赋值语句、输入输出语句、if 语句、while 和for 语句的基本含义及表达方式,能够读懂语句表示的算法过程.例4 (1)用辗转相除法计算56和264的最大公约数时,需要做的除法次数是______. (2)用更相减损术求56和98的最大公约数时,操作如下:(98,56)(56,42)(42,14)(28,14)(14,14),由此可知两数的最大公约数为______.(3)用秦九韶算法求得多项式f (x )=x 6-2x 5+3x 3+4x 2-6x +5当x =2时函数值为______.解:(1)8216816240164015640564264+⨯=+⨯=+⨯=+⨯=所以最大公约数为8,需做的除法次数是4;(2)最大公约数为14; (3)33. 【评析】书上所涉及的古代基本算法案例包括:更相减损术与辗转相除法、秦九韶算法、割圆术.辗转相除法与更相减损术都是求最大公约数的方法,辗转相除法又叫欧几里得方法,计算上以除法为主,更相减损术以减法为主,计算次数上,前者相对较少,特别是两个整数相差较大时区别尤其明显;辗转相除法以余数为0结束,更相减损术则以减数与差相等结束.秦九韶算法的特点是把求n 次多项式的值转化为求n 个一次多项式的值,运算时只有加法和乘法,而且运算的次数比较少,求一个n 次多项式的值最多需要进行n 次加法、n 次乘法.割圆术是由中国古代数学家刘徽提出的,是当时计算圆周率比较先进的算法,“算理”明确,即用圆内接正多边形和外切正多边形逼近圆周率,重点是确定递推关系.例5 (09辽宁)某店一个月的收入和支出总共记录了N 个数据,其中收入记为正数,支出记为负数.该店用下边的程序框图计算月总收入S 和月净盈利V .那么在图中空白的判断框和处理框中,应分别填入下列四个选项中的( )A .A >0,V =S -TB .A <0,V =S -TC .A >0,V =S +TD .A <0,V =S +T【分析】本题要注意三点:a k 有正有负;S 为总收入,是所有正数的和;T 为总支出,是所有非正数的和.答案为C【评析】本题结合实际背景,强调算法的应用价值,是一种比较新的题型,应引起关注.练习9一、选择题1.任何一个算法都必须有的基本结构是( )A.顺序结构B.条件分支结构C.循环结构D.以上三个都要有2.下面给出对程序框图的几种说法:①任何一个程序框图都必须有起止框;②判断框有一个入口,有不止一个出口;③对于一个算法来说,判断框内的条件表达方式是唯一的;其中正确的有( )A.0个B.1个C.2个D.3个3.在算法的逻辑结构中,要求进行逻辑判断并根据结果进行不同处理的是哪种结构( ) A.顺序结构B.条件分支结构和循环结构C.顺序结构和条件分支结构D.顺序结构和循环结构4.算法:S1 输入n;S2 判断n是否是2;若n=2,则n满足条件,若n>2,则执行S3;S3 依次从2到n-1检验能否整除n,若都不能整除,则n满足条件;满足上述算法的n是( )A.奇数B.偶数C.质数D.合数二、填空题5.阅读下面两个程序框图,框图1输出的结果为______;框图2输出的结果为______.框图1 框图26.(08广东)阅读图9-8的程序框图,若输入m=4,n=6,则输出a=______,i=______.图9-8 图9-97.阅读图9-9的程序框图,若输入的n是100,则输出的变量S和T的值依次是______.8.“x=3*5”和“x=x+1”是某个程序中的先后相邻两个语句,下列说法中①“x=3*5”是将数值15赋给x,而不是普通运算“x=3*5=15”;②“x=3*5”可以写成“3*5=x”③语句“x=x+1”在执行时,“=”右边x为15,“=”左边x为16;正确的有______.三、解答题9.分别用辗转相除法和更相减损术求189和81的最大公约数.10.用循环语句书写求1+2+3+…+n>1000的最小自然数n的算法,画出程序框图,并写出相应的程序(选做).11.(09宁夏)为了测量两山顶MN间的距离,飞机沿水平方向在AB两点进行测量,MN在同一个铅垂平面内(如图).飞机能够测量的数据有俯角和AB间的距离,请你设计一个方案,包括:指出需要测量的数据(用字母表示,并在图中标出);用文字和公式写出计算MN间距离的步骤.专题九 算法参考答案练习9一、选择题1.A 2.C 3.B 4.C 二、填空题5.27,21 6.12,3 7.2550,2500 8.①③. 三、解答题9.解:辗转相除法:3278127281189 ⨯=⨯=,所以最大公约数为27.更相减损术:189-81=108,108-81=27,81-27=54,54-27=27, 所以最大公约数为27. 10.解:S1 输入S =0,i =1; S2 S =S +i ,i =i +1;S3 若S ≤1000,重复执行S2; 若 S >1000,输出i .S =0,i =1; While S ≤1000 S =S +i ; i =i +1; endprint (%io (2),i )11.解:如图(1)需要测量的数据有:A 点到M 、N 的俯角α1,β1;B 点到M 、N 的俯角α 2,β 2;A 、B 的距离d .11 / 11 (2)第一步:计算BM ,由正弦定理)sin(sin 211ααα+=d BM ; 第二步:计算BN ,由正弦定理)sin(sin 121βββ-=d BN ; 第三步:计算MN ,由余弦定理 )cos(22122αβ+++=⋅⋅BN BM BN BM MN .。
高中数学必修三算法初步知识点讲解前言在现代社会中,算法是极其重要的。
无论是互联网公司的搜索引擎、电子商务平台,还是金融市场的投资分析、量化交易,都离不开算法的支持。
因此,在高中阶段学习并掌握一些基础的算法,不仅能提高数学素养和思维能力,还有利于今后的学习和工作。
本文就是要介绍高中数学必修三中一些初步的算法知识点。
下面将分别从排序算法、查找算法和递推算法三个方面展开讲解,以帮助读者加深对算法的理解和掌握。
排序算法冒泡排序冒泡排序是一种基础的排序算法,其思路是通过不断地交换相邻元素的位置,将大的元素逐渐往后移动。
具体实现过程如下:1.从第一个元素开始,一直到倒数第二个元素,依次比较相邻元素的大小。
2.如果前一个元素大于后一个元素,则交换它们的位置。
3.重复以上步骤,直到没有需要交换的元素为止。
冒泡排序的时间复杂度为O(n2),因此对于较大的数据集来说,效率较低。
选择排序选择排序是另一种基础的排序算法,其思路是每次选出剩下元素中最小的一个,放在已排好序的部分的末尾。
具体实现过程如下:1.从第一个元素开始,一直到倒数第二个元素,依次找出剩下元素中的最小值。
2.将找出的最小值与当前位置的元素进行交换。
3.重复以上步骤,直到所有元素都排好序。
选择排序的时间复杂度为O(n2),与冒泡排序相同,但是其空间复杂度较低。
插入排序插入排序是一种简单而有效的排序算法,它类似于整理扑克牌的过程,将未排序的部分依次插入已经排序的部分。
具体实现过程如下:1.从第二个元素开始,将其与已经排好序的部分进行比较。
如果它小于前面的元素,则将它插入到前面的合适位置。
2.重复以上步骤,直到所有元素都排好序。
插入排序的时间复杂度为O(n2),但是对于小规模数据集,效率较高。
查找算法顺序查找顺序查找是一种基础的查找算法,其思路是从头到尾依次查找目标元素。
具体实现过程如下:1.从第一个元素开始,逐个与目标元素进行比较。
2.如果找到目标元素,则返回对应位置的索引值。
高三数学第一轮复习:算法初步苏教版【本讲教育信息】一. 教学内容:算法初步教学目的:了解算法的含义,能用自然语言描述算法。
理解设计流程图表达解决问题的过程,了解算法和程序语言的区别;理解流程图的三种基本逻辑结构,会用流程图表示算法。
重点:算法与流程图的含义。
难点:算法在实际问题中的应用。
二、知识要点:(一)算法的概念算法实际上就是解决一类问题的一种程序性方法,其特征为:概括性、逻辑性、有穷性、不唯一性和普遍性.(二)程序框图利用程序框图表示算法,具有直观、形象的特点,能更清楚地展现算法的逻辑结构.(三)算法的三种基本逻辑结构顺序结构、选择结构、循环结构(四)基本算法语句1、输入语句:Read2、输出语句:Print3、赋值语句:变量 表达式4、条件语句:处理条件分支逻辑结构的算法语句.主要用if语句,其一般格式如下: If 条件AThen语句BElse语句CEnd If条件语句的另一种格式为:If 条件 Then 语句End If5、循环语句:(1)For语句For 变量I From “初值”To“终值”Step“步长”…End For(2) While语句While 语句A…End While(3)注意while循环(当型)和until循环(直到型)两种形式.while循环的特点是先判断再执行循环.即当条件满足时,执行循环体. until循环的的特点是先执行循环再判断是否满足条件。
(五)算法结构图见下:三、基础训练1、执行下列算法:S←0For I From 1 To 999 Step 2S←S+IEnd ForPrint S其中循环10次S的值是________,程序运行结束时S的值是____________.解:循环10次S的值是100;程序运行结束时S的值是500(1999)250000 2+=2、如果执行上面的程序框图,那么输出的S=解:241002550S=+++=3、(某某文7、艺术理6)下面左图是某县参加2007年高考的学生身高条形统计图,从左到右的各条形表示的学生人数依次记为A1、A2、…、A10(如A2表示身高(单位:cm)(150,155)内的学生人数).右图是统计左图中身高在一定X围内学生人数的一个算法流程图.现要统计身高在160~180cm (含160cm ,不含180cm )的学生人数,那么在流程图中的判断框内应填写的条件是解:7i ≤4、用“冒泡法”给数列1,5,3,2,7,9按从大到小进行排序时,经过第一趟排序后得到的新数列为。
第十一章算法初步高考导航种基本逻辑结构:的一些基本语句结构.知识网络11.1 算法的含义与程序框图典例精析题型一 算法的含义【例1】已知球的表面积是16π,要求球的体积,写出解决该问题的一个算法. 【解析】算法如下: 第一步,s =16π. 第二步,计算R =s 4π. 第三步,计算V =4πR 33.第四步,输出V .【点拨】给出一个问题,设计算法应该注意:(1)认真分析问题,联系解决此问题的一般数学方法,此问题涉及到的各种情况; (2)将此问题分成若干个步骤; (3)用简练的语句将各步表述出来.【变式训练1】设计一个计算1×3×5×7×9×11×13的算法.图中给出程序的一部分,则在横线①上不能填入的数是( )A.13B.13.5C.14D.14.5【解析】当I <13成立时,只能运算 1×3×5×7×9×11.故选A.题型二 程序框图【例2】图一是某县参加2010年高考的学生身高条形统计图,从左到右的各条形表示的学生人数依次记为A 1,A 2,…,A 10(如A 2表示身高(单位:cm)在[150,155)内的学生人数).图二是统计图一中身高在一定范围内学生人数的一个算法流程图.现要统计身高在160~180 cm(含160 cm ,不含180 cm)的学生人数,那么在流程图中的判断框内应填写的条件是( )A.i <6?B.i <7?C.i <8?D.i <9?图一【解析】根据题意可知,i 的初始值为4,输出结果应该是A 4+A 5+A 6+A 7,因此判断框中应填写i <8?,选C.【点拨】本题的命题角度较为新颖,信息量较大,以条形统计图为知识点进行铺垫,介绍了算法流程图中各个数据的引入来源,其考查点集中于循环结构的终止条件的判断,考查了学生合理地进行推理与迅速作出判断的解题能力,解本题的过程中不少考生误选A ,实质上本题中的数据并不大,考生完全可以直接从头开始限次按流程图循环观察,依次写出每次循环后的变量的赋值,即可得解.【变式训练2】(2009辽宁)某店一个月的收入和支出,总共记录了N 个数据a 1,a 2,…,a N .其中收入记为正数,支出记为负数,该店用如图所示的程序框图计算月总收入S 和月净盈利V ,那么在图中空白的判断框和处理框中,应分别填入下列四个选项中的( )A.A >0?,V =S -TB.A <0?,V =S -TC.A >0?,V =S +TD.A <0?,V =S +T 【解析】选C.题型三 算法的条件结构【例3】某快递公司规定甲、乙两地之间物品的托运费用根据下列方法计算: f =⎩⎨⎧⨯-+⨯).50>(85.0)50(53.050),50≤<0(53.0ωωωω其中f (单位:元)为托运费,ω为托运物品的重量(单位:千克),试写出一个计算费用f 的算法,并画出相应的程序框图.【解析】算法如下:第一步,输入物品重量ω.第二步,如果ω≤50,那么f=0.53ω,否则,f=50×0.53+(ω-50)×0.85.第三步,输出托运费f.程序框图如图所示.【点拨】求分段函数值的算法应用到条件结构,因此在程序框图的画法中需要引入判断框,要根据题目的要求引入判断框的个数,而判断框内的条件不同,对应的框图中的内容或操作就相应地进行变化.【变式训练3】(2010天津)阅读如图的程序框图,若输出s的值为-7,则判断框内可填写()A.i<3?B.i<4?C.i<5?D.i<6?【解析】i=1,s=2-1=1;i=3,s=1-3=-2;i=5,s=-2-5=-7.所以选D.题型四算法的循环结构【例4】设计一个计算10个数的平均数的算法,并画出程序框图.【解析】算法步骤如下:第一步,令S=0.第二步,令I=1.第三步,输入一个数G.第四步,令S=S+G.第五步,令I=I+1.第六步,若I>10,转到第七步,若I≤10,转到第三步.第七步,令A=S/10.第八步,输出A.据上述算法步骤,程序框图如图.【点拨】(1)引入变量S作为累加变量,引入I为计数变量,对于这种多个数据的处理问题,可通过循环结构来达到;(2)计数变量用于记录循环次数,同时它的取值还用于判断循环是否终止,累加变量用于输出结果.【变式训练4】设计一个求1×2×3×…×10的程序框图.【解析】程序框图如下面的图一或图二.图一图二总结提高1.给出一个问题,设计算法时应注意:(1)认真分析问题,联系解决此问题的一般数学方法;(2)综合考虑此类问题中可能涉及的各种情况;(3)借助有关的变量或参数对算法加以表述;(4)将解决问题的过程划分为若干个步骤;(5)用简练的语言将各个步骤表示出来.2.循环结构有两种形式,即当型和直到型,这两种形式的循环结构在执行流程上有所不同,当型循环是当条件满足时执行循环体,不满足时退出循环体;而直到型循环则是当条件不满足时执行循环体,满足时退出循环体.所以判断框内的条件,是由两种循环语句确定的,不得随便更改.3.条件结构主要用在一些需要依据条件进行判断的算法中.如分段函数的求值,数据的大小关系等问题的算法设计.11.2 基本算法语句典例精析题型一 输入、输出与赋值语句的应用【例1】阅读程序框图(如下图),若输入m =4,n =6,则输出a = ,i = .【解析】a =12,i =3.【点拨】赋值语句是一种重要的基本语句,也是程序必不可少的重要组成部分,使用赋值语句,要注意其格式要求.【变式训练1】(2010陕西)如图是求样本x 1,x 2,…,x 10的平均数x 的程序框图,则图中空白框中应填入的内容为( )A.S =S +x nB.S =S +x nnC.S =S +nD.S =S +1n【解析】因为此步为求和,显然为S =S +x n ,故选A. 题型二 循环语句的应用【例2】设计算法求11×2+12×3+13×4+…+199×100的值.要求画出程序框图,写出用基本语句编写的程序.【解析】这是一个累加求和问题,共99项相加,可设计一个计数变量,一个累加变量,用循环结构实现这一算法.程序框图如下图所示:程序如下:语句编写程序解决问题时,一定要注意格式和条件的表述方法,WHILE语句是当条件满足时执行循环体,UNTIL语句是当条件不满足时执行循环体.(2)在解决一些需要反复执行的运算任务,如累加求和、累乘求积等问题中应注意考虑利用循环语句来实现.(3)在循环语句中,也可以嵌套条件语句,甚至是循环语句,此时需要注意嵌套的这些语句,保证语句的完整性,否则就会造成程序无法执行.【变式训练2】下图是输出某个有限数列各项的程序框图,则该框图所输出的最后一个数据是 .【解析】由程序框图可知,当N =1时,A =1;N =2时,A =13;N =3时,A =15,…,即输出各个A值的分母是以1为首项以2为公差的等差数列,故当N =50时,A =11+(50-1)×2=199,即为框图最后输出的一个数据.故填199.题型三 算法语句的实际应用【例3】某电信部门规定:拨打市内电话时,如果通话时间3分钟以内,收取通话费0.2元,如果通话时间超过3分钟,则超过部分以每分钟0.1元收取通话费(通话不足1分钟时按1分钟计算).试设计一个计算通话费用的算法,要求写出算法,编写程序.【解析】我们用c (单位:元)表示通话费,t (单位:分钟)表示通话时间,则依题意有⎩⎨⎧⨯+=,3>2],[0.10.23,≤<0,2.0t t-t c算法步骤如下: 第一步,输入通话时间t .第二步,如果t ≤3,那么c =0.2;否则c =0.2+0.1×[t -2]. 第三步,输出通话费用c . 程序如下:IF 【点拨】法步骤,画出程序框图,最后准确地编写出程序,同时要注意结合题意加深对算法的理解.【变式训练3】(2010江苏)下图是一个算法流程图,则输出S 的值是 .【解析】n=1时,S=3;n=2时,S=3+4=7;n=3时,S=7+8=15;n=4时,S=15+24=31;n =5时,S=31+25=63.因为63≥33,所以输出的S值为63.总结提高1.输入、输出语句可以设计提示信息,加引号表示出来,与变量之间用分号隔开.2.赋值语句的赋值号左边只能是变量而不能是表达式;赋值号左右两边不能对换,不能利用赋值语句进行代数式计算,利用赋值语句可以实现两个变量值的互换,方法是引进第三个变量,用三个赋值语句完成.3.在某些算法中,根据需要,在条件语句的THEN分支或ELSE分支中又可以包含条件语句.遇到这样的问题,要分清内外条件结构,保证结构的完整性.4.分清WHILE语句和UNTIL语句的格式,在解决一些需要反复执行的运算任务,如累加求和,累乘求积等问题中应主要考虑利用循环语句来实现,但也要结合其他语句如条件语句.5.编程的一般步骤:(1)算法分析;(2)画出程序框图;(3)写出程序.11.3 算法案例典例精析题型一求最大公约数【例1】(1)用辗转相除法求840与1 764的最大公约数;(2)用更相减损术求440与556的最大公约数.【解析】(1)用辗转相除法求840与1 764的最大公约数:1 764=840×2+84,840=84×10+0.所以840与1 764的最大公约数是84.(2)用更相减损术求440与556的最大公约数:556-440=116,440-116=324,324-116=208,208-116=92,116-92=24,92-24=68,68-24=44,44-24=20,24-20=4,20-4=16,16-4=12,12-4=8,8-4=4.所以440与556的最大公约数是4.【点拨】(1)辗转相除法与更相减损术是求两个正整数的最大公约数的方法,辗转相除法用较大的数除以较小的数,直到大数被小数除尽结束运算,较小的数就是最大公约数;更相减损术是用两数中较大的数减去较小的数,直到所得的差和较小数相等为止,这个较小数就是这两个数的最大公约数.一般情况下,辗转相除法步骤较少,而更相减损术步骤较多,但运算简易,解题时要灵活运用.(2)两个以上的数求最大公约数,先求其中两个数的最大公约数,再用所得的公约数与其他各数求最大公约数即可.【变式训练1】求147,343,133的最大公约数.【解析】先求147与343的最大公约数.343-147=196,196-147=49,147-49=98,98-49=49,所以147与343的最大公约数为49.再求49与133的最大公约数.133-49=84,84-49=35,49-35=14,35-14=21,21-14=7,14-7=7.所以147,343,133的最大公约数为7.题型二秦九韶算法的应用【例2】用秦九韶算法写出求多项式f(x)=1+x+0.5x2+0.016 67x3+0.041 67x4+0.008 33x5在x=-0.2时的值的过程.【解析】先把函数整理成f(x)=((((0.008 33x+0.041 67)x+0.166 67)x+0.5)x+1)x+1,按照从内向外的顺序依次进行.x=-0.2,a5=0.008 33,v0=a5=0.008 33;a4=0.041 67,v1=v0x+a4=0.04;a3=0.016 67,v2=v1x+a3=0.008 67;a2=0.5,v3=v2x+a2=0.498 27;a1=1,v4=v3x+a1=0.900 35;a0=1,v5=v4x+a0=0.819 93;所以f(-0.2)=0.819 93.【点拨】秦九韶算法是多项式求值的最优算法,特点是:(1)将高次多项式的求值化为一次多项式求值;(2)减少运算次数,提高效率;(3)步骤重复实施,能用计算机操作.【变式训练2】用秦九韶算法求多项式f(x)=8x7+5x6+3x4+2x+1当x=2时的值为.【解析】1 397.题型三进位制之间的转换【例3】(1)将101 111 011(2)转化为十进制的数;(2)将53(8)转化为二进制的数.【解析】(1)101 111 011(2)=1×28+0×27+1×26+1×25+1×24+1×23+0×22+1×21+1=379.(2)53(8)=5×81+3=43.所以53(8)=101 011(2).【点拨】将k进制数转换为十进制数,关键是先写成幂的积的形式再求和,将十进制数转换为k进制数,用“除k取余法”,余数的书写是由下往上,顺序不能颠倒,k进制化为m进制(k,m≠10),可以用十进制过渡.【变式训练3】把十进制数89化为三进制数.【解析】具体的计算方法如下:89=3×29+2,29=3×9+2,9=3×3+0,3=3×1+0,1=3×0+1,所以89(10)=10 022(3).总结提高1.辗转相除法和更相减损术都是用来求两个数的最大公约数的方法.其算法不同,但二者的原理却是相似的,主要区别是一个是除法运算,一个是减法运算,实质都是一个递推的过程.用秦九韶算法计算多项式的值,关键是正确的将多项式改写,然后由内向外,依次计算求解.2.将k进制数转化为十进制数的算法和将十进制数转化为k进制数的算法操作性很强,要掌握算法步骤,并熟练转化;要熟练应用“除基数,倒取余,一直除到商为0”.。
高中数学算法初步在高中学习阶段,数学作为一门重要学科,算法也是其中的一个重要组成部分。
通过学习数学算法,可以帮助学生培养逻辑思维、提高解决问题的能力,同时也为将来的学习和工作打下坚实基础。
下面将介绍高中数学算法的一些基础知识和常见算法。
一、最大公约数与最小公倍数在数学算法中,最大公约数和最小公倍数是两个基本概念。
最大公约数指的是两个数中同时能整除的最大的正整数,用符号(a,b)表示;最小公倍数则是两个数的公倍数中最小的一个数,用符号[a,b]表示。
求两个数的最大公约数和最小公倍数可以采用欧几里得算法,即辗转相除法。
二、质因数分解质因数分解是将一个正整数分解为质数的乘积。
质数是指只能被1和自己整除的正整数,如2、3、5、7等。
通过质因数分解可以将一个数表示为若干个质数的乘积,方便进行计算和运算。
三、约瑟夫问题约瑟夫问题是一个经典的数学问题,描述了一群人围成一圈依次报数,数到某个特定数字的人出列,然后从下一个人开始重新报数,直到所有人都出列为止。
通过数学算法可以求解约瑟夫问题的答案,对于理解循环链表等概念也具有重要意义。
四、排列组合与概率统计在数学算法中,排列组合与概率统计是常见的内容。
排列是指从n 个不同元素中取出m个元素按照一定的顺序排列的方法数,组合则是指从n个不同元素中取出m个元素不考虑排列顺序的方法数。
概率统计则是通过数学算法对实验结果的频率进行统计和分析,从而得出相应的概率结果。
五、快速排序算法快速排序算法是一种常见的排序算法,其基本思想是通过一趟排序将待排数列分割成两部分,其中一部分的所有元素都小于另一部分的所有元素,然后再依次对这两部分进行排序,最终实现整个数列的有序排列。
快速排序算法在实际应用中具有高效性和稳定性等优点,是一种常用的排序算法。
六、最短路径算法在图论中,最短路径算法是研究两点之间距离最短的路径问题。
最短路径算法有多种解法,如Dijkstra算法、Floyd算法、Bellman-Ford 算法等,这些算法可以根据不同的情况选择合适的算法来解决具体问题。