2012届高三数学二轮专题复习教案:算法初步
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012届高三数学二轮专题复习教案:算法初步
一、本章知识结构:
二、重点知识回顾
1.算法的特征
(1)确定性:算法的确定性是指一个算法中每一步操作都是明确的,不能模糊或有歧义,算法执行后一定产生明确的结果;
(2)有穷性:算法的有穷性是指一个算法必须能够在有限个步骤之内把问题解决,不能无限的执行下去;
(3)可行性:算法的可行性是指一个算法对于某一类问题的解决都必须是有效的,切实可行的,并且能够重复使用.
2、程序框图
基本的程序框有起始框,输入、输出框,处理框,判断框.其中起始框是任何流程都不可缺少的,而输入、输出框可以用在算法中任何需要输入、输出的位置.程序框图中的图框表示各种操作,图框内的文字和符号表示操作的内容,带箭头的流线表示操作的先后次序.(1)顺序结构
顺序结构描述的是最自然的结构,它也是最基本的结构,
其特点是:语句与语句之间,框与框之间是按从上到下的顺
序进行,不能跳跃,不能回头,如图1表示的是顺序结构的
示意图,它的功能是:A和B两个框是依次执行的,只有在
执行完A框后,才能接着执行B框.
(2)选择结构
选择结构是依据指定条件选择不同的指令的控制结构.选择结构和实际问题中的分类处理与数学思想中的分类讨论思想是完全对应的.
两种常见的选择结构如图2和图3所示.
图2的功能是先判断P是否成立,若成立,再执行A后脱离选择结构.
图3的功能是根据给定的条件P是否成立而选择A框或B框,特别注意,无论条件P 是否成立,只能执行A框或B框之一,不可能既执行A框又执行B框,也不可能A框、B框都不执行,无论执行哪条路径,在执行完A框或B框之后,脱离本选择结构.(3)循环结构
循环结构就是根据指定条件决定是否重复执行一条或多条指令的控制结构.它的特点是:从某处开始,按照一定的条件反复执行某一处理步骤,其中反复执行的处理步骤称为循环体.
两种常见的循环结构如图4和图5所示.
图4的功能是先执行A框,然后判断给定的条件P是否成立,如果P条件不成立,再执行A,然后再对P条件作判断,如果P条件仍然不成立,又执行A,…,如此反复执行A,直到给定的P条件成立为止,此时不再执行A,脱离本循环结构(又称直到型循环).图5的功能是先判断条件P是否成立,若成立,则执行A框,再判断条件P是否成立,若成立,又执行A框,…,直到不符合条件时终止循环(又称当型循环),执行本循环结构后的下一步程序.
3、基本算法语句
算法是计算机科学的基础,本部分要学习的算法语句,是为了将算法转换为计算机能够理解的程序语言和能在计算机上实现的程序所需要的语句,其作用就是实现算法与计算机的转换.
(1)赋值语句
赋值语句是用来表明赋给某一个变量一个具体的确定值的语句.赋值语句的一般格式为:变量名=表达式.
赋值语句还应注意以下几点:①赋值号左边只能是变量名字,而不是表达式;②赋值号左右不能对换;③不能利用赋值语句进行代数式(或符号)的演算(如化简、因式分解等);
④赋值号与数学中的等号的意义不同.
(2)输入语句
输入语句主要用来给变量输入初始数据.输入语句的一般格式是:变量=INPUT (“提示内容”).输入语句要求输入的值只能是具体的常数,不能是函数、变量或表达式。
(3)输出语句
任何求解问题的算法,都要把求解的结果“输出”,这就需要有“输出语句”来控制输出.输出语句主要有PRINT 语句,利用PEINT 语句可以使结果在屏幕上显示出来.
(4)条件语句
条件语句就是处理条件分支逻辑结构的算法语句.计算机通常是按照程序中语句出现的先后顺序依次往下执行的.但有时需要根据某个给定条件是否满足而决定所要执行的语句,这是就需要条件语句.Basic 语言中的条件语句主要为if 语句,if 语句的一般格式是: 该语句的功能为,如果表达式结果为真,则执行表达式后面的语句序列1;如果表达式结果为假,则执行else 后面的语句序列2.
if 语句的最简单的格式是:
该语句的功能为,如果表达式结果为真,则执行表达式后面的语句序列1,否则跳过语句序列1.
(5)循环语句
循环语句是用来处理算法中的循环结构的程序语言.当遇到有规律的重复运算,或者在程序中需要对某些语句进行重复的执行时,需要用循环语句进行控制.Basic 程序语言中常用的有两种循环语句:WHILE 循环和UNTIL 循环.
WHILE 循环的格式为:
UNTIL 循环的格式为:
WHILE 循环结构,首先要求对条件进行判断,如果条件为真,则执行循环体部分,每次开始执行循环体前,都要判断条件是否为真.这样重复执行,一直到条件为假时,就跳过循环体部分,结束循环.
UNTIL 循环结构,首选执行循环体,再检查条件,当条件不成立时,继续执行循环体,当条件成立时,就跳过循环体部分,结束循环.
(6)辗转相除法:
求最大公约数的方法就是辗转相除法.也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的.利用辗转相除法求最大公约数的步骤如下:
第一步:用较大的数m 除以较小的数n 得到一个商0q 和一个余数0r ;
IF 表达式
语句序列1;
ELSE
语句序列2;
END IF
IF 表达式
语句序列1;
END IF
WHILE 条件
循环体
WEND
DO 循环体 LOOP UNTIL 条件
第二步:若00r =,则n 为,m n 的最大公约数;若00r ≠,则用除数n 除以余数0r 得到一个商1q 和一个余数1r ;
第三步:若10r =,则1r 为,m n 的最大公约数;若10r ≠,则用除数0r 除以余数1r 得到一个商2q 和一个余数2r ;
……
依次计算直至0n r =,此时所得到的1n r -即为所求的最大公约数.
(7)更相减损术
我国早期也有解决求最大公约数问题的算法,就是更相减损术.
更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母之数,以少减多,更相减损,求其等也,以等数约之.
翻译出来为:
第一步:任意给出两个正数;判断它们是否都是偶数.若是,用2约简;若不是,执行第二步.
第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数.
(8)秦九韶算法
应用秦九韶算法完成一般的多项式f(x)=a n x n +a n-1x n-1+….+a 1x+a 0求值问题
f(x)=a n x n +a n-1x n-1+….+a 1x+a 0
=( a n x n-1+a n-1x n-2+….+a 1)x+a 0 =(( a n x n-2+a n-1x n-3+….+a 2)x+a 1)x+a 0
=......=(...( a n x+a n-1)x+a n-2)x+...+a 1)x+a 0
求多项式的值时,首先计算最内层括号内依次多项式的值,即v 1=a n x+a n-1
然后由内向外逐层计算一次多项式的值,即
v 2=v 1x+a n-2 v 3=v 2x+a n-3 ...... v n =v n-1x+a 0
这样,把n 次多项式的求值问题转化成求n 个一次多项式的值的问题
观察秦九韶算法的数学模型,计算v k 时要用到v k-1的值,若令v 0=a n ,我们可以得到下面的递推公式: v 0=a n
v k =v k-1+a n-k (k=1,2,…n)
这是一个在秦九韶算法中反复执行的步骤,可以用循环结构来实现。
(9)进位制
进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值。可使用数字符号的个数称为基数,基数为n ,即可称n 进位制,简称n 进制。现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。对于任何一个数,我们可以用不同的进位制来表示。比