- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实际 问题 求解 编制 问题 问题 模型 算法 程序 实现 程 序 程序 ( Program) 是为解决某个问题用计算机语言或命令设计、 编写的一系列指令的有序集合。 是人的思维活动的代码化描述。 程序的顺序执行 一个程序通常分为若干个具有一定独立性的程序段,这些程序段是按逻辑步骤编排执行的,只有当当前程序段执行完成后,才将控制权转交到下一个程序段并执行下一个程序段。 一个程序应包括以下几方面内容: (1)对数据的描述。指定数据的类型和组织形式,即数据结构。 (2)对操作的描述。即操作步骤(算法)。 (3)采用某种程序设计方法进行设计。 (4)采用某一种计算机语言来表示。 程序 = 算法+数据结构+程序设计方法+语言工具和环境 在这四个方面中,算法是灵魂,数据结构是加工对象,语言是工具,编程需采用合适的方法。 算法是解决“做什么”和“怎么做”的问题 程序设计的过程: 问题的分析 算法的设计 流程的描述 调试与运行 2.1 算法的概念 2.2 简单算法举例 例2.1 求1×2×3×4×5。 可先写出这样的算法: (1)先求1×2,得到结果2; (2)将步骤1得到的结果再乘以3,得到结果6; (3)将6再乘以4,得到24; (4)将24再乘以5,得到120。 求1×2×3×4×5 上述算法太繁琐,我们找一种通用的表示方法。 S1:设变量p,代表被乘数,p=1 S2:设变量i,代表乘数,i=2 S3:使p×i,乘积放在被乘数变量p中,可表示为 p×i ? p S4:使i的值加1,即i+1 ? i S5:如果i不大于5,返回重新执行步骤s3以及其后的s4、s5;否则,算法结束。最后得到的p就是5! 的值。 求1×3×5×7×9 ×11 如果题目改为求1×3×5×7×9 ×11。 上述算法稍作改动: S1:1 ? p S2:3 ?i S3:p ×i ?p S4:i+2 ?i S5:若i?11,返回s3;否则,结束。 例2.2 例2.2:有50个学生,要求将他们之中成绩在80分以上者打印出来。 解:用n表示学生学号,n1代表第一个学生学号,ni 代表第i 个学生学号。用g代表学生成绩,gi代表第i个学生成绩,算法表示如下: 例2.2 S1: 1 ?i; S2: 如果gi?80,则打印ni和gi,否则不打印。 S3: i+1 ?i; S4: 如果i?50,返回s2,继续执行,否则算法结束。 本例中,变量i作为下标,用它来控制序号(第几个学生,第几个成绩)。当 i超过50时,表示已对50个学生的成绩处理完毕,算法结束。 例 2.3 例 2.3:判断2000年---2500年中的每一年是否闰年,将结果输出。 解:闰年的条件是:(1)能被4整除,但不能被100整除的年份是闰年。如1996,2004年;(2)能被100整除,又能被400整除的年份是闰年。如1600,2000年。不符合这两个条件的年份不是闰年。 例 2.3 算法如下:设y为被检测的年份,可采取以下步骤: s1: 2000 ?y; s2: 若y不能被4整除,则输出y “不是闰年”。然后转到s6. s3: 若y能被4整除,不能被100整除,输出y “是闰年”,然后转到s6。 s4: 若y 能被100整除,又能被400整除,输出y “是闰年”;否则输出“不是闰年”,然后转到s6。 s5: 其他,输出 y “不是闰年”。 s6: y+1 ?y; s7: 当y?2500时,转s2继续执行,如y2500,算法停止。 例2.4 判断一个数n(n=3)是不是素数 小练习 题目:商店结帐,要求将当天100笔收入累加,打印出总和。写出算法: 以上算法计算机重复执行了一些操作,引入计算机“ 循环” 的概念,算法可改写为: (1) 设“ 计数变量” N,使N的初值为零,即N=0; (2) 设“ 累加变量” T,初值为零(T=0); (3) 输入一个数给“ 收入变量” A; (4) 将A和T的值相加,和放在变量T中,即A+T?T; (5)使N的值加1,即N+1 ? N(N的值表示已累加的数据的个数); (6)若N100,则返回(3)继续执行,否则执行(7); (7)打印出总和T的值。 这个算法比上一个简单明确。如果收入不是100笔而是1000笔,只需将(6)中的N100改为N1000即可。 算法中变量T的值是不断改变的,在每次循环中以一个新的值(A+T的原值)代替它的原值,然后再以T的新值作为下一次运算的基础,再求出T的下一次的值,如此一次次地求下去直到达到要求为止,这种方法称为“ 迭代”,即 A+T?T 。T称为迭代变量。 计算机算法的最大特点就是“ 迭代”。利
文档评论(0)