发布时间 : 星期日 文章高中数学《算法初步复习课》教案新人教版必修更新完毕开始阅读
学习必备 欢迎下载
算法初步 复习课
一.本章的知识结构
算法算法与程序框图程序框图算法的三种基本逻辑结构和框图表示顺序结构分支结构循环结构基本算法语句输入语句、输出语句、赋值语句、条件语句、循环语句 二.知识梳理
要保证算法正确,且计算机能够执行,如:让计算机计算1×2×3×4×5是可以做到的,但让计算机去执行“倒一杯水”“替我理发”等则是做不到的。
算法作为一个名词,在中学教科书中并没有出现过,我们在基础教育阶段还没有接触算法概念。但是我们却从小学就开始接触算法,熟悉许多问题的算法。如,做四则运算要先乘除后加减,从里往外脱括弧,竖式笔算等都是算法,至于乘法口诀、珠算口诀更是算法的具体体现。我们知道解一元二次方程的算法,求解一元一次不等式、一元二次不等式的算法,解线性方程组的算法,求两个数的最大公因数的算法等。因此,算法其实是重要的数学对象。 算法的概念
1 广义地讲 算法是为完成一项任务所应当遵照的一步一步的规则的、精确的、无
歧义的描述,它的总步数是有限的。
2 狭义地讲 算法是解决一个问题采取的方法和步骤的描述
1
例1 任意给定一个大于1的整数n,试设计一个程序或步骤对n是否为质数做出判定。
算法分析:根据质数的定义,很容易设计出下面的步骤:
第一步:判断n是否等于2,若n=2,则n是质数;若n>2,则执行第二步。
第二步:依次从2至(n-1)检验是不是n的因数,即整除n的数,若有这样的数,则n不是质数;若没有这样的数,则n是质数。
小结:算法具有以下特性:(1)有穷性;(2)确定性;(3)顺序性;(4)不惟一性;(5)普遍性
例5 写出求1+2+3+4+5+6的一个算法。 (1)四种基本的程序框
学习必备 欢迎下载
终端框(起止框) 输入.输出框处理框判断框
(2)三种基本逻辑结构
顺序结构 条件结构 循环结构
顺序结构:顺序结构描述的是是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的。
条件结构:一些简单的算法可以用顺序结构来表示,但是这种结构无法对描述对象进行逻辑判断,并根据判断结果进行不同的处理。因此,需要有另一种逻辑结构来处理这类问题,这种结构叫做条件结构。它是根据指定打件选择执行不同指令的控制结构。
循环结构:在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。
(3)基本算法语句 (一)输入语句
学习必备 欢迎下载
单个变量
INPUT “提示内容”;变量
多个变量 INPUT “提示内容1,提示内容2,提示内容3,…”;变量1,变量2,变量3,… (二)输出语句 PRINT “提示内容”;表达式 (三)赋值语句
变量=表达式
(四)条件语句
IF-THEN-ELSE格式
IF 条件 THEN 满足条件? 否 语句1
是 ELSE
语句2 语句1 语句2 END IF
当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2。其对应的程序框图为:(如上右图)
IF-THEN格式
是
满足条件? IF 条件 THEN
语句 否 END IF 语句
计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。其对应的程序框图为:(如上右图)
学习必备 欢迎下载
(五)循环语句
(1)WHILE语句
WHILE 条件
循环体 WEND
循环体 满足条件? 是 其中循环体是由计算机反复执行的一组语句构成的。WHLIE后面的“条件”是用于控否 制计算机执行循环体或跳出循环体的。
当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。因此,当型循环有时也称为“前测试型”循环。其对应的程序结构框图为:(如上右图)
(2)UNTIL语句
循环体 DO
循环体 否
LOOP UNTIL 条件 满足条件?
是
其对应的程序结构框图为:(如上右图)
(4)算法案例
案例1 辗转相除法与更相减损术 案例2 秦九韶算法
案例3 排序法:直接插入排序法与冒泡排序法 案例4 进位制 三.典型例题
例1 写一个算法程序,计算1+2+3+…+n的值(要求可以输入任意大于1的正自然数) 解:INPUT “n=”;n i=1 sum=0
WHILE i<=n sum=sum+i i=i+1 WEND PRINT sum END 思考:在上述程序语句中我们使用了WHILE格式的循环语句,能不能使用UNTIL循环?
例3 把十进制数53转化为二进制数.
543210
解:53=1×2+1×2+0×2+1×2+0×2+1×2