- 1、本文档共71页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序结构 什么是结构化程序设计? Structured Programming,简称SP 1965年,最早由E.W.Dijkstra在一次国际会议上提出 1966年,C.Bohm和G.Jacopini首先证明了: 只用顺序、选择、循环三种基本的控制结构就能实现任何单入口、单出口的程序 给结构化程序设计奠定了基础 1971年,IBM公司的Mills提出: 程序应该只有一个入口和一个出口 进一步补充了结构化程序的规则 什么是结构化程序设计? 目前,还没有一个严格的定义 1974年,D.Gries教授将已有的对结构化程序设计的不同解释归纳为13种。 一个比较流行的定义是: 结构化程序设计是一种进行程序设计的原则和方法,它避免使用goto语句,采用“自顶向下、逐步求精”方法进行程序设计,按照这种原则和方法设计出的程序的特点为: 结构清晰 容易阅读 容易修改 容易验证 糟糕的goto START_LOOP: if (fStatusOk) { if (fDataAvaiable) { i = 10; goto MID_LOOP; } else { goto END_LOOP; } } else { for (i = 0; i 100; i++) { MID_LOOP: // lots of code here } goto START_LOOP; } END_LOOP: 什么是结构化程序设计? 不能简单的认为 避免使用goto语句的程序设计方法就是结构化程序设计方法 用goto跳向共同的出口位置` void Init(void) { char *p1 = NULL; char *p2 = NULL; char *p3 = NULL; p1 = (char*)malloc(256); if (p1 == NULL) goto Exit; p2 = (char*)malloc(256); if (p2 == NULL) goto Exit; p3 = (char*)malloc(256); if (p3 == NULL) goto Exit; /*正常处理的代码*/ Exit: if (p1 != NULL) free(p1); if (p2 != NULL) free(p2); if (p3 != NULL) free(p3); return; } 结构化程序设计关注的焦点 结构化程序设计关注的焦点 程序结构的好坏 有无goto,并不是程序结构好坏的标志 限制和避免使用goto,只是得到结构化程序的一个手段,而不是我们的目的 结构化程序设计的核心思想 采用顺序、选择和循环三种基本结构作为程序设计的基本单元 只有一个入口; 只有一个出口; 无死语句,即不存在永远都执行不到的语句; 无死循环,即不存在永远都执行不完的循环。 采用“自顶向下、逐步求精”和模块化的方法进行结构化程序设计 如何设计结构化的程序? Top-down, Stepwise refinement 自顶向下、逐步求精 1971年,wirth提出的结构化程序设计方法 先全局后局部 先整体后细节 先抽象后具体 自顶向下、逐步求精的结构化程序设计方法 算法的概念 数据结构 + 算法 = 程序 算法: 为解决一个具体问题而采取的确定的 有限的操作步骤,仅指计算机能执行的 算法 算法的特性 有穷性 在合理的时间内完成 确定性,无歧义 如果x≥0,则输出Yes;如果x≤0,则输出No; 有效性 能有效执行 负数开平方 没有输入或有多个输入 有一个或多个输出 算法的分类 数值运算算法: 解决求数值解问题 非数值运算算法: 需要用分析推理、逻辑推理才能解决的问题 例如人工智能中的许多问题,查找、分类等 算法的表示方法 自然语言表示 传统的流程图表示 在1966年,Bohra 与 Jacopini 提出,常用符号见下图4.1。 N-S结构化流程图表示 1973年,美国学者I.Nassi 和 B.Shneiderman 提出 伪代码表示 N-S图 6!算法可以用 N-S 图表示如下: 简单举例:设银行定期存款的年利率rate为2.25%, 并已知存款期为n年,存款本金为capital元,试计算n年后 的本利之和deposit是多少呢? deposit= capital*(1+ rate )n 4.2.2 应用程序举例 例4.
您可能关注的文档
- CNKI系列数据库和使用介绍-天津大学.ppt
- Core Graphics框架 一个让程序猿成为视觉设计师框架.docx
- CorelDRAW 图形对图像编辑.ppt
- Couette-Taylor流三模系统的混沌行为和其仿真.pdf
- CPP手机定位市场应用分析.pdf
- 歧口凹陷重要断裂构造与构造带特征研究.pdf
- CPU体系结构CISC及RISC.pdf
- Criteria及MyBatis学习总结.pptx
- CRP及hs-CRP,一种蛋白的“分身术”.pdf
- 气压传动基本回路(第6篇).pdf
- [中央]2023年中国电子学会招聘应届生笔试历年参考题库附带答案详解.docx
- [吉安]2023年江西吉安市青原区总工会招聘协理员笔试历年参考题库附带答案详解.docx
- [中央]中华预防医学会科普信息部工作人员招聘笔试历年参考题库附带答案详解.docx
- [保定]河北保定市第二医院招聘工作人员49人笔试历年参考题库附带答案详解.docx
- [南通]江苏南通市崇川区人民法院招聘专职人民调解员10人笔试历年参考题库附带答案详解.docx
- [厦门]2023年福建厦门市机关事务管理局非在编工作人员招聘笔试历年参考题库附带答案详解.docx
- [三明]2023年福建三明市尤溪县招聘小学幼儿园新任教师79人笔试历年参考题库附带答案详解.docx
- [哈尔滨]2023年黑龙江哈尔滨市木兰县调配事业单位工作人员笔试历年参考题库附带答案详解.docx
- [上海]2023年上海市气象局所属事业单位招聘笔试历年参考题库附带答案详解.docx
- [台州]2023年浙江台州椒江区招聘中小学教师40人笔试历年参考题库附带答案详解.docx
最近下载
- 中国急性胰腺炎诊治指南(2021).docx
- 2024届高考散文阅读知识点即答题技巧概述+课件113张.pptx VIP
- 2024苏科版新教材八年级物理上册新课程内容解读课件(深度).pdf
- Unit3 第2课时Speed up Fuel up(教学设计)-三年级英语下册(外研版三起2024).pdf
- 第16课优秀影视作品欣赏与分析教学设计-2023—2024学年人教版初中综合实践活动八年级上册.docx
- 幼儿园中班音乐《章鱼和小鱼》 优质课件.pptx
- 考研真题武汉理工大学833材料科学基础历年考研真题汇编(含部分答案).docx
- 2024年度房地产市场总结报告:泉州-保利和润.docx
- 北京理工大学考博英语历年真题及详解.pdf
- 传热学(全套714页课件课件).pptx VIP
文档评论(0)