预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

用心爱心专心116号编辑 算法的概念 教学目标:体会算法的思想,了解算法的含义 教学重点:体会算法的思想,了解算法的含义 教学过程: 一、算法的教育价值 1.有利于培养学生的思维能力 2.有利于培养学生理性精神和实践能力 3.有利于学生理结构造性数学 4.算法内容反映了时代的特点,同时也是中国课程内容的新特色 二、算法的概念 算法是解决某个特定问题的一种方法或一个有限过程。 计算机对数据的操作可以分为数值性和非数值性两种类型。在数值性操作中主要进行的是算术运算;而在非数值性操作中主要进行的是检索、排序、插入、删除等等。 设计算法的基本过程 通过对问题进行详细地分析,抽象出相应的数学模型; 确定使用的数据结构,并在此基础上设计对此数据结构实施各种操作的算法; 选用某种语言将算法转换成程序; 调试并运行这些程序。 算法应该具有下列五个特性 (1)有穷性:一个算法必须在执行有穷步之后结束。 (2)确定性:算法中的每一步,必须有确切的含义,在他人理解时不会产生二义性。 (3)动态性:算法中描述的每一步操作都可以通过已有的基本操作执行有限次实现。 (4)输入:一个算法应该有零个或多个输入。 (5)输出:一个算法应该有一个或多个输出。这里所说的输出是指与输入有某种特定关系的量。 举例 问题:按从小到大的顺序重新排列x,y,z三个数值的内容。 算法:(1)输入x,y,z三个数值; (2)从三个数值中挑选出最小者并换到x中; (3)从y,z中挑选出较小者并换到y中; (4)输出排序后的结果。 三、描述算法的几种方式 选择算法描述语言的准则 (1)该语言应该具有描述数据结构和算法的基本功能; (2)该语言应该尽可能地简捷,以便于掌握、理解; (3)使用该语言描述的算法应该能够比较容易地转换成任何一种程序设计语言。 1.自然语言 (1)二义性 (2)繁杂 (3)表达不清楚 2.流程图 (1)直观清楚可读 (2)表达清晰度利于程序语言 3.程序语言 四、本节的例子应主要使用自然语言叙述算法 五、算法举例 一些有趣的问题为我们进一步理解算法提供了很好的例子. 例子:两列火车相对而行如图之有一段旁轨可以利用怎样才能平安错车? 为了方便起见我们把左边的列车叫做“动力号”,右侧的火车叫做“前进号” 在解这个算法是索要涉及的铁轨有四段:左边至旁轨间的那段正规(标为A)。从旁轨一段转辙器至另一端转辙器之间的那段正规(C)、旁轨B、旁轨至右侧间的那段正规(D)。指令“前进到A”的意思是“前进号”的火车(包括车头即现在挂在它后面的所有车厢)向前移动,直到正列货车全部进入A段。 当然,两列火车的车厢各为n节,“动力号”火车的车头标为P1,其车厢为P2、P3……指令“挂上Pk”的意思是把“动力号”的Pk车厢挂在“前进号”火车上。 现在可以给出这个算法了: 1.“动力号”火车完全分开 2.对于k=1至n+1 前进到A 挂上Pk 后退到D 前进到C 脱挂Pk 后退到D 前进到A 后退到C 挂上Pk 后退至D 脱挂Pk 3.“动力号”火车在连接起来 第一步是把问题城的货车全部分开成单独的车头及n节车厢。接着算法进入一个循环,该循环内有十一个步骤反复执行,有“前进号”的火车来完成循环内的全部指令。开始时整列“前进号”火车前进到A,在A端挂上问题城火车的车头P1,然后它牵引着P1后退到D,扳动旁轨转辙器,把P1推入B。此时它与P1脱挂,又退回到D段。再次扳动转辙器后,他又前进到A。接着他在退回入旁轨,挂上P1,把P1从旁轨推到D段。在与P1脱挂。“前进号”火车对问题城的火车的每节车厢反复执行以上步骤,直到主循环圈全部执行完毕。此时,问题城的整列火车就调到了“前进号”火车原来的位置上,于是它就可以前进了。 下面的两个问题,请你想一想,你能给出解决问题的算法吗? 问题一:一列火车想掉头,他只有铁路旁边的一小段副轨,长度恰好容得下一节车厢,该如何做呢? 问题二:左下方有一座不坚固的桥,这座桥只有一节车厢那么长,能勉强承担一节车厢的重量但车头不能经过,如何将两个车厢对调? 小结:本节介绍了算法的基本概念、表述方法及特征 课后作业:(略)