第4章 程序的控制结构 内容提要 算法的描述方法 基本控制结构 基本控制语句 常用算法,如累加、累乘、统计、递推、迭代、穷举等 结构化程序设计的基本思想 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提出的结构化程序设计方法 先全局后局部 先整体后细节 先抽象后具体 自顶向下、逐步求精的结构化程序设计方法 算法的概念 数据结构 + 算法 = 程序 只对面向过程的语言(C)成立 面向对象程序 = 对象 + 消息 算法: 为解决一个具体问题而采取的确定的有限的操作步骤,仅指计算机能执行的算法 算法的特性 有穷性 在合理的时间内完成 确定性,无歧义 如果x≥0,则输出Yes;如果x≤0,则输出No; 有效性 能有效执行 负数开平方 没有输入或有多个输入 有一个或多个输出 算法的分类 数值运算算法: 解决求数值解问题 非数值运算算法: 需要用分析推理、逻辑推理才能解决的问题 例如人工智能中的许多问题,查找、分类等 算法的表示方法 自然语言表示 传统的流程图表示 在1966年,Bohra 与 Jacopini 提出 N-S结构化流程图表示 1973年,美国学者I.Nassi 和 B.
您可能关注的文档
- ITP的中西医诊断与..ppt
- 第4章电子数据交换技术(免费阅读).ppt
- 第4章电子商务法律问题(免费阅读).ppt
- JAVA多线程..ppt
- 第4章电容式传感器(免费阅读).ppt
- 第4章电弧及其与电路的相互作用简单回顾(免费阅读).ppt
- java复习课..ppt
- java多线程与异常处理..ppt
- 第4章电容式传感器41电容式传感器(免费阅读).ppt
- 第4章电力电子技术(免费阅读).ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 2025年北京中考英语大纲课件.pdf VIP
- 加油站安全管理研究.doc VIP
- (高清版)DB42∕T 1086-2015 《森林土壤有机质的测定 分光光度法》.pdf VIP
- QBNM-PS-0011—2020汽车车身内腔防护蜡标准.pdf VIP
- 广发证券-房地产行业2026年投资策略-星垂平野阔,月涌大江流.pdf VIP
- 2026年春节复工复产安全培训开工第一课全文.ppt
- 2025年烟台汽车工程职业学院单招语文测试模拟试卷优选题库.docx VIP
- 三副实习记录簿附页(精.选).docx VIP
- 2025年信息系统安全专家多方安全计算协议专题试卷及解析.pdf VIP
- 2025年拍卖师拍卖会PPT与多媒体素材播放技术保障专题试卷及解析.pdf VIP
原创力文档

文档评论(0)