您现在的位置: 3edu教育网 >> 海量教案 >> 数学教案 >> 高二数学教案 >> 正文    3edu教育网,百万资源,完全免费,无需注册,天天更新!

算法的概念教案

分类:高二数学教案   更新:2015/6/13   来源:网络

  教学目标 1、知识目标:了解算法。分析算法。2、能力目标:体验程序的独特魅力,了解编程加工的内在机制,培养学生的创新能力。 3、情感目标:通过编程实现信息的加工,激发学生的兴趣,增加学生的成就感。

  重点:如何分析算法,算法的概念 ,算法的表示

  难点: 如何写算法。理解用算法描述实际问题,理解人的思维在计算机工作中发挥的作用。

  教学方法:讲授法,演示法,归纳法

  教学反思:

  教 学 过 程

  一、 导入

  在学习程序设计时,既要掌握所使用的某种计算机计算机语言如PASCAL语言,更好掌握解题的方法和步骤,这是程序设计中的关键。语言只是一个工具,只懂得语言的规则并不能编制出有效的高质量的程序,下面所讲座的算法,就是研究解题的步骤和方法,这是编程的基础,同时也是我们解数理化题的基础。

  著名计算机科学家沃思提出一个公式:

   数据结构 + 算法 = 程序

  二新授

  什么是算法:广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。

  或者说:算法是解题方法的精确描述。解决一个问题的过程,就是实现一个算法的过程。

  1.做任何事情都有一定的步骤。例如要计算

  的值,无论手算,心算,或用算盘,计算器计算,都要经过有限的事先设计好的步骤。

  2、对同一个问题,往往有不同的解题方法和步骤

  如

  • 方法1:顺序计算1-1/2+1/3-1/4+1/5……+1/99-1/100,一直加到100 加99次

  • 方法2:先计算+,再计算减,即1+1/3+1/5……+1/99,1/2+1/4+1/6……+1/100当然各种方法有优劣之分。

  3、不仅数值计算的问题要研究算法,实际上,做任何事情。都需要事先设想好的步骤和方法,这就是算法。

  计算机算法可分为两大类别:

  • 数值运算

  • 非数值运算

  数值运算举例:求数值解,例如求方程的根、求函数的定积分等。

  非数值运算举例:人名排序,图书资料检索等.

  三、 简单算法举例

  为了理解如何设计算法,下面举几个算法的简单例子。

  [例1] 有两个杯子A和B,分别盛有果汁和酒,要求将这两个杯子进行互换。

  (请学生回答,并要求说清楚明确的步骤)

  学生所回答的步骤就是算法的描述:

  根据常识,必须增加一个空杯C作为过渡。

  其算法表示

  步骤1:先将A杯中的果汁倒在C杯中;

  步骤2:再讲B杯中的酒倒在A杯中;

  步骤3:最后将C杯中的果汁倒在B杯中。

①果汁

C

B

A

③果汁

文本框: 酒 ②

  此问题可以抽象为数值运算中的交换两个变量的值,简化为:

  ①A → C

  ②B → A

  ③C → B

  [例2] 从十个数中挑选出最大的数。

  创设情景:这个问题的思路可以用“打描台”来比喻。第一个同学先上讲台,然后第二个同学上去比试,胜者(个子高的)留在讲台上,依次轮流,一直到第十个人比完为止()一共九次)最后留在讲台上的同学就是胜者(个子最高的同学)。

  算法描述:

  1. 先任选一个数放在变量A中;

  2. 将第二个数与变量A中的数进行比较,大者放在变量A中;

  3. 再将第三个数与变量A中的数进行比较,大者放在变量A中;

  :

  :

  :

  10. 最后将第十个数与变量A中的数进行比较,大者放在变量A中。

  这样写算法虽然正确,但是太烦琐了,可以简化为如下:

  1. 数X → A,计数器 0 → N;

  2. 下一个数Y与A比较,大者→ A;

  3. N + 1 → N;(增加一次比较次数)

  4. 若N ﹤ 9,执行第2步,否则停止循环,此时A中的数最大。

  显然,用“循环”表示的算法比较简练。

  如果题目要求改为“从1000个数中挑选最大者”,只许需要将算法里面的第4步中的“9”改为“999”即可。

  [例3] 求两个正整数m和n的最大公约数。

  解题之前介绍“辗转相除法”求最大公约数的方法。“辗转”就字面意思来讲是翻来覆去的意思,因此“辗转相除法”的格式可以形象地表示为:

其中,m n ri为余数,qi为商。

一直除到rn  = 0 为止,则rn-1 即为最大公约数。

 

r2

n

·

q2

q3

r3

q1

m

r1

文本框: •••••

  将m和n赋具体值,m = 60,n = 14,板书具体求解方法。

  用m 作被除数, n 作除数,r 做余数。

  具体方法(算法)为:

  ①求m/n的余数r;

  ②若r = 0 ,则n为最大公约数,若r ≠ 0,执行第③步;

  ③将n → m,将r → n中;

  ④返回重新执行第①步。

  注意:如果事先不知道M,N两个数谁大谁小,应(可)在第一步之前增加一个步骤,比较一下两个数的大小,大数在m中,小数在n中。

  四、 算法的特性

  1、有穷性:一个算法应该包含有限个操作步骤,而不能是无限的。

  2、确定性:算法的每个步骤都应该是明确无误的,不能含义模糊,使执行者无所适从。

  3、有零个或者多个输入

  4、有一个或者多个输出

  5、有效性:算法中的每一步都应该能有效地执行,执行算法最后应该能得到确定的结果。

  五、 归纳总结

  算法的概念;

  算法的描述;

  算法的特性:

  • 有穷性:包含有限的操作步骤

  • 确定性:算法中的每一个步骤都应当是确定的

  • 有零个或多个输入:输入是指在执行算法时需要从外界取得必要的信息

  • 有一个或多个输出:算法的目的是为了求解,“解” 就是输出

  • 有效性:算法中的每一个步骤都应当能有效地执行,并得到确定的结果 。

  对于程序设计人员来说,我们不仅要会使用现成的算法,还要会设计算法,即要设计出算法中的每一个步骤。

  六、 练习

  ① 用辗转相除法求324和180的最大公约数。

  七、板书设计

  八、课后记

| 设为首页 | 加入收藏 | 联系我们 | 版权申明 | 隐私策略 | 关于我们 | 手机3edu | 返回顶部 |