10.1 算法概念(1).doc

上传人:大米 文档编号:562605094 上传时间:2023-05-21 格式:DOC 页数:4 大小:167KB
返回 下载 相关 举报
10.1 算法概念(1).doc_第1页
第1页 / 共4页
10.1 算法概念(1).doc_第2页
第2页 / 共4页
10.1 算法概念(1).doc_第3页
第3页 / 共4页
10.1 算法概念(1).doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《10.1 算法概念(1).doc》由会员分享,可在线阅读,更多相关《10.1 算法概念(1).doc(4页珍藏版)》请在金锄头文库上搜索。

1、10.1 算法概念(1)一、教学内容分析随着计算机在社会各方面的普及,软件的地位日渐突出;软件通常所指的就是计算机可以执行命令的集合,即程序算法初步就是针对编写计算机程序而设计的一章教学内容我们知道数学可以培养学生逻辑思维能力和抽象思维能力,算法和编程同样需要很强的逻辑思维能力和抽象思维能力,从这个方面来说,它是数学学科实际应用的一个重要内容通过本章的学习,可以让学生体会到计算机是一个重要的工具,通过程序的编写和执行,学生可以体会到人的思维在计算机上得到延续。二、教学目标设计1.通过实例,了解算法的概念,体会算法的意义和特点;2.能够叙述一些简单问题的算法;3.理解算法与计算机应用之间的关系,

2、通过简单的算法设计初步认识算法的作用;4.理解算法的三个主要逻辑结构-顺序结构、条件结构和循环结构。三、教学重点及难点重点:理解算法的作用:算法是解决“做什么”和“怎么做”的问题;难点:赋值语句的合理使用,循环结构和条件结构的使用。例题巩固四、教学流程设计算法的描述设计实际问题的算法引入实际问题,体会算法五、教学过程设计(一)算法的概念在讲算法的概念之前,我们先来了解一下圆周率的发展历史及古今中外的数学家们求圆周率的近似值的计算方法:很早以前,人们就知道圆的周长和直径的比值是个与圆的大小无关的常数,并称之为圆周率。古希腊大数学家阿基米德(公元前287212 年) 通过计算边数倍增的圆的外切和内

3、接正多边形的周长来确定圆周长的上下界进而求出的近似值,他是数学史上第一个用科学方法寻求圆周率数值的人。他的计算方法是:为了计算方便,从单位圆出发,先用内接正六边形求出圆周率的下界为3,再用外接正六边形并借助勾股定理求出圆周率的上界小于4。接着,他对内接正六边形和外接正六边形的边数分别加倍,将它们分别变成内接正12边形和外接正12边形(借助勾股定理可由圆的内接(或外切)正六边形的边长得到圆的内接(或外切)正十二边形的边长)。他逐步对内接正多边形和外接正多边形的边数加倍,直到内接正96边形和外接正96边形为止。最后,他求出圆周率的下界和上界分别为223/71 和22/7, 取值约为3.14作为圆周

4、率的近似值。开创了圆周率几何计算之先河。公元200年间,我国古代魏晋时期著名数学家刘徽在九章算术注9卷中,提出了计算圆周率的方法割圆术。刘徽发现圆内接多边形的边数无限增加时,多边形周长就无限逼近圆的周长,他说:“割之弥细,所失弥少,割之又割,以至于不可割,则与圆合体而无所失矣。”刘徽从圆内接正六边形算起,相继算出正十二边形、正二十四边形,直至圆内接正三千零七十二边形的边长,得到了在3.1415和 3.1416这两个数之间。刘徽运用了初步的极限概念,这在当时世界上是最先进的,这个计算结果也是当时世界上圆周率计算的最精确地数据。南北朝时代著名数学家祖冲之进一步得出精确到小数点后7位的值(约5世纪下

5、半叶),他的辉煌成就比欧洲至少早了1000年。这种基于几何的算法运算量大、速度慢、吃力不讨好,随着数学的发展,数学家们在进行数学研究时,有意无意地发现了许多计算圆周率的公式。无穷乘积式、无穷连分数、无穷级数等各种值表达式纷纷出现,值计算精度也迅速增加。1706年英国数学家(也是天文学教授)梅钦计算值突破100位小数大关。进入二十世纪,随着计算机的发明,圆周率的计算有了突飞猛进。借助于超级计算机,圆周率的计算速度和精度的记录不断的被刷新。20世纪末,两位日本人用高斯-勒让德公式(这个公式每迭代一次将得到双倍的十进制精度,比如要计算100万位,迭代20次就够了)编写程序,利用超级计算机计算了37小

6、时21分,得到了小数点后206158430000位的圆周率。把圆周率的数值算得这么精确,实际意义已经不大,现在的人计算圆周率多数是为了验证计算机的计算能力还有就是为了兴趣。正如有人所说,数学家探索中的进程也像这个数一样:永不循环,无止无休.我们可以看到,在圆周率的发展历史过程中,数学家们提供了求圆周率的的近似值的不同的计算方法,设计一系列可执行的步骤或者运用一个公式来解决问题,我们把一套计算的方法称作为求圆周率的一种算法。课本上算法的描述性的定义:一般地,对于一类有待于求解的问题,如果建立一套通用的解题方法,按部就班地实施这套方法就能使这类问题得以解决,那么这套解题方法是求解该类问题的一种算法

