算法的含义
- 格式:doc
- 大小:267.50 KB
- 文档页数:8
算法的概念——知能阐释一、知识精讲1.算法的含义算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或看成按要求设计好的有限的确切的计算序列,并且这样的步骤或序列能够解决一类问题。
说明:(1)算法一般是机械的,有时要进行大量的重复计算,只要按部就班地去做,总能算出结果。
通常把算法过程称为“数学机械化”,数学机械化的最大优点,是它可以让计算机来完成。
(2)实际上,处理任何问题都需要算法,中国象棋有中国象棋的棋谱,国际象棋有国际象棋的棋谱。
再比如,邮寄物品有其相应的手续,购买飞机票也有一系列的手续等等。
(3)求解某个问题的算法不唯一。
2.算法的特征(1)确定性:算法的每一步必须是确切定义的,且无二意性,算法只有唯一的一条执行路径,对于相同的输入只能得出相同的输出。
(2)有容性:一个算法必须在执行有穷次运算后结束,在所规定的时间和空间内,若不能获得正确结果,其算法也是不能被采用的。
(3)可行性:算法中的每一个步骤都必须能用实现算法的工具——可执行指令精确表达,并在有限步骤内完成,否则这种算法也是不会被采纳的。
(4)算法一定要根据输入的初始数据或给定的初值才能正确执行它的每一步骤。
(5)有输出,算法一定能得到问题的解,有一个或多个结果输出,达到求解问题的目的,没有输出结果的算法是没有意义的。
3.算法的描述(1)自然语言:自然语言就是人们日常使用的语言,可以是汉语、英语或数学语言等。
用自然语言描述算法的优点是通俗易懂,当算法中的操作步骤都是顺序执行时比较容易理解。
缺点是如果算法中包含判断或转向,并且操作步骤较多时,就不那么直观清晰了。
(2)框图(流程图):所谓框图,就是指用规定的图形符号来描述算法,用框图描述算法,具有直观、结构清晰、条理分明、通俗易懂、便于检查修改及交流等优点。
(3)程序设计语言:算法最终可通过程序的形式编写出来,并在计算机上执行。
程序设计语言可分为低级语言和高级语言,低级语言包括机器语言和汇编语言。
算法复习试题一、名词解释:1、算法:就是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算。
2、贪心算法:能够得到某种量度意义下的最优解的分级处理方法称为贪心算法。
3、分治法:分治法的求解思想就是把整个问题分成若干个小问题后分的治之4、递归过程:一个递归过程的执行类似于多个子程序的嵌套调用,递归过程是自己调用自己本身代码。
递归算法的特点:思路清晰,算法的描述简洁且易理解。
5、集合:在研究某一类对象时,可把这类对象的整体称为集合。
6、生成树:设G=(V,E)是一个无向连通图。
如果G的生成子图T=(V,E')是一棵树,则称T是G的一棵生成树。
7、算法具有以下5个属性:有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。
确定性:算法中每一条指令必须有确切的含义。
不存在二义性。
只有一个入口和一个出口可行性:就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。
输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。
输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。
8、迭代法:称辗转法,是一种不断用变量的旧值递推出新值的解决问题的方法。
9、贪婪法: 是一种不追求最优解,只希望得到较为满意解的方法。
贪婪法不要回溯10、动态规划:是一种将问题实例分解为更小的、相似的子问题,并存储子问题的解而避免计算重复的子问题,以解决最优化问题的算法策略。
11、分支限界法:是一种用于求解组合优化问题的排除非解的搜索算法。
12、树:树是一个或多个结点的有限集合。
12、二元树:它是结点的有限集合,它或者为空,或者由一个根和两棵树(左子树和右子树)的不相交的二元树所组成。
13、二分检索树:T是一棵二元树,它或者为空,或者其每个结点含有一个可比较大小的数据元素。
14、图:图是数据结构,一个图G是由称之为结点V和边E的两个集合组成的15、最优解:使目标函数取极值(极大值或极小值)的可行解。
高考总复习:算法与程序框图【考纲要求】1.算法的含义、程序框图(1)了解算法的含义,了解算法的思想;(2)理解程序框图的三种基本逻辑结构:顺序、条件、循环。
2.基本算法语句理解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句的含义。
【知识网络】【考点梳理】考点一、算法1.算法的概念(1)古代定义:指的是用阿拉伯数字进行算术运算的过程。
(2)现代定义:算法通常是指按照一定规则解决某一类问题的明确和有限的步骤。
(3)应用:算法通常可以编成计算机程序,让计算机执行并解决问题。
2.算法的特征:①指向性:能解决某一个或某一类问题;②精确性:每一步操作的内容和顺序必须是明确的;算法的每一步都应当做到准确无误,从开始的“第一步”直到“最后一步”之间做到环环相扣,分工明确.“前一步”是“后一步”的前提,“后一步”是“前一步”的继续.③有限性:必须在有限步内结束并返回一个结果;算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制的持续进行.④构造性:一个问题可以构造多个算法,算法有优劣之分。
3.算法的表示方法:(1) 用自然语言表示算法: 优点是使用日常用语, 通俗易懂;缺点是文字冗长, 容易出现歧义;(2) 用程序框图表示算法:用图框表示各种操作,优点是直观形象, 易于理解。
要点诠释:泛泛地谈算法是没有意义的,算法一定以问题为载体。
考点二:程序框图1. 程序框图的概念:程序框图又称流程图,是最常用的一种表示法,它是描述计算机一步一步完成任务的图表,直观地描述程序执行的控制流程,最便于初学者掌握。
2.程序框图常用符号:连接点用于连接另一页或另一部分的框图注释框框中内容是对某部分流程图做的解释说明3.画程序框图的规则:(1)使用标准的框图的符号;(2)框图一般按从上到下、从左到右的方向画;(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课时) §1.1 算法的含义教学目标:1.通过实例体会算法思想,了解算法的含义与主要特点;2.能按步骤用自然语言写出简单问题的算法过程学;3.培养学生逻辑思维能力与表达能力.教学重点:将问题的解决过程用自然语言表示为算法过程.教学难点:用自然语言描述算法.教学过程:一.序言算法不仅是数学及其应用的重要组成部分,也是计算机理论和技术的核心.在现代社会里,计算机已经成为人们日常生活和工作不可缺少的工具.听音乐、看电影、玩游戏、打字、画卡通画、处理数据,计算机几乎渗透到了人们生活的所有领域.那么,计算机是怎样工作的呢?要想弄清楚这个问题,算法的学习是一个开始.同时,算法有利于发展有条理的思考与表达的能力,提高逻辑思维能力.在以前的学习中,虽然没有出现算法这个名词,但实际上在数学教学中已经渗透了大量的算法思想,如四则运算的过程、求解方程的步骤等等,完成这些工作都需要一系列程序化的步骤,这就是算法的思想.阅读教材第4页.二.问题情境1.情境:介绍猜数游戏(见教材第5页).2.问题:解决这一问题有哪些策略,哪一种较好?三.学生活动学生容易说出“二分法策略”,教师要引导学生进行算法化(按步骤)的表达.说明:以上过程实际上是按一种机械的程序进行的一系列操作.四.建构数学在解决某些问题时,需要设计出一系列可操作或可计算的步骤,通过实施这些步骤来解决问题,通常把这些步骤称为解决这些问题的算法.1.广义的算法——某一工作的方法和步骤,例如:歌谱是一首歌曲的算法,空调说明书是空调使用的算法.在数学中,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题的程序.2.本章主要讨论的算法(计算机能够实现的算法)——对一类问题的机械的、统一的求解方法.例如:解方程(组)的算法,函数求值的算法,作图问题的算法等.3.本节采用自然语言来描述算法.五.数学运用1.算法描述举例例1.给出求1+2+3+4+5的一个算法.解: 算法1 按照逐一相加的程序进行.第一步:计算1+2,得到3;第二步:将第一步中的运算结果3与3相加,得到6;第三步:将第二步中的运算结果6与4相加,得到10;第四步:将第三步中的运算结果10与5相加,得到15.算法2 运用公式123n ++++= 2)1(+n n 直接计算. 第一步:取n =5; 第二步:计算2)1(+n n ; 第三步:输出运算结果.算法3 用循环方法求和.第一步:使1S =,;第二步:使2I =;第三步:使S S I =+;第四步:使1I I =+;第五步:如果5I ≤,则返回第三步,否则输出S .说明:①一个问题的算法可能不唯一.②若将本例改为“给出求123100++++ 的一个算法”,则上述算法2和算法3表达较为方便.例2.给出求解方程组274511x y x y +=⎧⎨+=⎩的一个算法. 分析:解线性方程组的常用方法是加减消元法和代入消元法,这两种方法没有本质的差别,为了适用于解一般的线性方程组,以便于在计算机上实现,我们用高斯消元法(即先将方程组化为一个三角形方程组,在通过回代过程求出方程组的解)解线性方程组.解:用消元法解这个方程组,步骤是:第一步:方程①不动,将方程②中x 的系数除以方程①中x 的系数,得到乘数422m ==; 第二步:方程②减去m 乘以方程①,消去方程②中的x 项,得到2733x y y +=⎧⎨=-⎩; 第三步:将上面的方程组自下而上回代求解,得到1y =-,4x =.所以原方程组的解为41x y =⎧⎨=-⎩. 说明:(1).从例1、例2可以看出,算法具有两个主要特点:①有限性:一个算法在执行有限个步骤后必须结束.“有限性”往往指在合理的范围之内,如果让计算机执行一个历时1000年才结束的算法,这虽然是有限的,但超过了合理的限度,人们也不把它视作有效算法.“合理限度”一般由人们的常识和需要以及计算机的性能而定.②确定性:算法的每一个步骤和次序应当是确定的.例如,一个健身操中一个动作“手举过头顶”,这个步骤就是不确定的、含糊的.是双手都举过头,还是左手或右手?举过头顶多少厘米不同的人可以有不同的理解.算法中的每一个步骤不应产生歧义,而应当是明确无误的.(2).一般来说,算法应有一个或多个输出,算法的目的是为了求解,没有输出的算法是没有意义的.2.练习:课本第6页练习第1、2、3题.练习1答案:第一步 移项得23x =-;第二步 两边同除以2得32x =-. 练习2答案:第一步:使1S =,;第二步:使3I =;第三步:使S S I =⨯;第四步:使2I I =+;第五步:如果7I ≤,则返回第三步,否则输出S .练习3答案:第一步 计算斜率203(1)AB k -=--; 第二步 用点斜式写出直线方程0(1)AB y k x -=+. 补充:1.一个人带三只狼和三只羚羊过河,只有一条船,同船可以容纳一个人和两只动物.没有人在的时候,如果狼的数量不少于羚羊的数量,狼就会吃掉羚羊.请设计过河的算法.解:算法或步骤如下:S1 人带两只狼过河;S2 人自己返回;S3 人带一只羚羊过河;S4 人带两只狼返回;S5 人带两只羚羊过河;S6 人自己返回;S7 人带两只狼过河;S8 人自己返回;S9 人带一只狼过河.2.写出求111123100++++ 的一个算法. 解:第一步:使1S =,;第二步:使2I =;第三步:使1n I=; 第四步:使S S n =+;第五步:使1I I =+;第六步:如果100I ≤,则返回第三步,否则输出S . 六.回顾小结1.算法的概念:对一类问题的机械的、统一的求解方法.算法是由基本运算及规定的运算顺序所构成的完整的解题步骤,或者是按照要求设计好的有限的计算序列,并且这样的步骤或序列能解决一类问题.2.算法的重要特征:(1)有限性:一个算法在执行有限步后必须结束;(2)确切性:算法的每一个步骤和次序必须是确定的;(3)输入:一个算法有0个或多个输入,以刻划运算对象的初始条件.所谓0个输入是指算法本身定出了初始条件.(4)输出:一个算法有1个或多个输出,以反映对输入数据加工后的结果.没有输出的算法是毫无意义的.七、课外作业:课本第6页第4题,补充:1. 有A 、B 、C 三个相同规格的玻璃瓶,A 装着酒精,B 装着醋,C 为空瓶,请设计一个算法,把A 、B 瓶中的酒精与醋互换.2.写出解方程0322=--x x 的一个算法.3.已知),(11y x A ,),(22y x B ,写出求直线AB 斜率的一个算法.4.“鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣而具有深远影响的题目:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”请你先列出解决这个问题的方程组,并设计一个解该方程组的算法.。
人教版高中数学必修三知识点梳理重点题型(常考知识点)巩固练习算法与程序框图【学习目标】1.初步建立算法的概念;2.让学生通过丰富的实例体会算法的思想;3.让学生通过对具体问题的探究,初步了解算法的含义;4.掌握程序框图的概念;5.会用通用的图形符号表示算法,掌握算法的三个基本逻辑结构;6.掌握画程序框图的基本规则,能正确画出程序框图.【要点梳理】【算法与程序框图 397425 知识讲解1】要点一、算法的概念1、算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等.在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成.2、算法的特征:(1)确定性:算法的每一步都应当做到准确无误、“不重不漏”.“不重”是指不是可有可无的、甚至无用的步骤,“不漏”是指缺少哪一步都无法完成任务.(2)逻辑性:算法从开始的“第一步”直到“最后一步”之间做到环环相扣,分工明确,“前一步”是“后一步”的前提,“后一步”是“前一步”的继续.(3)有穷性:算法要有明确的开始和结束,当到达终止步骤时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制的持续进行.(4)不唯一性:求解某一个问题的算法不一定是唯一的,对于一个问题可以有不同的算法.3、设计算法的要求(1)写出的算法,必须能解决一类问题(如:判断一个整数35是否为质数;求任意一个方程的近似解……),并且能够重复使用.(2)要使算法尽量简单、步骤尽量少.(3)要保证算法正确.且计算机能够执行,如:让计算机计算1×2×3×4×5是可以做到的.4、算法的描述:(1)自然语言:自然语言就是人们日常使用的语言,可以是汉语、英语或数学语言等.用自然语言描述算法的优点是通俗易懂,当算法中的操作步骤都是顺序执行时比较容易理解.缺点是如果算法中包含判断和转向,并且操作步骤较多时,就不那么直观清晰了.(2)程序框图:所谓框图,就是指用规定的图形符号来描述算法,用框图描述算法具有直观、结构清晰、条理分明、通俗易懂、便于检查修改及交流等特点.(3)程序语言:算法最终可以通过程序的形式编写出来,并在计算机上执行.要点诠释:算法的特点:思路简单清晰,叙述复杂,步骤繁琐,计算量大,完全依靠人力难以完成,而这些恰恰就是计算机的特长,它能不厌其烦地完成枯燥的、重复的繁琐的工作,正因为这些,现代算法的作用之一就是使计算机代替人完成某些工作,这也是我们学习算法的重要原因之一.事实上,算法中出现的程序只是用基本的语句把程序的主要结构描述出来,与真正的程序还有差距,所以算法描述的许多程序并不能直接运行,要运行程序,还要把程序按照某种语言的严格要求重新改写才行.【算法与程序框图 397425 知识讲解2】要点二、程序框图1、程序框图的概念:程序框图又称流程图,是一种用规定的图形、指向线及文字说明来准确、直观地表示算法的图形.23一个程序框图包括以下几部分:实现不同算法功能的相对应的程序框;带箭头的流程线;程序框内必要的说明文字.4、算法的三种基本逻辑结构(1)顺序结构顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的.它是由若干个依次执行的步骤组成的,它是任何一个算法都离不开的一种基本算法结构.见示意图和实例:顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤.如在示意图中,A框和B框是依次执行的,只有在执行完A框指定的操作后,才能接着执行B框所指定的操作.(2)条件结构如下面图示中虚线框内是一个条件结构,此结构中含有一个判断框,算法执行到此判断给定的条件P 是否成立,选择不同的执行框(A框、B框).无论P条件是否成立,只能执行A框或B框之一,不可能既执行A框又执行B框,也不可能A框、B框都不执行.A框或B框中可以有一个是空的,即不执行任何操作.见示意图要点诠释:条件结构中的条件要准确,不能含混不清,要清楚在什么情况下需要作怎样的判断,用什么条件来区分.(3)循环结构在一些算法中要求重复执行同一操作的结构称为循环结构.即从算法某处开始,按照一定条件重复执行某一处理过程.重复执行的处理步骤称为循环体.循环结构有两种形式:当型循环结构和直到型循环结构.①当型循环结构,如左下图所示,它的功能是当给定的条件P成立时,执行A框,A框执行完毕后,返回来再判断条件P是否成立,如果仍然成立,返回来再执行A框,如此反复执行A框,直到某一次返回来判断条件P不成立时为止,此时不再执行A框,离开循环结构,继续执行下面的框图.②直到型循环结构,如右下图所示,它的功能是先执行重复执行的A框,然后判断给定的条件P是否成立,如果P仍然不成立,则返回来继续执行A框,再判断条件P是否成立,依次重复操作,直到某一次给定的判断条件P成立为止,此时不再返回来执行A框,离开循环结构,继续执行下面的框图.见示意图要点诠释:循环结构中使用什么样的条件控制循环的开始和结束,要清楚满足某个条件的变量的次数与循环次数的联系与区别.误区提醒1、框图中的流程线不能出现交叉的现象.若有交叉,则程序语句无法写出;2、各种框图有其固定的格式和作用,不要乱用.如条件结构中不要忘了“是”与“否”,流程线不要忘记画箭头;3、条件分支结构的方向要准确;4、循环结构中,计数变量要赋初值,计数变量的自加不要忘记,自加多少不能弄错.另外计数变量一般只负责计数任务;5、循环结构中循环的次数要严格把握,区分“<”与“≤”等.循环变量的取值与循环结构(当型与直到型)有关,需区分清楚.另外,同一问题用两种不同的结构解决时,其判断条件恰是相反的;6、程序框图不要出现死循环(无限步的循环).【典型例题】类型一:算法的概念例1.(1)下列描述不能看作算法的是().A.做米饭需要刷锅,淘米,添水,加热这些步骤B.洗衣机的使用说明书C.解方程2x2+x-1=0D.利用公式S=πr2,计算半径为4的圆的面积,就是计算π×42(2)下列关于算法的说法:①求解某一类问题的算法是唯一的;②算法必须在有限步操作之后停止;③算法的每一步操作必须是明确的,不能有歧义或模糊;④算法执行后一定产生明确的结果.其中正确的有().A.1个B.2个C.3个D.4个【答案】(1)C (2)C【解析】(1)A、B、D都描述了解决问题的过程,可以看作算法.而C只描述了一个事实,没说明怎么解决问题,不是算法.(2)根据算法的特征可以知道,算法要有明确的开始与结束,每一步操作都必须是明确而有效的,必须在有限步内得到明确的结果,所以②③④正确.而解决某一类问题的算法不一定是唯一的,故①错误.【总结升华】算法一般是机械的,有时需要进行大量的重复计算,只要按部就班去做,总能算出结果.通常把算法过程称为“数学机械化”,数学机械化的最大优点是它可以借助计算机来完成.实际上处理任何问题都需要算法,如:中国象棋有中国象棋的棋谱、走法、胜负的评判准则;而国际象棋有国际象棋的棋谱、走法、胜负的评判准则;再比如申请出国有一系列的先后手续,购买物品也有相关的手续…….举一反三:【变式1】我们已学过的算法有求解一元二次方程的求根公式,加减消元法求二元一次方程组的解,二分法求出函数的零点等,对算法的描述有:①对一类问题都有效;②算法可执行的步骤必须是有限的;③算法可以一步一步地进行,每一步都有确切的含义;④是一种通法,只要按部就班地做,总能得到结果.以上算法的描述正确的有().A.1个B.2个C.3个D.4个【答案】D类型二:算法的描述例2.写出求方程组32142x yx y-=⎧⎨+=-⎩①②的解的算法.【解析】可利用消元法或代入法求解.算法一:第一步:②×2+①,得到5x=14-4.③第二步,解方程③,可得x=2.④第三步,将④代入②,可得2+y=-2.⑤第四步,解⑤得y=-4.第五步,得到方程组的解为24 xy=⎧⎨=-⎩算法二:第一步,由②式移项可以得到x=-2-y.③第二步,把③代入①,得y=-4.④第三步,把④代入③,得x=2.第四步,得到方程组的解为24 xy=⎧⎨=-⎩.【总结升华】通过求解二元一次方程组可知,求解某个问题的算法不一定唯一.对于具体的实例可以选择合适的算法,尽量做到“省时省力”,使所用的算法是最优算法.举一反三:【变式1】试描述求解三元一次方程组1233162x y zx y zx y z++=⎧⎪--=⎨⎪--=-⎩①②③的算法步骤.【解析】算法1:第一步,①+③,得x=5.④第二步,将④分别代入①式和②式可得73 1y zy z+=⎧⎨+=-⎩⑤⑥.第三步,⑥-⑤,得y=-4.⑦第四步,将⑦代入⑤可得z=11.第五步,得到方程组的解为5411xyz=⎧⎪=-⎨⎪=⎩.算法2:第一步,①+②,得2x -y=14. ④ 第二步,②-③,得x -y=9. ⑤ 第三步,④-⑤,得x=5. ⑥第四步,将⑥代入⑤式,得y=-4. ⑦ 第五步,将⑥和⑦代入①式,得z=11.第六步,得到方程组的解为5411x y z =⎧⎪=-⎨⎪=⎩.类型三:算法的设计【算法与程序框图 397425 算法中的例1】例3.设计一个算法,从3个互不相等的数中选出最小的一个数.,并用数学语言表达. 【解析】第一步:假定这3个数中第一个是“最小值”;第二步:将第二个数与“最小值”比较,如果它小于此“最小值”,那么就用这个数取代“最小值”; 第三步:再重复第二步,将第三个数与最小值比较,如果它小于此“最小值”,那么就用这个数取代“最小值”;第四步:此时的“最小值”就是三个数中的最小值,输出最小值.所谓的算法,就是解决该类问题的一般步骤. 举一反三:【变式1】任意给定一个正整数n ,设计出判断n 是否为质数的一个算法. 【解析】第一步,当n =1时,n 既不是质数,也不是合数; 第二步,当n =2时,n 是质数;第三步,当n ≥3时,从2到n -1依次判断是否存在n 的因数(因数1除外),若存在,则n 是合数;若不存在,则n 是质数.类型四:顺序结构的应用【算法与程序框图 397425 程序框图中的例1】 例4.对于一个二次函数2y ax bx c =++,求出顶点坐标.【解析】算法步骤:S1 用户输入二次函数的系数a,b,c ;S2 计算顶点坐标24,24b ac b x y a a-=-=(赋值);S3 输出顶点坐标.举一反三:【变式1】已知x=40,y=3.画出计算z=15x+8y 的值的程序框图. 【答案】程序框图如下图所示.类型五:条件结构的应用例5.已知函数232 1 (0)1 (01)2 (1)x x y x x x x x -<⎧⎪=+≤<⎨⎪+≥⎩,写出求该函数的函数值的算法,并画出程序框图.【解析】该函数是分段函数,因此当给出一个自变量x 的值时,需先判断x 的范围,然后确定利用哪一段的解析式求函数值.画程序框图时,必须采用条件分支结构,因为函数解析式分了三段,所以需要两个判断框,即进行两次判断.算法如下:第一步,输入x .第二步,如果x <0,那么使y=2x -1,输出y ;否则,执行第三步. 第三步,如果0≤x <1,那么使y=x 2+1,输出y ;否则,执行第四步.第四步,y=x 2+2x 第五步,输出y .程序框图如下图所示.【总结升华】凡是必须先根据条件作出判断,然后再决定进行哪一个步骤的问题,在画程序框图时,必须引入判断框,采用条件结构.而像本题求分段函数的函数值的程序框图的画法,如果是分两段的函数,只需引入一个判断框;如果是分三段的函数,需引入两个判断框;分四段的函数需引入三个判断框,依此类推.判断框内的内容是没有固定顺序的.举一反三:【变式1】已知函数 1 (0)()0 (0)1 (0)x f x x x ->⎧⎪==⎨⎪<⎩, 写出求函数()f x 的任一函数值的一个算法并画出程序框图.【解析】记y=f (x).算法:第一步:输入x .第二步:如果x >0,那么使y=-1;如果x=0,那么使y=0;如果x <0,那么使y=1. 第三步:输出函数值y . 程序框图如下图所示.【变式2】如果学生的成绩大于或等于60分,则输出“及格”,否则输出“不及格”.用程序框图表示这一算法过程.【答案】开始结束类型六:循环结构的应用例6.设计一个计算1+3+5+7+…+999的值的算法,并画出程序框图.【解析】算法一:当型循环:第一步,令S=0,i=1.第二步,若i≤999成立,则执行第三步;否则输出S,结束算法.第三步,S=S+i.第四步,i=i+2,返回第二步,程序框图如图(1).算法二:直到型循环:第一步,令S=0,i=1.第二步,S=S+i.第三步,i=i+2.第四步,若i不大于999,转第二步;否则,输出S,结束算法.程序框图如图1-1-8(2).【总结升华】注意直到型循环和当型循环的区别.直到型循环先执行i=i+2,再判断i>999是否成立,若成立才输出S;而当型循环先判断i≤999是否成立,若成立,则执行i=i+2,直到条件i≤999不成立才结束循环,输出S.举一反三:【变式1】给出30个数:1,2,4,7,11,…,要计算这30个数的和,现已给出了该问题的程序框图如图所示,那么框图中判断框处①和执行框②处应分别填入()A.i≤30?;p=p+i-1 B.i≤31?;p=p+i+1C.i≤31?;p=p+i D.i≤30?;p=p+i【答案】D【解析】由于要计算30个数的和,故循环要执行30次,由于循环变量的初值为1,步长为1,故终值应为30即①中应填写i≤30;又由第1个数是1;第2个数比第1个数大1,即1+1=2;第3个数比第2个数大1,即2+2=4;第4个数比第3个数大1,即4+3=7;…故②中应填写p=p+i故选:D.【变式2】(2016春河南周口期中)设计求1+3+5+7+…+31的算法,并画出相应的程序框图.【解析】第一步:S=0;第二步:i=1;第三步:S=S+i;第四步:i=i+2;第五步:若i不大于31,返回执行第三步,否则执行第六步;第六步:输出S值.程序框图如图:类型七:利用算法和程序框图解决实际问题例7.北京获得了2008年第29届奥运会主办权.你知道在申办奥运会的最后阶段,国际奥委会是如何通过投票决定主办权归属的吗?对选出的5个申办城市进行表决的操作程序是:首先进行第一轮投票,如果有一个城市得票超过总票数的一半,那么该城市就获得主办权;如果所有申办城市得票数都不超过总票数的一半,则将得票最少的城市淘汰,然后重复上述过程,直到选出一个申办城市为止.试画出该过程的程序框图.【解析】本题为算法中与现实生活相联系的题目,从选举的方法看,应选择循环结构来描述算法.如图所示:【总结升华】解决与现实相关的问题时首先要理清题意,此循环结构中对用哪一个步骤控制循环,哪一个步骤作为循环体,要有清晰的思路.举一反三:【变式1】儿童乘坐火车时,若身高不超过1.1 m,则无需购票;若身高超过1.1 m,但不超过1.4 m,可买半票;若超过1.4 m,应买全票,请设计一个算法,并画出程序框图.【解析】根据题意,该题的算法中应用条件结构,首先以身高为标准,分成买和免票,在买票中再分出半票和全票.买票的算法步骤如下:第一步:测量儿童身高h.第二步:如果h≤1.1 m,那么免费乘车,否则若h≤1.4 m,则买半票,否则买全票.精品文档 用心整理资料来源于网络 仅供免费交流使用 程序框图如下图所示.【总结升华】本题的程序框图中有两个判断点,一个是以1.1 m 为判断点,1.1 m 把身高分为两段,在大于1.1 m 的一段中,1.4 m 又将其分两段,因此1.4 m 这个判断是套在1.1 m 的判断里的.所以我们用到两个条件结构.。
算法与程序框图知识图谱算法与程序框图知识精讲一.算法的概念1.算法的定义由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照一定规则,解决某一类问题的明确的和有限的步骤,称为算法.通常可以编成计算机程序,让计算机执行并解决问题.2.算法的特征:(1)有穷性:算法必须在执行有限步后结束,通常还理解为实际上能够容忍的合理限度;(2)确定性:算法的每一个步骤必须有确定的含义;(3)可行性:组成算法的每个步骤和操作必须是相当基本的,原则上都是能精确地执行的;(4)输入:有零个或多个输入;(5)输出:有一个或多个输出.二.算法的描述1.用自然语言;2.用数学语言;3.用算法语言(程序设计语言);4.用程序框图(流程图).三.程序框图的概念:用一些通用的图形符号构成的一张图来表示算法,称为程序框图(简称框图).1.常用图形符号:图形符号名称符号表示的意义起、止框框图的开始或结束输入、输出框数据的输入或者结果的输出处理框赋值、执行计算语句、结果的传送判断框根据给定条件判断流程线流程进行的方向连结点连结另一页或另一部分的框图四.算法的三种基本逻辑结构:顺序结构、条件(分支)结构和循环结构.1.顺序结构:最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的.如下图,只有在执行完A 框指定的操作后,才能接着执行B 框指定的操作;2.条件(分支)结构:在一个算法中,用来处理需要根据条件是否成立有不同的流向的结构.常见的条件结构的程序框图有下面两种形式:否否是是BA A P PB A3.循环结构:从某处开始,按照一定的条件反复执行某些步骤的情况,就是循环结构,其中反复执行的步骤称为循环体.常见的循环结构的框图对应为:否是A P三点剖析一.注意事项:1.在画程序框图时,从开始框沿箭头必须能到达结束框,特别是条件分支结构应沿每条支路都能到达结束框,流程线必须加箭头表示顺序.2.对于循环结构有如下需要注意的情况:(1)循环结构非常适合计算机处理,因为计算机的运算速度非常快,执行成千上万次的重复计算,只不过是一瞬间的事,且能保证每次的结果都正确;(2)循环结构要有中止循环体的条件,不能无休止的运算下去,循环结构中一定包含条件结构,如i n ≤就是中止循环的条件;(3)循环结构的关键是,要理解“累加变量”和“用1i 代替i ”,S 是一个累加变量,i 是计数变量,每循环一次,S 和i 都要发生变化,这两步要重复计算若干次;(4)一种循环结构是先判断i n ≤是否成立,若是,执行循环体;若否,则中止循环,像这样,每次执行循环体前对控制循环条件进行判断,条件满足时执行循环体,不满足则停止,称为当型循环.除了当型循环外,常用的循环结构还有直到型循环.二.方法点拨1.画程序框图的规则:(1)使用标准的框图的符号;(2)框图一般按从上到下、从左到右的方向画;(3)除判断框外,大多数框图符号只有一个进入点和一个退出点.判断框是具有超过一个退出点的惟一符号;(4)一种判断框是“是”与“不是”两分支的判断,而且有且仅有两个结果;另一种是多分支判断,有几种不同的结果;(5)在图形符号内描述的语言要非常简练清楚.2.画程序框图要注意的几点:(1)起、止框是任何流程不可少的,表示程序的开始和结束;(2)输入、输出框可以用在算法中任何需要输入、输出的位置;(3)算法中间要处理数据或计算,可分别写在不同的处理框内;(4)当算法要求你对两个不同的结果进行判断时,要写在判断框内;(5)一个算法步骤到另一个算法步骤用流程线连结;(6)如果一个框图需要分开来画,要在断开处画上连结点,并标出连结的号码.程序框图例题1、下列说法正确的是()A.算法就是某个问题的解题过程;B.算法执行后可以产生不同的结果;C.解决某一个具体问题算法不同结果不同;D.算法执行步骤的次数不可以为很大,否则无法实施.例题2、指出下列哪一个不是算法()A.解方程260x -=的过程是移项和系数化为1B.从济南到温哥华需要先乘火车到北京,再从北京乘飞机到温哥华C.解方程2210x x +-=D.利用公式2πS r =,计算半径为3的圆的面积为2π3⨯例题3、下列语句中是算法的个数为()①从济南到巴黎:先从济南坐火车到北京,再坐飞机到巴黎;②统筹法中“烧水泡茶”的故事;③测量某棵树的高度,判断其是否是大树;④已知三角形的一部分边长和角,借助正余弦定理求得剩余的边角,再利用三角形的面积公式求出该三角形的面积A.1B.2C.3D.4随练1、下面四种叙述能称为算法的是()A.在家里一般是妈妈做饭B.做米饭要需要刷锅.添水.加热这些步骤C.在野外做饭叫野炊D.做饭必需要有米随练2、下列关于算法的说法正确的有()①求解某一类问题的算法是唯一的;②算法必须在有限步操作之后停止;③算法的每一步操作必须是明确的,不能有歧义或模糊;④算法执行后产生确定的结果.A.1个B.2个C.3个D.4个随练3、早上从起床到出门需要洗脸刷牙(5min).刷水壶(2min).烧水(8min).泡面(3min).吃饭(10min).听广播(8min)几个步骤,下列选项中最好的一种算法为()A.s1洗脸刷牙s2刷水壶s3烧水s4泡面s5吃饭s6听广播B.s1刷水壶s2烧水的同时洗脸刷牙s3泡面s4吃饭s5听广播C.s1刷水壶s2烧水的同时洗脸刷牙s3泡面s4吃饭的同时听广播D.s1吃饭的同时听广播s2泡面s3烧水的同时洗脸刷牙s4刷水壶算法的三种逻辑结构和框图表示例题1、如果执行如图所示的程序框图,那么输出的a=()A.2B.12 C.﹣1 D.以上都不正确例题2、如果执行如图所示的程序框图,那么输出的a=()A.2B.12 C.﹣1 D.以上都不正确例题3、阅读右边的程序框图,运行相应的程序,输出的S的值是()A.26B.40C.57D.无法确定随练1、如图是某算法的流程图,则执行该算法输出的结果是S=____.随练2、执行如图所示的程序框图,如果输入a=2,那么输出的a值为()A.4B.16C.256D.log316随练3、执行如图所示的程序框图,则输出的k=()A.4B.5C.6D.7拓展1、算法的有穷性是指()A.算法最后包含输出B.算法的每个操作步骤都是可执行的C.算法的步骤必须有限D.以上都不正确2、下面对算法描述正确的一项是()A.算法只能用自然语言来描述B.算法只能用图形方式来表示C.同一问题可以有不同的算法D.同一问题的算法不同,结果必然不同3、看下面的四段话,其中不是解决问题的算法的是()A.从上海到北京旅游,先坐火车,再坐飞机抵达B.解一元一次方程的步骤是去分母.去括号.移项.合并同类项.系数化为1C.方程210x -=有两个实根D.求12345++++的值,先计算123+=,再由于336+=,6410+=,10515+=,4、根据如图程序框图,输出k 的值为()A.3B.4C.5D.65、给出计算12+14+16+…+120的值的一个程序框图如图,其中判断框内应填入的条件是()A.i >10B.i <10C.i >20D.i <206、如图所示的流程图表示一函数,记作y=f (x ),若x 0满足f (x 0)<0,且f (f (x 0))=1,则x 0=____.。