第5章结构化程序设计.pptxVIP

  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文档。上传文档
查看更多
5.1 结构化程序设计思想;5.1 结构化程序设计思想;主要观点: 采用自顶向下、逐步求精的程序设计方法;强调使用顺序、选择、循环三种基本结构构造程序,利用三种基本结构的组合嵌套形成更复杂的“结构化程序”,严格控制GOTO语句的使用;5.2 结构化程序设计方法;结构化程序设计强调过程设计,以功能为中心;;在结构化程序设计中,每个子功能最终都变成独立的程序模块。系统由一些小的功能模块组合而成,每个功能模块又可以由一些更小的子模块构成。模块之间就会形成上下层的关系,上层模块所实现的功能需要调用下层模块来实现。;耦合性是指模块间相互联系的紧密程度。 耦合性越小,模块间的联系越少,模块的相对独立性越大,一个模块中的错误就不容易传播到其它模块。;内聚性用来衡量一个模块内部各个元素之间结合的紧密程度。 内聚性越强,模块内部元素之间联系得越紧密,模块独立性越好。;5.3 函数;模块;【例5.1】找零钱;(1)找零函数GetChanges;(2)主函数Main;调用函数的格式为: 函数名(实参列表);【例5.2】求两个数中的最大值;【例5.2】求两个数中的最大值;1.值类型参数 把实参的一个副本传递给相应的形参,即形参获得的是实参的值。 在函数内部对形参的修改不会影响到实参。;【例5.3】交换两个变量的值;【例5.3】交换两个变量的值;引用类型不存储实际数据内容,它存储对实际数据的内存地址的引用。我们可以通过该引用来操作它所指向内存中的数据,而不是直接操作该数据。;向函数传递引用类型参数,即把实参的一个引用传递给形参。形参只是实参的一个引用,不是实参的一个副本。 在函数中对引用类型参数的任何更改都会反映给实参,即实参与引用类型参数同时发生变化。;【例5.4】交换两个变量的值;【例5.4】交换两个变量的值;使函数返回多个值。 参数通过引用来传递。;【例5.5】判断所输入的字符是否包含数字,若包含则返回该数字;【例5.5】判断所输入的字符是否包含数字,若包含则返回该数字;函数参数的个数不固定,使用参数数组。 当函数参数为参数数组时,可以使用0、1、2、…、n个参数调用函数。 参数数组与同一类型的值类型参数完???等效;【例5.6】求和;【例5.6】求和;在相同的作用域中,允许同名函数存在,就称为函数重载。 为了区分这些同名函数,必须给这些同名函数指定不同的参数(参数类型,参数个数)。;【例5.7】利用重载函数比较不同类型的值;【例5.7】利用重载函数比较不同类型的值;【例5.7】利用重载函数比较不同类型的值;一个函数在其函数体内直接或间接地调用自身,则该函数称为递归函数。;【例5.8】求n!;【例5.8】求n!;【例5.8】求n!;求解n!,将问题分解为求(n-1)!。依此类推,直至0!等于1为止。最后,综合各子问题的解,即可求得n!=1×2×…×n-1×n。;在设计递归函数时,一般要考虑两个问题: (1)如何将问题分解为性质相同的子问题。例如,n!=n(n-1)!。 (2)递归结束条件。例如,0!=1。如果没有递归结束条件,就会出现无限递归情况。;【例5.9】求斐波那契序列的第n项;【例5.9】求斐波那契序列的第n项;5.4 一个结构化程序设计的例子;万年历;月历头需要显示该月份所在的年份、英文月份名的缩写和一个星期每天的英文缩写名。 月份所在的年份根据用户输入而获得; 月份也可以根据用户输入而获得,但必须转换为英文月份名的缩写形式; 一个星期每天的英文缩写名固定不变。;万年历;【例5.10】万年历;(2)获取月份名函数GetMonthName;(3)显示月历体函数DisplayBody;(4)获取月份第一天函数GetFirstDay;(5)计算月份天数函数GetDays;(6)主函数Main

文档评论(0)

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

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

1亿VIP精品文档

相关文档