
课件19张PPT。 3.4 算法及其实现什么是算法算法并不只是计算,它是解决问题的方法的精确描述。 算法是由有限个步骤组成的。 算法每一个步骤的含义必须明确没有二义性 。 同一问题算法可以有多种,但只取最优。算法的日常简单应用《统筹方法平话及补充》中“泡茶”问题: 想要泡茶喝,情况是:开水没有,水壶要洗,茶壶和茶杯要洗;火已生,茶叶有,怎么办? 算法的日常简单应用 t算法的日常简单应用农夫过河问题: 一个农夫带着一只狼,一只羊和一棵白菜过河。河边只有一条船,由于船小,农夫一次只能带其中的一样过河。 如无人看管,狼要吃羊,羊要吃菜。问农夫如何安排过河,才能使狼、羊、菜都安然无恙。 渡河的方法与步骤第一步:农夫带着羊渡过河去; 第二步:农夫划船回来; 第三步:农夫带着菜(或狼)渡过河去; 第四步:农夫带着羊划船回来; 第五步:农夫带着狼(或菜)渡过河去; 第六步:农夫划船回来; 第七步:农夫带着羊渡过河。如何用计算机解决问题当我们用计算机解决问题时,首先要分析问题,然后根据问题的要求选择合适的软件。如果现有的软件能满足我们的要求,我们会直接用这些软件来完成任务。例如:学校财务处要制作一份工资表,工资表中许多数据,我们可以用Excel解决;学生要设计一个报刊设计,可以使用word;网络上的网页是使用网页制作工具完成的,记事本要输入代码,Frontpage和Dreamweaver可以直接使用可视化工具。 除此之外,现实生活中还有许多工作往往比较特殊,现有的软件不能很好地完成,或者由于其他方面的原因无法使用,这就需要我们编写程序来解决问题。一个笼子里有鸡和兔,现在只知道里面一共有35个头,94只脚,问鸡和兔各有多少只? 分析问题:设x只鸡,y只兔,则 X+Y=35 2X+4Y=94 解方程组得:X=23,Y=12 鸡兔同笼问题鸡兔同笼问题一个笼子里有鸡和兔,现在只知道里面一共有35个头,94只脚,问鸡和兔各有多少只? 编程时,通常用变量来表示可变化的已知量。 用变量a表示头的总数,变量b表示脚的总数 方程组: X+Y=a 2X+4Y=b 解得方程组:X=2a-b/2,Y=b/2-a 将变量a,b视为容器,此程序将可以应用于不同已知数的鸡兔同笼问题设计算法2.设计算法: 输入a和b的值 求X=2a-b/2 求Y=b/2-a 输出X,Y的值 结束设计一个软件的步骤是:具体问题分析问题设计算法编写程序调试程序得到答案无论使用现成的软件解决问题,还是自己动手编程解决问题,其实质都是一样的:现有的计算机软件同样也经历了这些过程, 其差别在于,用程序设计解决问题需要我们亲自动手设计软件,而使用现成的软件,是别人已经给我们设计好了的。 算法的描述自然语言 流程图 自然语言描述输入a和b的值 求X=2a-b/2 求Y=b/2-a 输出X,Y的值 结束 流程图描述输入a和b的值输出x,y的值开始求x=2a-b/2求y=b/2-a结束流程图也称程序框图,算法的一种图形化表示方法。 与自然语言相比,用流程图描述算法形象、直观,更容易理解。流程图求和问题流程图开始s=s+ii>10输入i=1,总和s=0结束输出s的值i=i+1是否计算: 1+2+3+······+10 分部演示: ①i=1 , s=0+1 , i=1+1 ②i=2 , s=1+2 , i=2+1 ③i=3 , s=3+3 , i=3+1 ··· ⑨i=9 , s=+9 , i=9+1 ⑩i=10, s=+10,i=10+1 i=11,跳出循环,输出s的值,s=55程序的基本结构顺序结构 选择结构 循环结构课后思考 求和问题1+2+3+···+10的算法流程图是否唯一, 如不是,请写出不同于例子中的算法流程图。Thank You ! ... ...
~~ 您好,已阅读到文档的结尾了 ~~