文档视界 最新最全的文档下载
当前位置:文档视界 › 计算机程序算法与算法描述

计算机程序算法与算法描述

计算机程序算法与算法描述
计算机程序算法与算法描述

计算机程序算法与算法描述

一、教学目标

(一)知识与技能:

1)学会分析问题。

2)学会用流程图描述问题的算法。

(二)过程与方法:

通过创设现实生活中的问题情境帮助学生分析问题。

(三)情感态度价值观:

提高学生分析、解决问题的能力。

二、教学重难点

(一)重点:

学会用流程图描述算法。

(二)难点

1)让学生学会分析问题,建立描述问题的模型

2)让学生理解用流程图描述实际问题,理解人的思维在计算机工作中发挥的作用

三、教法学法

游戏教学法

四、教学过程

简单解释流程图基本图形:

过程

《算法和算法的描述》教学设计

《算法和算法的描述》教学设计 一、教材处理 本节课以教育科学出版社教材《算法与程序设计》的第一章《如何用计算机解决问题》和第二节《算法描述与设计》作为基本教学内容,用一节课时间完成。 本节课学生第一次接触算法,如果只讲解算法的概念就要求学生对实际问题进行分析、建模、设计合理算法,感觉难度较大。因此,我从“人鬼过河”这一智力游戏开始,通过实例介绍算法的概念,再例举学生熟悉的数学问题,让学生在分析问题中学会设计算法,并让他们采用算法描述工具描述相应的算法。 二、教学目标 1.理解算法的含义。 2.掌握用自然语言、流程图描述算法。 3.了解算法的基本特征。 4.通过流程图形象直观地了解顺序、选择、循环三种基本结构。

三、教学重点与难点 重点:让学生经历分析问题、设计算法,用自然语言、流程图等方法描述算法的过程。 难点:对算法概念的理解,设计出合理的算法。 四、教学媒体 多媒体课件、VB小程序、网络教室 五、教学过程 教师活动:介绍游戏规则,让学生在“人鬼过河”这一Flash游戏中思考解决问题的步骤。 学生活动:在游戏中亲身经历分析问题、解决问题的过程。 (设计意图:算法的含义比较抽象,如果一下子抛出算法的定义,学生无法真正理解,所以引入趣味游戏,让学生在游戏中思考。) (一)引入新课 教师活动: ①请个别学生讲解操作这个游戏的步骤,教师进行归纳

总结,用自然语言描述出来。 ②由解决游戏的步骤引出算法的定义――算法是解决 问题的方法和步骤。 ③算法需要将它描述出来才能为人所知。学生描述“人鬼过河”游戏的各步骤就是算法的一种描述方法――自然语言描述法。教师介绍如何用自然语言描述算法。 学生活动: ①理解算法的定义。 ②初步体会用自然语言描述算法的过程。 (设计意图:①引导学生总结游戏步骤,由具体事例引出算法的概念。②学生体会用自然语言描述算法的过程。)(二)学生实践一 1.布置任务 教师活动:讲述“水仙花数”问题,让学生判断任一三位数是否为水仙花数,并引导学生用自然语言将自己设计的算法描述出来。 学生答案1:取百、十、个位数字,求他们的立方和,判断立方和是否等于原数,如果相等就是水仙花数,否则就不是水仙花数。 学生答案2:设x=abc,若a3+b3+c3=x,则x是水仙数,否则不是水仙花数。 2.指导实践

算法设计与分析课程设计(完整版)

HUNAN CITY UNIVERSITY 算法设计与分析课程设计 题目:求最大值与最小值问题 专业: 学号: 姓名: 指导教师: 成绩: 二0年月日

一、问题描述 输入一列整数,求出该列整数中的最大值与最小值。 二、课程设计目的 通过课程设计,提高用计算机解决实际问题的能力,提高独立实践的能力,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。提高适应实际,实践编程的能力。在实际的编程和调试综合试题的基础上,把高级语言程序设计的思想、编程巧和解题思路进行总结与概括,通过比较系统地练习达到真正比较熟练地掌握计算机编程的基本功,为后续的学习打下基础。了解一般程序设计的基本思路与方法。 三、问题分析 看到这个题目我们最容易想到的算法是直接比较算法:将数组的第 1 个元素分别赋给两个临时变量:fmax:=A[1]; fmin:=A[1]; 然后从数组的第 2 个元素 A[2]开始直到第 n个元素逐个与 fmax 和 fmin 比较,在每次比较中,如果A[i] > fmax,则用 A[i]的值替换 fmax 的值;如果 A[i] < fmin,则用 A[i]的值替换 fmin 的值;否则保持 fmax(fmin)的值不变。这样在程序结束时的fmax、fmin 的值就分别是数组的最大值和最小值。这个算法在最好、最坏情况下,元素的比较次数都是 2(n-1),而平均比较次数也为 2(n-1)。 如果将上面的比较过程修改为:从数组的第 2 个元素 A[2]开始直到第 n 个元素,每个 A[i]都是首先与 fmax 比较,如果 A[i]>fmax,则用 A[i]的值替换 fmax 的值;否则才将 A[i]与 fmin 比较,如果 A[i] < fmin,则用 A[i]的值替换 fmin 的值。 这样的算法在最好、最坏情况下使用的比较次数分别是 n-1 和 2(n-1),而平均比较次数是 3(n-1)/2,因为在比较过程中,将有一半的几率出现 A[i]>fmax 情况。

1-2算法的描述与设计--教案

