资源简介 (共22张PPT)1.算法及其描述任务一:一个农夫带着一头羊、一只狼和一颗大白菜过河,但只有一条小船,并且每次只能让农夫带一样东西过河。农夫在场的情况下一切相安无事,一旦农夫不在,狼会吃羊,羊会吃白菜。注意:要写明确共几个步骤,并标明序号。农夫如何解决过河问题?1、算法概念:算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。即用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。广义:是解决问题的方法和步骤,而且步骤是有限的。计算机科学中:用计算机解决问题的步骤。任务二:在数学中,我们是用什么方法来求两个正整数的最大公约数的。例:m=112,n=64,求它们的最大公约数。欧几里得算法设给定的两个正整数为m和n,求它们的最大公约数的步骤如下:1、以m除n,令所得的余数为r。2、若r=0,则输出n,算法结束;否则,继续步骤3。3、令m=n,n=r,并返回步骤1继续进行。计算:现在请同学们再计算m=112和n=64的最大公约数。辗转相除法2、算法的特征有穷性:执行步骤和每步执行时间都是有限的算法特征确定性:每个步骤的执行描述必须是明确的输出:至少产生一个输出(必须有)(不做无用功)可行性:每个步骤都是可以做到并能在有限的时间内完成。123输入:初始数值可以从外界输入,也可以包含在算法中45打印输出所有的偶数100/正整数计算a@b的值算法的描述问题1:在【任务一】中,我们是用什么来描述算法的?问题2:还有什么其他的方式吗?3、算法的描述自然语言:是人们日常所用的语言,如汉语、英语、德语等。优点通俗易懂容易理解缺点冗长存在歧义3、算法的描述有两个瓶子A和B,A瓶装有雪碧,B瓶装有可乐,问如何把雪碧和可乐互换。即A瓶原来装雪碧,现改为装可乐,B瓶原来装可乐,现改为装雪碧。流程图:使用流程图描述算法,让人感到算法的流程描述清晰简洁,容易表达选择结构;它不依赖于任何具体的计算机和计算机程序设计语言,从而有利于不同环境的程序设计。图形名称功能开始/结束框表示算法的开始或结束输入/输出框表示算法中变量的输入或输出处理框表示算法中变量的计算与赋值判断框表示算法中的条件判断流程线表示算法中的流向3、算法的描述表1流程图的基本图形及其功能3、算法的描述伪代码:是用介于自然语言和计算机语言之间的文字和符号来描述算法的工具。它不使用图形符号,因此,书写方便,格式紧凑,易于理解,便于向计算机程序语言过渡。3、算法的描述A=雪碧,B=可乐,C=空C=AA=BB=C任务三:鸡兔同笼问题:一个笼子里有兔和鸡,现在只知道里面一共有35个头,94只脚,兔和鸡各有多少只?试设计一个求解的算法,并用自然语言描述出来。注意:要写明确共几个步骤,并标明序号。设:兔子的数量为X,鸡的数量为Y求解二元一次方程组:X+Y=354X+2Y=94求X和Y的值数学题:1.让兔子和鸡都抬起两只脚。跑男中包贝尔算法:抬起脚的数量:235=702.地上站着的脚全部是兔子的?地上站着的脚的数量:94-70=243.每只兔子还剩几只脚站在地上?兔子的数量:24/2=124.是不是可以求出鸡的数量?鸡的数量:35-12=23任务三:总结出这类问题的通用解决办法。鸡兔同笼问题:一个笼子里有兔和鸡,现在只知道里面一共有m个头,n只脚,求兔子的数量X和鸡的数量Y?1.让兔子和鸡都抬起两只脚。跑男中包贝尔算法:抬起脚的数量:2m2.地上站着的脚全部是兔子的?地上站着的脚的数量:n-2m3.每只兔子还剩几只脚站在地上?兔子的数量:X=(n-2m)/24.是不是可以求出鸡的数量?鸡的数量:Y=m-X图1用流程图表示鸡兔同笼算法开始输入头的数量m和脚的数量n兔子的数量:X=(n-2m)/2输出兔子的数量X和鸡的数量Y结束鸡的数量:Y=m-X开始输入头的数量m和脚的数量n设兔子数X=1鸡数Y=m-X4X+2Y=n输出兔子的数量X和鸡的数量Y结束是否X=X+1Y=m-X流程图鸡兔同笼算法1:输入m和n的值X=(n-2m)/2Y=m-X输出X和Y的值伪代码鸡兔同笼算法2:输入m和n的值X等于1Y等于m-Xdowhilen不等于4X+2YX=X+1Y=m-XLoop输出X和Y的值表2三种算法描述方式的优劣算法描述方式优点缺点自然语言不需要专门训练,通俗易懂歧义性、语句长、循环和分支较多时难以清晰表示、不便翻译成计算机程序设计语言流程图描述清晰简洁,容易表达选择结构,利于不同环境的程序设计无法被计算机直接接受进行操作伪代码书写方便,格式紧凑,易于理解,便于向计算机程序设计语言过渡种类繁多,语句不容易规范本节课总结: 展开更多...... 收起↑ 资源预览