c语言设计课件2.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言设计课件2.ppt

第二章 程序的灵魂—算法 算法例子 一道菜的菜谱 太极拳的打法 解一个一元二次方程的根 如: ax2+bx+c=0 分析并确定所要解决的问题 列出解决问题所需要的数据 确定算法 求1X2X3X4X5 S1:先求1X2,得到结果2 S2:将步骤1得到的乘积2再乘以3,得到结果6 S3:将6再乘以4,得24 S4:将24再乘以5,得120,这就是最后的结果 若要计算10!则需要9个步…… 寻求计算的规律性 令p为被乘数,i为乘数 S1:令p=1 S2:令i=2 S3:使p X i,乘积仍存放在变量p中,表示为 p X i =〉p S4:使i的值加1,i+1=i S5:如果i不大于5,返回S3,否则算法结束 例:输入三个数,输出其中最大值 首先:定义三个变量A,B,C,将三个数依次输入到A,B,C中,同时定义一个变量MAX来存最大数 其次:比较A,B的大小,将大的数存入MAX中 然后:再将C与MAX进行比较,把大的数存入MAX中 最后:输出MAX,此时MAX即为A,B,C三者的最大数 1) 输入A、B、C。 2) A与B中大的一个放入M A X中。 3) 把C与M A X中大的一个放入M A X中。 4) 输出M A X,M A X即为最大数。 进一步细化 1) 输入A,B,C。 2) 若A B,则MAX ← A;否则M A X←B。 3) 若C M A X,则M A X← C。 4) 输出M A X,M A X即为最大数。 例:求1-1/2+1/3-1/4+...+1/99-1/100 S1: 1=sign S2: 1=sum S3: 2 =deno S4: (-1)*sign =sign S5: sign*(1/deno) =term S6: sum+term =sum S7: deno+1 = deno S8: 若deno=100,返回S4;否则算法结束 判断一个数是否为素数 素数:是指除了1和该数本身以外,不能被其他任何整数整除的数。 判断一个数n(n=3)是否为素数:将n作为被除数,将2到(n-1)各个整数轮流作为除数,如果都不能整除,则n为素数 注:判断一个数n是否为素数,只需判断n是否能被2到 之间的整数整除,如果不能的话,则为素数 1) 输入n的值 2) i ← 2(i作为除数) 3) n被i除,得余数r 4) 如果r=0,表示n能被i 整除,则打印n不是素数,算法结束;否则执行5) 5) i ← i+1 6) 如果i=n-1,返回3);否则打印n是素数,算法结束 算法 算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每条指令表示一个和多个操作;此外,一个算法还具有下列特性: 有穷性 确定性 有效性(所有的操作必须足够基本) 0个或多个输入 一个或多个输出 算法设计的要求 正确性 程序对于精心选择的、典型、苛刻的带有刁难性的几组输入数据能够得出满足要求的结果 可读性 算法主要是为了人的阅读与交流,其次才是为计算机执行。因此算法应该易于人的理解;另一方面,晦涩难读的程序易于隐藏较多错误而难以调试 健壮性 当输入的数据非法时,算法应当恰当地作出反映或进行相应处理,而不是产生莫名奇妙的输出结果 效率与低存储量的要求 效率指的是算法执行时间;存储量指的是算法执行过程中所需的最大存储空间。 算法的描述 自然语言 传统流程图 结构化流程图 伪代码 PAD图 例:有50个学生,要求将他们之中成绩在80分以上者打印出来:ni表示第i个学生学号,gi表示第i个学生的成绩 1) i ← 1 2) 如果gi=80,则打印ni和gi,否则不打印 3) i ← i+1 4) 如果i=50,返回2),继续执行;否则算法结束 求最大值 判断素数 传统流程图 优点:直观形象,流程清晰,各种操作一目了然,不易产生歧义; 缺点:流程图占面积大,由于允许使用流程线,使流程任意转移,容易使人弄不清流程的思路。 程序的三种基本机构 顺序结构 选择结构 循环结构——当型循环(while循环) 循环结构——直到型循环(do-while循环,until循环) 任何复杂的算法,都可以由顺序结构、选择(分支)结构和循环结构这三种基本结构组成。 基本结构之间可以并列、可以相互包含,但不允许交叉,不允许从一个结构直接转到另一个结构的内部去。 整个算法由三种基本结构组成的,就像用模块构建的一样,所以结构清晰,易于正确性验证,易于纠错,这种方法,就是结构化方法。遵循这种方法的程序设计,就是结构化程序设计。 求最大值 统计分数 判断素数 猴子吃桃问题:有一堆桃子不知数目,猴子第一天吃掉一半,觉得不过瘾,又多吃了一只,第二天照此办理,吃掉剩下桃子的一半另加一个,天天如此

文档评论(0)

msb + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8134116003000000

1亿VIP精品文档

相关文档