网站大量收购独家精品文档,联系QQ:2885784924

第2章 程序的灵魂-算法课件.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 程序的灵魂-算法课件

第2章 程序的灵魂-算法;程序设计概述;算法:是指解决一个具体问题的意义明确的步骤的集合。是有限的 概括地说,算法是指解题方案的准确而完整的描述。从程序来说,也可以说算法是一个有限条指令的集合,这些指令确定了解决某一特定类型问题的运算序列。 对于同一个问题可以有不同的解题方法和步骤,也就是有不同的算法。算法有优劣,一般而言,应当选择简单的、运算步骤少的,既运算快、内存开销小的算法(算法的时空效率)。;买电视机的步骤:; 2.2、 简单算法举例;求1×2×3×4×5;例2.求1×3×5×7×9 ×11;求1×3×5×7×9 ×11;求1×3×5×7×9 ×11;例3;S1: 1 ?i; S2: 如果gi?80,则打印ni和gi,否则不打印。 S3: i+1 ?i; S4: 如果i?50,返回s2,继续执行,否则算法结束。 本例中,变量i作为下标,用它来控制序号(第几个学生,第几个成绩)。当 i超过50时,表示已对50个学生的成绩处理完毕,算法结束。;例 4;算法如下:设y为被检测的年份,可采取以下步骤: s1: 2000 ?y; s2: 若y不能被4整除,则输出y “不是闰年”。然后转到s6. S3: 若y能被100整除,又能被400整除,输出y “是闰年”,否则输出“不是闰年”。然后转到s6。 S4: 若y 能被100整除,又能被400整除,输出y “是闰年”,然后转到s6。 S5: 输出 y “不是闰年”。 S6: y+1 ?y; s7: 当y?2500时,转s2继续执行,如y2500,算法停止。;(1)使S=0(S作为累加变量); (2)使N=1(N代表分母); (3)S+1/N ? S (执行迭代,S为迭代变量); (4)N+1 ? N; (5)若N≤100,转去执行(3)以及其后的各步骤;否则执行(6); (6)打印S的值(即所求之总和)。;1、有穷性:一个算法应当包含有限的步骤,而不能是无限的步骤;同时一个算法应当在执行一定数量的步骤后,算法结束,不能死循环。 事实上“有穷性”往往指“在合理的范围之内”的有限步骤。如果让计算机执行一个历时1000年才结束的算法,算法尽管有穷,但超过了合理的限度,人们也不认为此算法是有用的。 ?2、确定性:算法中的每一个步骤都应当是确定的,而不是含糊的、摸棱两可的。也就是说不应当产生歧义。特别是算法用自然语言描述时应当注意这点。 例如:“将成绩优秀的同学名单打印输出”就是有歧义的。“成绩优秀”是要求每门课程都90分以上,还是平均成绩在90分以上?不明确,有歧义,不适合描述算法步骤。;3、有0个或多个输入(即:可以没有输入,也可以有输入) 所谓输入是指算法执行时从外界获取必要信息。(外界是相对算法本身的,输入可以是人工键盘输入的数据,也可以是程序其它部分传递给算法的数据) 例如:不需要输入任何信息,就可以计算出5!;(0个输入) 例如:如果要计算两个整数的最大公约数,则需要输入2个整数m,n。(2个输入) ?4、有1个或多个输出(即算法必须得到结果) 算法的输出:算法得到的结果。算法必须有结果,没有结果的算法没有意义。(结果可以是显示在屏幕上的,也可以是将结果数据传递给程序的其它部分) 5、有效性 算法的每个步骤都应当能有效执行,并能得到确定的结果。例如:b=0,则执行a/b是不能有效执行的。 ;2.4. 怎样表示一个算法?;2.4.1 用自然语言表示算法;◆算法描述语言:是为了说明程序的流程而专门规定的某种语言。它一般介于自然语言与程序设计语言之间,它具有自然语言灵活的特点,同时又接近于程序设计语言的描述。 ◆注意:算法描述语言所描述的流程,一般不能直接作为程序来使用,最后还需转换成用某种程序设计语言所描述的程序。 ◆与程序设计语言的区别: 前者比较自由,不象后者那样受语法的约束,只要描述得人们能理解就行,而不必考虑计算机处理时所要遵循的规定或其它一些细节。;流程图:用一些约定的几何图形来描述算法。用某种图框表示某种操作,用箭头表示算法流程;l起止框:表示算法的开始和结束。一般内部只写“开始”或“结束”。 l 处理框:表示算法的某个处理步骤,一般内部常常填写赋值操作。 l输入输出框:表示算法请求输入输入需要的数据或算法将某些结果输出。一般内部常常填写“输入…”,“打印/显示…” l菱形框(判断框):作用主要是对一个给定条件进行判断,根据给定的条件是否成立来决定如何执行其后的操作。它有一个入口,两个出口。 l连接点:用于将画在不同地方的流程线连接起来。同一个编号的点是相互连接在一起的,实际上同一编号的点是同一个点,只是画不下才分开画。使用连接点,还可以避免流程线的交叉或过长,使流程图更加清晰。 l注释框:注释框不是流程图中必须

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档