7、。通俗地说, 算法就是为解决一个问题而采取的方法和步骤。从引例中我们还可以看到,一个问题的算法设计是不唯一的、每一步都是明确的、每一步都是可以执行的、最后能解决问题的(有结果的)以及步骤是有限的。现实生活中也有很多算法的例子:如烧水泡茶的过程.通过这个例子,让学生理解算法的含义,强调步骤的重要性,有些步骤可以互换,但有优劣之分。(二)常用算法的表示方法:1、自然语言 2、流程图 3、计算机编程语言/伪代码 我们今天要学习的是用自然语言表达一种算法,把解决问题的方案中的每个步骤都用语言表述出来,这是后面我们学习程序框图的一个过渡。 (第一类问题:求和的算法) 先对算法允许的可行运算作一个最基本的

8、限定。算法1:抛开我们已经学过的知识,如果我们只是小学生,我们会怎样设计及表述解题的步骤?这种结构为顺序结构这样的算法虽然是正确的,但是写法太过繁琐需要99个步骤。算法2:这种方法称为公式法,确实非常简捷。但如果将题目改为求的值呢?没有求和公式怎么办呢?算法3:分析可以设计两个变量,变量代表项数,变量代表前和利用循算法的循环结构来求结果。这样表示的算法具有通用性、灵活性,可以解决很多种求和的问题,步骤组成一个循环,在实现算法时,要反复多次执行步骤,直到某一时刻,在执行步骤时经过判断,项数已超过规定的数值而不返回到步骤为止此时结束算法,变量的值就是所求的结果。如要求的值,只需:;(准备求下一项)

9、如果,返回步骤继续执行;否则,输出并结束计算。将这个算法稍做改动,可以解决“累加、累乘”等一系列问题。计算机中常出现“max”、 “min”和“sum”等的指令,瞬时就完成了工作,那么计算机室如何实现这项工作的呢?是人们给它设计了某种算法。今天我们的学习中也包含了计算机中的一些最基本的可行运算的算法的设计。*算法的基本结构 一般来说,算法中会包含顺序、判断和循环三种结构 顺序结构:描述的是最简单的算法结构,语句与语句之间是按从上到下的顺序进行的,按序进行,一般不能颠倒。 条件结构:对对象进行逻辑判断,并根据判断结果进行不同的处理它的一般写法是:如果满足条件A,执行指令(或指令组);否则,执行另

10、外一个指令(或指令组)。 循环结构:在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一指令(或指令组)的情况,这就是循环结构,反复执行的处理步骤为循环体。显然,循环结构中一定包含条件结构。其中变量的数值决定了循环的“继续”还是“结束”,故称为循环变量。所以,上例把上述3种结构都包含在内了。随着计算机技术的迅速发展,人们正在把越来越多的工作交给计算机来实现。尽管计算机快速、准确的运算能力是人力难以达到的,但是计算机作为工具它自身并不具备分析和设计的能力,它的行为需要人的指挥,因此设计计算机能执行的算法并做到既快又省是我们设计算法的最高追求。 例2. 对于第七章阅读材料中所给出的Fib

11、onacci 数列:,计算并输出和前项的和分析:这里需要设定一个数组(数列),还有项数变量,前项和。解:;(为什么?);,;如果,返回步骤继续执行;否则,输出和并结束计算。注:斐波那契数列,又称黄金分割数列,在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用。例3. 对于任意五个数,设计算法(1)求它们中的最大数;(2)在求得最大数的同时,给出该数的序号(第二类问题:求最大数的算法)简化表述(1) 如果,则,再执行下一步骤;如果,则直接执行下一 步骤 如果,那么再执行步骤;如果,那么输出M的值。所以,M的值为中的最大数。 (2), 如果,则,再执行下一步骤;如果,则直接执行下一步骤

12、 如果,那么再执行步骤;如果,那么输出M的值。所以,的值为中的最大数。说明 这是两个问题,(2)可以在(1)的基础上修改;如果,那么;否则该结构成为条件结构;如何简化课本P110上的算法?如果改成100个数,又怎样? 把改成(这样的表述有利于在比较多的数中求最大值的算法)例4.将任意给定的五个数按数值由小到大的顺序排列 说明1.在例2中,用最基本的可行运算设计了“求个数中最大的数”的算法,这个算法也成了一种可行运算。2.步骤中,就可以实现最大值与的对换,顺序不能颠倒;如果是顺序执行,的值就消失了,这样就出现逻辑上的错误例3和例4所做的工作:求一组数据的最大值(或最小值)、将数据按大小顺序排列是

13、数据整理中最基础的工作,我们经常把这些工作交给计算机来做。(三)总结算法的特点:n 有限性:一个算法必须保证执行有限步之后结束n 确定性:算法的每一步骤必须有确切的定义,不能模棱两可n 可行性:算法中的每一步骤多必须是计算机能够有效执行、可以实现的 n 顺序性:算法中的每一个步骤都是有顺序的,前一步是后一步的前提,只有执行完前一步后,才能执行后一步,有着很强逻辑性的步骤序列n 不唯一性:某一个问题的算法不一定只有唯一的一个,可以有不同的算法n 必须有输入与输出:一个算法有0个或多个输入,有一个或多个输出 今天,我们经历了设计算法的原始过程,从中体会了算法的意义和特点,希望能对大家以后的学习后所帮助.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号