1-2节算法描述和设计第2课时 一、【教学目标】 1、知识和技能 (1)了解算法的定义及其表达方法; (2)认知流程图的六种基本符号; (3)理解计算机解决问题的一般过程。 2、方法和过程 (1)理解用不同的表达方法描述算法的优缺点; (2)掌握用流程图描述简单的算法。 3、情感态度和价值观 以生活中的实例引入算法,激发学生的学习兴趣,培养学生的主动探究能力。 二、重点难点 (一)教学重点 1、算法的定义; 2、算法的三种表达方法; 3、流程图的六种基本符号; 4、用流程图描述简单的算法。 (二)教学难点 5、算法的描述(三种); 6、用流程图描述算法。 三、教学环境 1、教材处理 通过物理学中的实例了解算法的概念和算法的描述方法掌握用计算机解决实际问题的一般步骤。用多媒体教学网开展教学;用“先自主探究,后教学指导”的方法进行教学。 2、所需软件:学生机要安装VB6.0或以上版本。 3、教学方法:任务驱动法 学时:1学时 四、教学过程 教学内容预期目标导入: 一、对算法的初步了解 1.一个简单的物理问题: 书中例6-1-1:求物体在恒力作用下的加速度。 根据在物理课中学过的知识,要解决这个问题有多种方法:(学生讨论) 方法一: a) 测量出物体的质量m、拉力F和滑动摩擦力f b) 将测量所得的数据输入计算机 c) 根据牛顿第二定律F-f=m*a,计算出加速度a d) 输出所得的结果 方法二: a) 测量出物体从静止开始移动的距离s、时间t b) 将测量所得的数据输入计算机引入物理学中的例子,激发学生的学习兴趣,有助于学生理解算法的概念 引导出算法的概念 介绍三种算法的表达方式,

算法与算法描述教学设计

算法与算法描述教学设 计 公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]

算法与算法描述教学设计 一、教学目标 (一)知识与技能 1.充分理解掌握算法的概念及其特点 2.学会用自然语言来准确地描述算法 3.认知流程图的六种基本符号,用流程图描述简单的算法 4.理解科学合理的选择和设计算法 (二)过程与方法 1.通过问题的解决,培养学生观察流程图问题、分析问题和解决问题的能力 (三)情感态度与价值观 激发学生学习算法设计的兴趣,使学生积极参与,发挥他们的主动性,激发他们的求知欲;认识计算机只是工具,合理的指挥和控制计算机来解决学习和生活中的问题。 二、内容分析

教学重点: 1. 充分理解掌握算法的概念及其特点 2. 学会用自然语言和流程图来准确地描述算法 教学难点: 学会用自然语言和流程图来准确地描述算法 三、学生分析 在必修模块“编制计算机程序解决问题”部分以及本章第一节的学习中,学生已经经历了用计算机解决问题的基本过程,对VB开发环境有所了解,这些都为本节课的学习提供了良好的基础。(学生对本节内容的学习具备一定的基础知识和学习经验) 本节课有关知识、问题与数学学科联系紧密,学生具有相关的数学基础,因此理解起来相对容易。教学中要关注全体学生,变学生的个体差异为资源,发挥同伴互助作用,共同提高教学效率。 四、教学策略 1、教学方法:讲授法、演示法、任务驱动、情境教学

2、学习方法:协作学习、自主学习 五、教学过程

六、教学反思: 本课充分发挥了学生的主观能动性,在教学中教师一般是提出问题让学生思考探究、注重实践、互动交流;另外举例生动形象,简单明了,学生学习起来兴趣浓厚,学生在轻松愉快的过程中较好的掌握了算法的概念,理解算法的设计和优劣的选择。学生初步接触编程,设计好这堂课的内容,能够激起学生学习编程的兴趣。

算法设计与分析

Ex.1(p20)若将y ← uniform(0, 1) 改为 y ← x, 则上述的算法估计的值是什么? 解:若将y ←uniform(0, 1) 改为 y ←x,此时有 ,则k++,即 ,此时k++,由于此时x ← uniform(0, 1),所以k/n=,则此时4k/n=2。所以上述算法估计的值为2。 Ex.2(p23) 在机器上用 估计π值,给出不同的n值及精度。 解:由ppt上p21可知,的大小 ,其中k为落入圆内的数目,n为总数,且π=,即需要计算4k/n。我们先令x ← uniform(0, 1),y ← uniform(0, 1)。 计算的值,如果小于等于1,那么此时k++。最后计算4k/n的值即可估计此时的π值。代码的主要部分为: 执行结果为:

结果分析:随着N的取值不断地增加,得到的π值也就越来越精确。 Ex.3(p23) 设a, b, c和d是实数,且a ≤ b, c ≤ d, f:[a, b] → [c, d]是一个连续函数,写一概率算法计算积分: 注意,函数的参数是a, b, c, d, n和f, 其中f用函数指针实现,请选一连续函数做实验,并给出实验结果。 解:的值为y=,y=0,x=a,x=b围成的面积。根据之前的例子我们可以知道= k(b-a)d/n。其中k是落在函数y=,x=a,x=b以及y=0所包围区间内的个数。 代码的主要部分为: 运行结果为:

