第一章算法初步
1.1算法与程序框图 1.1.1算法的概念
授课时间:第_周 _____________ 年_月—日(星期_)
教学分析
算法在中学数学课程中是一个新的概念,但没有一个精确化的定义,教科书只对它作了如下描述: 在数学中,
算法通常是指按照一定规则解决某一类问题的明确有限的步骤
? ”为了让学生更好理解这一概念,教科书先从分析一个
具体的二元一次方程组的求解过程出发,归纳出了二元一次方程组的求解步骤,这些步骤就构成了解二元一次方程 组的算法?教学中,应从学生非常熟悉的例子引出算法,再通过例题加以巩固 三维目标
1?正确理解算法的概念,掌握算法的基本特点? 2?通过例题教学,使学生体会设计算法的基本思路
3?通过有趣的实例使学生了解算法这一概念的同时,激发学生学习数学的兴趣 重点难点
教学重点:算法的含义及应用 ? 教学难点:写出解决一类问题的算法
?
教学过程
导入新课
思路1 (情境导入)
一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数 量不少于羚羊的数量狼就会吃羚羊 ?该人如何将动物转移过河?请同学们写出解决问题的步骤,解决这一问题将要
用到我们今天学习的内容 一一算法?
思路2 (情境导入)
大家都看过赵本山与宋丹丹演的小品吧,宋丹丹说了一个笑话,把大象装进冰箱总共分几步? 答案:分三步,第一步:把冰箱门打开;第二步:把大象装进去;第三步:把冰箱门关上 上述步骤构成了把大象装进冰箱的算法,今天我们开始学习算法的概念
思路3 (直接导入)
算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础
?在现代社会里,计算机已成为人们日常
生活和工作中不可缺少的工具 ?听音乐、看电影、玩游戏、打字、画卡通画、处理数据,计算机是怎样工作的呢?要 想弄清楚这个问题,算法的学习是一个开始 推进新课 新知探究 提出问题
(1)解二元一次方程组有几种方法?
x 2y 1,(1)总结用加减消元法解二元一次方程组的步骤
2x y 1, (2) x 2v 1 (1)
总结用代入消元法解二元一次方程组的步骤
2x y 1, (2)
(4 )请写出解一般二元一次方程组的步骤 (5) 根据上述实例谈谈你对算法的理解 (6) 请同学们总结算法的特征 .
(7) 请思考我们学习算法的意义 ? 讨论结果:
(2)结合教材实例
(3)结合教材实例
(1) 代入消元法和加减消元法 (2) 回顾二元一次方程组
x 2v 1 (1)
的求解过程,我们可以归纳出以下步骤:
2x v 1, (2)
第一步,①+②疋,得5x=1.③ 1 第二步,解③,得x=-.
5 第三步,②-①X2,得5y=3.④ 3 第四步,解④,得 y=.
5
第五步,得到方程组的解为
(3) 用代入消元法解二元一次方程组
x 2v 1 (1) 我们可以归纳出以下步骤:
2x y 1, (2)
第一步,由①得x=2y — 1.③ 第二步,把③代入②,得 2(2y — 1)+y=1.④
3
第三步,解④得y=.⑤
5
3 1 第四步,把⑤代入③,得
x=2X 3 —仁丄.
5
5
第五步,得到方程组的解为
1 x
5
3 y
(4)
对于一般的二元一次方程组a 1x C 1,⑴
a ?x
b 2y
C 2, (2)
其中a 1b 2 — 32b 1M 可以写出类似的求解步骤: 第一步,①?2-②心,得
(a 1b 2 — a 2b 1) x=b 2C 1 — be.③
第三步,② Xa 1-① 吃,得(a 1b 2— a 2b 1)y=a 1C 2 — a 2C 1.④
a 1 C 2 a 2C 1
第四步,解④,得 y=4
a 〔
b 2 a ?b 1
第二步,解③,得
b 2C ] b 1
c 2
x=
玄1匕 2 玄
x b2& be (5)
算法的定义:广义的算法是指完成某项工作的方法和步骤,那么我们可以说洗衣机的使用说明书是操作
洗衣机的 算法,菜谱是做菜的算法等等 ?
在数学中,算法通常是指按照一定规则解决某一类问题的明确有限的步骤 现在,算法通常可以编成计算机程序,让计算机执行并解决问题
(6)
算法的特征:①确定性:算法的每一步都应当做到
准确无误、不重不漏 ?不重”是指不是可有可无的,甚至无用的
步骤,不漏”是指缺少哪一步都无法完成任务 ?②逻辑性:算法从开始的第一步”直到最后一步”之间做到环环相扣, 分工明确, 前一步”是 后一步”的前提,
后一步”是 前一步”的继续?③有穷性:算法要有明确的开始和结束,当到 达终止步骤
时所要解决的问题必须有明确的结果,也就是说必须在有限步内完成任务,不能无限制地持续进行
(7)
在解决某些问题时,需要设计出一系列可操作或可计算的步骤来解决问题,这些步骤称为解决这些问题的算法 ?也
就是说,算法实际上就是解决问题的一种程序性方法 ?算法一般是机械的,有时需进行大量重复的计算,它的优点是 一种通法,只要按部就班地去做,总能得到结果 ?因此算法是计算科学的重要基础 ?
应用示例
思路1
例1
( 1)设计一个算法,判断 7是否为质数.
(2) 设计一个算法,判断 35是否为质数?
算法分析:(1 )根据质数的定义,可以这样判断:依次用 2 — 6除7,如果它们中有一个能整除 7,则7不是质数,
否则7是质数.
算法如下: (1)第一步,用2除7,得到余数1.因为余数不为0,所以2不能整除7. 第二步,用3除7,得到余数1?因为余数不为 第三步,用4除7,得到余数3?因为余数不为 第四步,用
5除7,得到余数2?因为余数不为 第五步,用6除7,得到余数1?因为余数不为 (2)类似地,可写出 判断35是否为质数”的算法:
第一步,用 2除35,得到余数1?因为余数不为0,所以2不能 整除35. 第二步,用3除35,得到余数2?因为余数不为0,所以3不能整除35. 第三步,用4除35,得到余数3?因为余数不为0,所以4不能整除35.
第四步,用5除35,得到余数0?因为余数为0,所以5能整除35.因此,35不是质数. 变式训练
请写出判断n(n>2)是否为质数的算法.
分析:对于任意的整数n(n>2),若用i 表示2— (n-1)中的任意整数,则
判断n 是否为质数”的算法包含下面的重复操
作:用i 除n,得到余数r.判断余数r 是否为0,若是,则不是质数;否则,将 i 的值增加1,再执行同样的操作.
这个操作一直要进行到
i 的值等于(n-1)为止.
算法如下:第一步,给定大于 2的整数n.
第二步,令i=2.
第三步,用i 除n,得到余数r.
第四步,判断“r=0是否成立.若是,则n 不是质数,结束算法;否则,将 i 的值增加1,仍用i 表示. 第五步,判断“A (n-1)”是否成立.若是,则n 是质数,结束算法;否则,返回第三步 . 例2写出用 二分法”求方程x 2-2=0 (x>0)的近似解的算法. 分析:令f(x)=x 2-2,则方程x 2-2=0 (x>0)的解就是函数f(x)的零点.
第五步,得到方程组的解为
a
i b 2 a 2 b i a 〔C 2 a ?C i a 〔b 2 a ?b i
0,所以3不能整除7. 0,所以4不能整除7.
0,所以5不能整除7. 0,所以6不能整除7?因此,
7是质数.
二分法”的基本思想是:把函数f(x)的零点所在的区间[a,b](满足f(a) f(b)<0 ) 一分为二”,得到[a,m]和]m,b:. 根据“ f(a)
x
- f(m)是否成立,取出零点所在的区间]a,m]或[m,b],仍记为[a,b].对所得的区间[a,b]重复上述步
骤,直到包含零点的区间]a,b]足够小”则]a,b]内的数可以作为方程的近似解?
解:第一步,令f(x)=x2_2,给定精确度d.
第二步,确定区间]a,b],满足f(a) f(b)<0.
第三步,取区间中点m=a b.
2
第四步,若f(a) f(m)<0 ,则含零点的区间为]a,m];否则,含零点的区间为]m,b].将新得到的含零点的区间仍记为
[a,b].
第五步,判断[a,b]的长度是否小于d或f(m )是否等于0?若是,则m是方程的近似解;否则,返回第三步?
当d=0.005时,按照以上算法,可以得到下表.
于是,开区间(1.414 062 5,1.417 968 75 )中的实数都是当精确度为0.005时的原方程的近似解?实际上,上述步骤也是求,2的近似值的一个算法.
例1 一个人带着三只狼和三只羚羊过河,只有一条船,同船可容纳一个人和两只动物,没有人在的时候,如果狼的数量不少于羚羊的数量就会吃羚羊?该人如何将动物转移过河?请设计算法.
分析:任何动物同船不用考虑动物的争斗但需考虑承载的数量,还应考虑到两岸的动物都得保证狼的数量要小于羚
羊的数量,故在算法的构造过程中尽可能保证船里面有狼,这样才能使得两岸的羚羊数量占到优势
解:具体算法如下:
算法步骤:
第一步:人带两只狼过河,并自己返回.
第二步:人带一只狼过河,自己返回.
第三步:人带两只羚羊过河,并带两只狼返回
第四步:人带一只羊过河,自己返回.
第五步:人带两只狼过河.
强调:算法是解决某一类问题的精确描述,有些问题使用形式化、程序化的刻画是最恰当的?这就要求我们在写算法
时应精练、简练、清晰地表达,要善于分析任何可能出现的情况,体现思维的严密性和完整性.本题型解决问题的算
法中某些步骤重复进行多次才能解决,在现实生活中,很多较复杂的情境经常遇到这样的问题,设计算法的时候,如果能够合适地利用某些步骤的重复,不但可以使得问题变得简单,而且可以提高工作效率
知能训练
设计算法判断一元二次方程ax2+bx+c=0是否有实数根.
解:算法步骤如下:
第一步,输入一元二次方程的系数:a, b, c.
第二步,计算△=呂—4ac的值.
第三步,判断是否成立?若成立,输出方程有实根”;否则输出方程无实根”结束算法.
强调:用算法解决问题的特点是:具有很好的程序性,是一种通法.并且具有确定性、逻辑性、有穷性?让我们结合例
题仔细体会算法的特点.
拓展提升
中国网通规定:拨打市内电话时,如果不超过3分钟,则收取话费0.22元;如果通话时间超过3分钟,则超出部分按每分钟0.1元收取通话费,不足一分钟按一分钟计算.设通话时间为t (分钟),通话费用y (元),如何设计一个程序,计算通话的费用.
解:算法分析:数学模型实际上为:y关于t的分段函数. 关系式如下:
0.22,(0 t 3),
y= 0.22 0.1(t 3),(t 3,t Z),
0.22 0.1([T 3] 1),仃3,t Z).
其中]t- 3]表示取不大于t- 3的整数部分.
算法步骤如下:
第一步,输入通话时间t.
第二步,如果t 那么y=0.22 ;否则判断t€ Z是否成立,若成立执行
y=0.2+0.1 (t—3);否则执行y=0.2+0.1 >(:t —3] +1). 第三步,输出通话费用c.
课堂小结
(1 )正确理解算法这一概念.
⑵结合例题掌握算法的特点,能够写出常见问题的算法作业
课本本节练习1、2.
1.1.2 程序框图与算法的基本逻辑结构
整体设计
授课时间:第 _周____________ 年_月_日(星期_)
三维目标
1 ?熟悉各种程序框及流程线的功能和作用.
2 ?通过模仿、操作、探索,经历通过设计程序框图表达解决问题的过程?在具体问题的解决过程中,理解程序框图的
三种基本逻辑结构:顺序结构、条件结构、循环结构
3?通过比较体会程序框图的直观性、准确性.
重点难点
数学重点:程序框图的画法? 数学难点:程序框图的画法?
教学过程
第1课时程序框图及顺序结构
导入新课
思路1 (情境导入)
我们都喜欢外出旅游,优美的风景美不胜收,如果迷了路就不好玩了,问路有时还听不明白,真是急死人,有的同学说买张旅游图不就好了吗,所以外出旅游先要准备好旅游图?旅游图看起来直观、准确,本节将探究使算法表
达得更加直观、准确的方法?今天我们开始学习程序框图?
思路2 (直接导入)
用自然语言表示的算法步骤有明确的顺序性,但是对于在一定条件下才会被执行的步骤,以及在一定条件下会被重复执行的步骤,自然语言的表示就显得困难,而且不直观、不准确?因此,本节有必要探究使算法表达得更加直
观、准确的方法?今天开始学习程序框图?
推进新课
新知探究提出问题
(1)什么是程序框图?
(2)说出终端框(起止框)的图形符号与功能?
(3 )说出输入、输出框的图形符号与功能?
(4)说出处理框(执行框)的图形符号与功能?
(5 )说出判断框的图形符号与功能?
(6 )说出流程线的图形符号与功能?
(7 )说出连接点的图形符号与功能?
(8 )总结几个基本的程序框、流程线和它们表示的功能
(9)什么是顺序结构?讨论结果:
(1)程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形
在程序框图中,一个或几个程序框的组合表示算法中的一个步骤;带有方向箭头的流程线将程序框连接起来,表示算法步骤的执行顺序?(2)椭圆形框:f二】表示程序的开始和结束,称为终端框(起止框) ?表示开始时只有一个出口;表示结束时只有一个入口.
(3)平行四边形框:.—「表示一个算法输入和输出的信息,又称为输入、输出框,它有一个入口和一个出口.
(4 )矩形框:表示计算、赋值等处理操作,又称为处理框(执行框) ,它有一个入口和一个出口.
(5 )菱形框:是用来判断给出的条件是否成立,根据判断结果来决定程序的流向,称为判断框,它有一个入口
和两个出口.