结果分析: 随着N的取值不断地增加,得到的积分值越来越精确。 Ex4(p24). 设ε,δ是(0,1)之间的常数,证明:若I是的正确值,h是由HitorMiss算法返回的值,则当n ≥ I(1-I)/ε2δ时有: Prob[|h-I| < ε] ≥ 1 –δ 上述的意义告诉我们:Prob[|h-I| ≥ε] ≤δ, 即:当n ≥ I(1-I)/ ε2δ时,算法的计算结果的绝对误差超过ε的概率不超过δ,因此我们根据给定ε和δ可以确定算法迭代的次数 () 解此问题时可用切比雪夫不等式,将I看作是数学期望。 证明:由切比雪夫不等式可知: P( | X - E(X) | < ε ) ≥ 1 - D(X) / ε2 由题目知,E(X)=I。且根据题意,我们可知,在HotorMiss算法中,若随机选取n个点,其中k个点在积分范围内,则 。且k的分布为二项分布B(n,I)(在积分范围内或者不在 积分范围内),则 。又因为k=x*n,所以D(X)=I(1-I)/n。再将E(X)和D(X)带入切比雪夫不等式中即可得到 Ex5(p36). 用上述算法,估计整数子集1~n的大小,并分析n对估计值的影响。 解:由题知,集合的大小,通过计算新生成的集合中元素的个数来估计原集合的大小,代码的主体部分如下:

高中算法与算法的描述

第一章算法与算法的描述 1.算法的定义 算法:就是解决问题的思想方法,对解题过程的精确描述。计算机解决问题的步骤为分析问题、设计算法、编写程序、调试程序。算法是程序设计的“灵魂”,最核心过程。 2.法的特征 一个算法应该具有以下五个重要的特征: 1、有穷性:一个算法必须保证执行有限步之后结束; 2、确定性:算法的每一步骤必须有确切的定义; 3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件; 4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的; 5、可行性:算法中执行的任何计算步都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成;(也称之为有效性) 3.算法的描述方法 算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。 (1)自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。 例1:求圆的周长和面积 算法如下:(自然语言描述法) (1)输入半径r ; (2) 计算周长c=2*π*r ; (3) 计算面积 s=π*r*r ; (4) 输出周长c,输出面积s ; (5) 结束 例2:工人每天工作8小时,每小时9元,超过8小时的每小时增加15%的加班费,计算工人每天的应发的日工资。(1)输入工作小时X (2)判断X值,分别计算 ●X小于8,工资=X*9 ●X大于8,工资=X*9+(X-8)*9*0.15 (3)输出工资 (4)结束 练习:求三个数中的最大数。(用自然语言描述) (2)流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。

算法设计与分析试卷(2010)

算法设计与分析试卷(A 卷) 一、 选择题 ( 选择1-4个正确的答案, 每题2分,共20分) (1)计算机算法的正确描述是: B 、D A .一个算法是求特定问题的运算序列。 B .算法是一个有穷规则的集合,其中之规则规定了一个解决某一特定类型的问题的运算序列。 C .算法是一个对任一有效输入能够停机的图灵机。 D .一个算法,它是满足5 个特性的程序,这5个特性是:有限性、确定性、能 行性、有0个或多个输入且有1个或多个输出。 (2)影响程序执行时间的因素有哪些? C 、D A .算法设计的策略 B .问题的规模 C .编译程序产生的机器代码质量 D .计算机执行指令的速度 (3)用数量级形式表示的算法执行时间称为算法的 A A .时间复杂度 B .空间复杂度 C .处理器复杂度 D .通信复杂度 (4)时间复杂性为多项式界的算法有: A .快速排序算法 B .n-后问题 C .计算π值 D .prim 算法 (5)对于并行算法与串行算法的关系,正确的理解是: A .高效的串行算法不一定是能导出高效的并行算法 B .高效的串行算法不一定隐含并行性 C .串行算法经适当的改造有些可以变化成并行算法 D. 用串行方法设计和实现的并行算法未必有效 (6)衡量近似算法性能的重要标准有: A A .算法复杂度 B .问题复杂度 C .解的最优近似度 D .算法的策略 (7)分治法的适用条件是,所解决的问题一般具有这些特征: ABCD A .该问题的规模缩小到一定的程度就可以容易地解决; B .该问题可以分解为若干个规模较小的相同问题; C .利用该问题分解出的子问题的解可以合并为该问题的解 D .该问题所分解出的各个子问题是相互独立的。 (8)具有最优子结构的算法有: A .概率算法 B .回溯法 C .分支限界法 D .动态规划法 (9)下列哪些问题是典型的NP 完全问题: A .排序问题 B .n-后问题 C .m-着色问题 D .旅行商问题 (10)适于递归实现的算法有: C A .并行算法 B .近似算法 C .分治法 D .回溯法 二、算法分析题(每小题5分,共10分) (11)用展开法求解递推关系: (12)分析当输入数据已经有序时快速排序算法的不足,提出算法的改进方案。 ???>+-==1 1)1(211)(n n T n n T

算法设计与分析学习总结

算法分析与设计 学习总结 题目:算法分析与设计学习总结 学院信息科学与工程学院专业2013级计算机应用技术 届次 学生姓名 学号2013110657 二○一三年一月十五日

算法分析与设计学习总结 本学期通过学习算法分析与设计课程,了解到:算法是一系列解决问题的清晰指令,代表着用系统的方法描述解决问题的策略机制。算法能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂性和时间复杂度来衡量。算法可以使用自然语言、伪代码、流程图等多种不同的方法来描述。计算机系统中的操作系统、语言编译系统、数据库管理系统以及各种各样的计算机应用系统中的软件,都必须使用具体的算法来实现。算法设计与分析是计算机科学与技术的一个核心问题。 设计的算法要具有以下的特征才能有效的完成设计要求,算法的特征有:(1)有穷性。算法在执行有限步后必须终止。(2)确定性。算法的每一个步骤必须有确切的定义。(3)输入。一个算法有0个或多个输入,作为算法开始执行前的初始值,或初始状态。(4)输出。一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的。 (5)可行性。在有限时间内完成计算过程。 算法设计的整个过程,可以包含对问题需求的说明、数学模型的拟制、算法的详细设计、算法的正确性验证、算法的实现、算法分析、程序测试和文档资料的编制。算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法和并行算法。 经典的算法主要有: 1、穷举搜索法 穷举搜索法是对可能是解的众多候选解按某种顺序进行逐一枚举和检验,bing从中找出那些符合要求的候选解作为问题的解。 穷举算法特点是算法简单,但运行时所花费的时间量大。有些问题所列举书来的情况数目会大得惊人,就是用高速计算机运行,其等待运行结果的时间也将使人无法忍受。我们在用穷举算法解决问题是,应尽可能将明显不符合条件的情况排除在外,以尽快取得问题的解。 2、迭代算法 迭代法是数值分析中通过从一个初始估计出发寻找一系列近似解来解决问题(一般是解方程或方程组)的过程,为实现这一过程所使用的方法统称为迭代法。迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行: (1)选一个方程的近似根,赋给变量x0。 (2)将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0。 (3)当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。 若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。 3、递推算法 递推算法是利用问题本身所具有的一种递推关系求问题解的一种方法。它把问题分成若干步,找出相邻几步的关系,从而达到目的。 4、递归算法 递归算法是一种直接或间接的调用自身的算法。 能采用递归描述的算法通常有这样的特征:为求解规模为n的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模

算法和算法的描述教案

算法和算法的描述(教学案例) 教材分析: 这节课内容主要是一些概念和理论,而算法的概念和理论都太抽象,讲起来非常的枯燥乏味,那么就要把这些抽象的东西变得通俗易懂,使学生能轻松而又愉快的接受并理解。 学生分析: 学生基本上没有接触过编程,那么在高中阶段初步接触编程,学生首先会感到很深奥,看到书中的程序语句,尤其是看到后面的长一点的程序语句更是觉得可怕,那教师必须要考虑在授课中如何正确引导,以什么样的方式进行。学生有没有兴趣学,往往看这个课是不是有意思,难不难学,一看难学又乏味,就开始产生厌学的情绪。 教学目标: 引导学生对编程的兴趣,理解算法的概念和如何科学合理的选择和设计算法,为程序设计打好基础。 教学重点: 算法的概念、算法的设计和选择。 教学难点: 如何科学合理的选择和设计算法。 教学方法: 与学生进行互动探讨式教学,以趣味智力题激发学生探索解决问题的兴趣,以故事事例和具体的程序运行对比,引导学生一步步的思考,从而总结出算法的概念,以及如何设计和选择算法,充分调动学生的主观能动性和探究学习能力。 教学过程: 1、引导学生对编程的兴趣 (1)教师:同学们喜欢玩电脑游戏吗? (2)学生:喜欢!(说到游戏学生总是表现出很浓的兴趣。) (3)教师:在上机练习课的时候,总发现有个别同学偷偷的玩游戏,其实你们喜欢,老师也很喜欢,那么同学们想不想自己编个游戏来玩呀? (4)学生:会不会很麻烦!(学生表现出好奇,又对编程心里还没有底。) (5)教师:不用担心,编程并不像你们所想像的那样难,很快你们就会编一些小游戏程序了。其实编程是件非常有意思的事情,在以后的学习中你会发现自己越来越喜欢编程,甚至会着迷的。 2、算法的概念 (1)教师:幻灯片出示一个经典的趣味性例子, 有一个牧羊人带着一头羊,一只狼和一颗大白菜准备过河,他找到一只很小的船,每次只能带一样东西过去,可是如果让狼与羊单独在一起,狼会吃羊,让羊与白菜单独在一起,羊会吃白菜,牧羊人应如何过河? (2)教师:分组讨论,前后四个同学为一组,把你们的橡皮擦放到一块,分别写上狼、羊、白菜,你们自己是牧羊人,现在请同学们来设计一个方案,把3样东西安然无恙的带过河。我们来比一比看哪组同学最快完成。 课堂立即活跃起来,同学们把它当作一种游戏全都投入进去了,积极思考起来。 (3)很快就有学生举手回答。 过河的方案: 第一步:人和羊过河,人返回,留下羊; 第二步:人和狼过河,人和羊返回,留下狼; 第三步:人和菜过河,人返回,留下菜; 第四步:人和羊过河。 (4)教师:同学们这个方案行不行? (5)学生:行。

算法设计与分析C++语言描述(陈慧南版)课后答案

第一章 15P 1-3. 最大公约数为1。快1414倍。 主要考虑循环次数,程序1-2的while 循环体做了10次,程序1-3的while 循环体做了14141次(14142-2循环) 若考虑其他语句,则没有这么多,可能就601倍。 第二章 32P 2-8.(1)画线语句的执行次数为 log n ????。(log )n O 。划线语句的执行次数应该理解为一格整体。 (2)画线语句的执行次数为 111 (1)(2) 16 j n i i j k n n n ===++= ∑∑∑。3()n O 。 (3 )画线语句的执行次数为 。O 。 (4)当n 为奇数时画线语句的执行次数为 (1)(3) 4 n n ++, 当n 为偶数时画线语句的执行次数为2 (2)4 n +。2()n O 。 2-10.(1)当1n ≥时,225825n n n -+≤,所以,可选5c =,01n =。 对于0n n ≥,22 ()5825f n n n n =-+≤,所以,22 582()n n n -+=O 。 (2)当8n ≥时,2222 582524n n n n n -+≥-+≥,所以,可选4c =,08n =。对于0n n ≥, 22()5824f n n n n =-+≥,所以,22582()n n n -+=Ω。 (3)由(1)、(2)可知,取14c =,25c =,08n =,当0n n ≥时,有22212582c n n n c n ≤-+≤,所以 22582()n n n -+=Θ。 2-11. (1) 当3n ≥时,3 log log n n n <<,所以()20log 21f n n n n =+<,3 ()log 2g n n n n =+>。可选21 2 c = ,03n =。对于0n n ≥,()()f n cg n ≤,即()(())f n g n =O 。注意:是f (n )和g (n )的关系。 (2)当4n ≥时,2 log log n n n <<,所以2 2 ()/log f n n n n =<,2 2 ()log g n n n n =≥。可选1c =,04n =。对于0n n ≥,2 ()()f n n cg n <≤,即()(())f n g n =O 。 (3)因为log log(log )()(log ) n n f n n n ==,()/log log 2n g n n n n ==。当4n ≥时,log(log )()n f n n n =≥,

高中信息技术算法和算法描述教案沪教版

算法和算法描述 一、基本说明 1模块:高中信息技术基础 2年级:高中二年级 3所用教材版本:上海科技教育出版社 4所属的章节:第一章第二节 5学时数: 40分钟(多媒体教室授课) 二、教学设计 1、教学目标: (1)、知识与技能目标: ①、了解算法的基本概念和特点; ②、掌握算法的描述方法;能用自然语言、流程图、伪代码描述算法; (2)、过程与方法目标: 通过分析实际生活中的问题,理解和熟悉自然语言、流程图和伪代码等清晰描述解决问题的过程,确立算法的概念; (3)、情感态度价值观目标: ①、通过对生活中具体实例的分析和解决,激发学生的学习兴趣。培养学生的自主 探究能力; ②、通过算法描述,锻炼学生自行分析问题及解决问题的能力,培养学生严谨的思 维习惯; ③、增强学生的逻辑思维能力和表现意识,鼓励学生分享思想和反思自我的学习 理念。 2、内容分析: 本课是高二第一章的内容,也是整个《算法与程序设计》模块的基础知识,本节内容对后续章节的学习起着十分重要的作用,让学生从整体上计算机解决实际问题的过程;因本节内容在高一数学模块三第一章中学生已有初步接触,比较简单,教师可根据具体情况有所深入地进行授课。 3、学情分析:

学生具有一定的分析问题、解决问题的能力,并且在高一数学模块三中对算法的概念和用流程图描述算法有初步的了解,且已初步了解面向过程的三种结构,但未对算法形成抽象认识和理解;还不能对算法做出恰当的描述。 4、设计思路: 本节课是一堂理论性的课,又缺乏理论的深度,如果只由教师讲解就会显得比较枯燥,因此本堂课的设计思路是从具体的案例入手,引导学生进行思考、讨论,最后得出基本的结论,形成一定的概念,达到理解和应用的目的。教师的主要任务在于积极引导,调动学生的积极性。 三、教学过程 教学阶段教师活动学生活动设计意图 一、引入1、出示渡河游戏,要求学生给出 解决的办法。 2、怎样在全班同学中找出最高的 同学? 积极参与,发表观 点,说出解决的办 法。 运用学生感兴趣 的事物,激发学 生的学习兴趣。 二、新课讲解(一)算法的概 念通过总结两个实例的算法分析过 程,引出算法的概念。 观看课件,与教师 探讨算法的意义。 引导学生将感性 认识提升为理性 认知。 (二)算法的特 征 展示高一数学模块三第一章的三 个例题,找出算法还具有两个特 点:一个算法有0或多个输入、1 或多个输出。 继续总结渡河游戏,得出算法具有 有穷性、确定性和可行性。 思考和分析范例, 领会算法的特征。 回顾实例,寻找规 律,共同总结。 调动学生对生活 的认识和体会, 融入对算法的学 习和理解。 (三)算法的表示——自然语 言利用渡河实例,细致分析算法,介 绍自然语言描述算法设计。 领会算法设计的过程:提出问题、 分析问题、设计算法。 提出问题:“求三个数中值最大的 数。”——分析问题——用自然语 言描述出算法。 分步骤讨论和分 析,会运用自然语 言设计实例的算 法。 对实例进行初步 算法设计,自然 语言易于理解, 为后续其他抽象 描述方法作铺 垫。 (四)算法的表示——流程图总结自然语言的优缺点,引出流程 图的表示方法,介绍流程图的基本 结构,分析其逻辑关系的表示。 提出问题:“求三个数中值最大的 数。”——分析问题——用伪代码 描述出算法。 积极探索、分析, 运用流程图描述 该问题的算法。 对比学习,加深 对各类算法设计 描述方法的认 识,培养学生设 计算法的能力。

第三章第二节算法及其描述(一)

山东省青州实验中学校训:公善勤实 课题名称:算法及其描述(一) 命题人、使用人: 审核人:使用日期: 学习目标 了解算法的概念,能够对算法进行描述。 -------------------------------------------------------------------------------------------------------- -------------- 【上节重点回顾】 利用计算机解决问题的正确步骤是()1设计算法2调试运行程序3分析问题4编写程序 A、1 2 3 4 B、3 1 2 4 C、3 4 2 1 D、3 1 4 2 【导入】 有一个农夫带着一头羊,一匹狼和一颗大白菜准备过河,他找到一只很小的船,每次只能带一样东 西过去,可是如果让狼与羊单独在一起,狼会吃羊,让羊与白菜单独在一起,羊会吃白菜,农夫应如何过河?请同学们以小组为单位,讨论一下农夫该如何才能安全的渡河,写下你们的渡河方案,看看哪一组最快? 【任务一】结合课本P48-51总结算法的概念及描述。 1、算法:是指在求解某一问题所使用的一组的。对计算机来说,算法就是用计算机求解某一问题的,是能被机械地执行的的集合。 2、算法的描述有三种:、、。 【任务二】 设计一个算法,解决鸡兔同笼问题:在笼中有鸡、兔若干,已知有头a个,有脚b只,求各有多少只鸡和兔。 一、用自然语言描述算法(不常用) 用自然语言描述算法就是用人们日常所用的语言,如汉语、英语等来描述算法。 (1)开始 (2)输入a和b的值 (3)求x=2a-b/2 (4)求y=b/2-a (5)输出x、y的值 (6)结束 二、用流程图描述算法(最常用的方法,需要大家掌握) 用流程图描述算法是用程序框图来描述算法的一种表示方法。 图形名称功能 开始/结束表示算法的开始或结束 输入/输出表示算法中变量的输入与输出 处理表示算法中变量的计算与赋值 判断表示算法中的条件判断 流程线表示算法中的流向 连接点表示算法中的转接

算法的描述与设计

课题:算法描述与设计》 教学目标: 1.进一步理解什么是;算法,知道算法的多样性 2.能够对设计的算法做简装的评价 3.学会利用自然语言、流程图和伪代码来描述算法 教学内容 1.了解什么是算法及其特征 2.学习三种描述算法语言 教学重点:通过例子设计算法 教学难点:三种描述算法语言的使用 课时数:1课时 正课讲解 一、算法是“灵魂” 1.算法存在于人们生活中,如:上街购物、顾客付款、营业员(主)找银等。 2.“韩信点兵问题”有不同的求解过程,就有不同的算法。 有N个人,除以3,5,7,分别余2,3,2,求N。 3.算法——解决问题的方法和步骤。 算法是尼克劳斯.沃斯(N.Writh)提出的,他指出:算法+数据结构=程序。 (即算法不能单独构成程序,它必须和数据结构合二为一) 4.算法的发现 时间:公元前3000年~公元前1500年地点:巴比伦 巴比伦人求解“算法”的过程:先用解代数方法,再计算实际数目,最后写上一句短句“这就是一个过程”。

5.算法的特征 我们曾在必须修课中提过一点算法,如:冒泡排序法。 例:计算1+2+3+……+100=? 分析:这个算法有限制范围,可以在有限时间内完成,这是算法的第一个特征:有穷性。计算此算法可以用纸笔、算盘、运算器 和计算机来完成,且计算过程是多样的,但结果是唯一的。这就是算法的可行性、确定性。 计算方法: ⑴把这100个数按顺序相加。 ⑵用凑数法:1+99=100,2+98=100,3+97=100,……,49+51,最后只剩下50和100。 ⑶令S=0,使1≤n≤100,先执行S=S+n ⑴,再执行n=n+1 ⑵ n=1,S=0时,S(0)=1 n=2,S=1时,S(0)=3 n=3,S=3时,S(0)=6 n=4,S=6时,S(0)=10 n=5,S=10时,S(0)=15 n=6,S=15时,S(0)=21…… 算法的另外一个特征:输入、输出。 练习:水仙花数问题,如153=1^3+5^3+3^3,分析它应满足什么条件才能使用此方法? 二、如何描述算法 1.用自然语言描述算法 ⑴自然语言——人们日常生活中使用的语言。 ⑵此种语言的特点:通俗语易懂,缺乏直观性和简洁,且易产生歧义。 使用此种语言的注意事项:描述要求尽可能精确,详尽。

算法设计与分析(详细解析(含源代码)

常用算法设计方法 要使计算机能完成人们预定的工作,首先必须为如何完成预定的工作设计一个算法,然后再根据算法编写程序。计算机程序要对问题的每个对象和处理规则给出正确详尽的描述,其中程序的数据结构和变量用来描述问题的对象,程序结构、函数和语句用来描述问题的算法。算法数据结构是程序的两个重要方面。 算法是问题求解过程的精确描述,一个算法由有限条可完全机械地执行的、有确定结果的指令组成。指令正确地描述了要完成的任务和它们被执行的顺序。计算机按算法指令所描述的顺序执行算法的指令能在有限的步骤内终止,或终止于给出问题的解,或终止于指出问题对此输入数据无解。 通常求解一个问题可能会有多种算法可供选择,选择的主要标准是算法的正确性和可靠性,简单性和易理解性。其次是算法所需要的存储空间少和执行更快等。 算法设计是一件非常困难的工作,经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等。另外,为了更简洁的形式设计和藐视算法,在算法设计时又常常采用递归技术,用递归描述算法。 一、迭代法 迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行: (1)选一个方程的近似根,赋给变量x0; (2)将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0; (3)当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。 若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。上述算法用C程序的形式表示为: 【算法】迭代法求方程的根 { x0=初始近似根; do { x1=x0; x0=g(x1);/*按特定的方程计算新的近似根*/ } while ( fabs(x0-x1)>Epsilon);

第1课 算法及其描述方法

第1课算法及其描述方法 教学设计思想: 教学目标: (1)知识与技能: ①理解算法的概念 ②掌握算法的五个特征 ③了解算法的三种描述方法 ④掌握流程图的各个框图的功能及画法 (2)过程与方法: ①学生通过联系实际生活、协作讨论例题的方法,理解算法的概念和掌握算法的特 征。 ②学生通过思考和参与课堂练习的方法,熟练掌握流程图的各个框图的功能及算 法。 (3)情感态度与价值观: ①学生通过联系日常生活,体会和理解算法的概念,知道算法在程序设计中的重要 性。对常见事物和现象能提出问题,深入思考,进行自主和探究式学习 ②学生之间通过协作学习和课堂讨论,培养学习的积极性和同学之间的协作性。 教学重点: 流程图表示算法 教学难点: 流程图表示算法 教学过程设计: 1、算法的概念 讨论:用没有刻度的3毫升量杯和5毫升量杯如何量出1毫升的水?请写出自己的解决步骤。 方法一: ①将3毫升的量杯装满 ②将3毫升量杯中的水注入5毫升量杯 ③将3毫升的量杯装满 ④将3毫升量杯中的水注入5毫升量杯,注满后,3毫升量杯中剩余的就是1毫升水。 方法二: ①将5毫升的量杯装满 ②将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余2毫升水 ③将3毫升量杯倒空

④将5毫升量杯中剩余的2毫升注入3毫升量杯 ⑤将5毫升量杯装满 ⑥将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余4毫升水 ⑦将3毫升量杯倒空 ⑧将5毫升量杯中的水注入3毫升量杯,注满后5毫升量杯中剩余1毫升水 结论: (1)算法是为解决某一问题而设计的确定的、有限的求解步骤。 (2)算法不是唯一的,针对同一问题的算法可以有多种。 2、算法的特征: (1)有穷性 广义地说,“有穷性”一般指操作步骤的数量有限或能在合理的时间范围内完成全部操作。算法可以有重复执行的步骤,只要这些步骤的执行能够终止。有些算法虽然是有穷的,但它所花费的时间如果超出了合理的限度,如天气预报采用的算法若要几个月后才能计算出来,那就不能算是有效地算法。 例1:判断下列算法是否符合算法的特征 ①给s赋值为1 ②将s的值增加1 ③重复步骤② 解答:该算法的步骤②将被重复执行无穷次,不符合有穷性 (2)确定性 算法中的每个步骤必须有确切的含义,而不应当是含糊的、模棱两可的。 例2:判断下列算法是否符合算法的特征 ①L=10 ②输出L/自然数 解答:正整数没有具体指明是哪个数,不符合算法的确定性 (3)可行性 算法中每一个步骤都是要能够实际做到的,而且是在有限的时间内完成。 例3:判断下列算法是否符合算法的特征 ①x= -2 ②计算x的平方根 解答:x是负数,没有平方根,该算法不可行,不符合算法的可行性。 (4)有0个或多个输入

算法和算法的描述

算法和算法的描述 一、教学内容 算法和算法的描述 二、教学目标 1.充分理解掌握算法的概念及其特点 2.学会用自然语言来准确地描述算法 3.认知流程图的六种基本符号,用流程图描述简单的算法 4.理解科学合理的选择和设计算法 5.通过问题的解决,培养学生观察流程图问题、分析问题和解决问题的能力 三、重点难点 1.学会用自然语言和流程图来准确地描述算法 2.算法的三种基本结构 四、教学过程 (一)算法的的概念及自然语言描述 教师活动:说明”狼菜羊过河”的游戏规则 学生活动:前后四个同学为一组,设计方案,比一比看哪组同学最快完成。记录实际过河过程,完成学案中相关应部分内容的填写

教师活动:指导学生将自己的方案用规范的自然语言的形式表示(学案)样例:过河的方案: 第一步:人和羊过河,人返回,留下羊; 第二步:人和狼过河,人和羊返回,留下狼; 第三步:人和菜过河,人返回,留下菜; 第四步:人和羊过河。 教师活动:收集学生的过河方案,并将其用自然语言的形式展示于黑板上教师小结: 1、算法的概念 2、算法的特征 3、算法的择优 (二)用流程图描述算法 教师活动:介绍流程图的作用,讲解流程图所用的基本符号及功能 学生活动:在学案中完成流程图的拼接 教师活动:点评学生流程图,对照自然语言表达归纳流程图表达的优缺点(三)用程序实现算法 教师讲解:编写程序即把人们设计的算法转换成计算机能够识别的代码。

(四)算法的三种基本结构 1、顺序结构 2、分支结构 3、循环结构 (五)课堂小结 1.算法形成的过程:自然语言表示的算法----流程图表示的算法----算法的程序表示 五、教学反思 1、整个课堂教学气氛非常活跃,条理清楚,不同层次的学生都能积极参与到课堂讨论中来。主要得益于两个方面:一是利用两个生动且富有挑战性的经典问题,二是教师的演示和学生动手调试程序环节,将学生牢牢的吸引住;同时本课很多内容都是基于高一数学模块三中的已学知识,知识点的难度小。如算法及其描述方式在高一数学中已有介绍,所以整堂课学生的参与度高。 2、本节课利用问题导学法进行教学,让学生对问题进行探究,有效的调动了学生的学习积极性。 3、本节课的课堂气氛没有预想中的好,可能与教学内容和问题的设置有一定的关系,这也从一定程度上反映出学生对于算法存在畏惧心理,对于老师提的问题不敢大胆发言。

算法设计与分析

四川理工学院课程设计 算法设计与分析课程设计 学生: 学号: 专业:信息与计算科学 班级: 指导教师:吴树林 四川理工学院理学院 一、问题描述 输入一列整数,求出该列整数中的最大值与最小值。 二、课程设计目的 通过课程设计,提高用计算机解决实际问题的能力,提高独立实践的能力,将课本上的理论知识和实际有机的结合起来,锻炼分析解决实际问题的能力。提高适应实际,实践编程的能力。在实际的编程和调试综合试题的基础上,把高级语言程序设计的思想、编程巧和解题思路进行总结与概括,通过比较系统地练习达到真正比较熟练地掌握计算机编程的基本功,为后续的学习打下基础。了解一般程序设计的基本思路与方法。 三、问题分析 看到这个题目我们最容易想到的算法是直接比较算法:将数组的第 1 个元素分别赋给两个临时变量:fmax:=A[1]; fmin:=A[1]; 然后从数组的第 2 个元素 A[2]开始直到第 n个元素逐个与 fmax 和 fmin 比较,在每次比较中,如果A[i] > fmax,则用 A[i]的值替换 fmax 的值;如果 A[i] < fmin,则用 A[i]的值替换 fmin 的值;否则保持 fmax(fmin)的值不变。这样在程序结束时的fmax、fmin 的值就分别是数组的最大值和最小值。这个算法在最好、最坏情况下,元素的比较次数都是 2(n-1),而平均比较次数也为 2(n-1)。

如果将上面的比较过程修改为:从数组的第 2 个元素 A[2]开始直到第 n 个元素,每个 A[i]都是首先与 fmax 比较,如果 A[i]>fmax,则用 A[i]的值替换 fmax 的值;否则才将 A[i]与 fmin 比较,如果 A[i] < fmin,则用 A[i]的值替换 fmin 的值。 这样的算法在最好、最坏情况下使用的比较次数分别是 n-1 和 2(n-1),而平均比较次数是 3(n-1)/2,因为在比较过程中,将有一半的几率出现 A[i]>fmax 情况。 如果采用分治的思想,可以构造算法,其时间复杂度在最坏情况下和平均用时均为 3n/2-2: 四、主要算法(分治法)描述 当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。这就是分治策略的基本思想。 把n个元素分成两组: A1={A[1],...,A[int(n/2)]}和A2={A[int(N/2)+1],...,A[N]} 分别求这两组的最大值和最小值,然后分别将这两组的最大值和最小值相比较,求出全部元素的最大值和最小值。如果A1和A2中的元素多于两个,则再用上述方法各分为两个子集。直至子集中元素至多两个元素为止。 例如有下面一组元素:-13,13,9,-5,7,23,0,15。用分治策略比较的过程如下: 图中每个方框中,左边是最小值,右边是最大值。从图中看出,用这种方法一共比较了10次,比直接比较法的14次减少4次,即约减少了1/3。 分治法在每一层递归上都有三个步骤: 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;

算法的表示方法

算法的表示方法 算法的常用表示方法有如下三种: 1、使用自然语言描述算法 2、使用流程图描述算法 3、使用伪代码描述算法 我们来看怎样使用这3种不同的表示方法去描述解决问题的过程,以求解sum=1+2+3 +4+5……+(n-1)+n为例。 第1种:使用自然语言描述从1开始的连续n个自然数求和的算法 ①确定一个n的值; ②假设等号右边的算式项中的初始值i为1; ③假设sum的初始值为0; ④如果i≤n时,执行⑤,否则转出执行⑧; ⑤计算sum加上i的值后,重新赋值给sum; ⑥计算i加1,然后将值重新赋值给i; ⑦转去执行④; ⑧输出sum 的值,算法结束。

从上面的这个描述的求解过程中,我们不难发现,使用自然语言描述算法的方法虽然比较容易掌握,但是存在着很大的缺陷。例如,当算法中含有多分支或循环操作时很难表述清楚。另外,使用自然语言描述算法还很容易造成歧义(称之为二义性),譬如有这样一句话——“武松打死老虎”,我们既可以理解为“武松/打死老虎”,又可以理解为“武松/打/死老虎”。自然语言中的语气和停顿不同,就可能使他人对相同的一句话产生不同的理解。又如“你输他赢”这句话,使用不同的语气说,可以产生3种截然不同的意思,同学们不妨试试看。为了解决自然语言描述算法中存在着可能的二义性,我们提出了第2种描述算法的方法——流程图。 第2种:使用流程图描述从1开始的连续n个自然数求和的算法 从上面的这个算法流程图中,可以比较清晰的看出求解问题的执行过程。在进一步学习使用流程图描述算法之前,有必要对流程图中的一些常用符号做一个解释。

流程图的缺点是在使用标准中没有规定流程线的用法,因为流程线能够转移、指出流程控制方向,即算法中操作步骤的执行次序。在早期的程序设计中,曾经由于滥用流程线的转移而导致了可怕的“软件危机”,震动了整个软件业,并展开了关于“转移”用法的大讨论,从而产生了计算机科学的一个新的分支学科——程序设计方法。 无论是使用自然语言还是使用流程图描述算法,仅仅是表述了编程者解决问题的一种思路,都无法被计算机直接接受并进行操作。由此我们引进了第三种非常接近于计算机编程语言的算法描述方法——伪代码。 第3种:使用伪代码描述从1开始的连续n个自然数求和的算法 1) 算法开始; 2) 输入n 的值; 3) i ← 1;/* 为变量i 赋初值*/ 4) sum ← 0;/*为变量sum 赋初值*/ 5) do while i<=n /*当变量i <=n 时,执行下面的循环体语句*/

相关文档