- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4章结构化程序设计.pdf
第四章 结构化程序设计
4.1 结构化程序设计及其基本结构
4.2 结构化程序设计方法
4.3 结构化程序设计举例
4.4 习题与思考题
4.1 结构化程序设计机器基本结构
4.1.1 程序设计的发展过程
4.1.2 结构化程序设计及其基本结构
4.1.1 程序设计的发展过程
50年代的程序是用指令代码或汇编语言编写的。这种程序设计
麻烦,不易阅读,出错后不易检查和修改。因此,编写程序只能是
专业人员的事情。高级语言的出现简化了程序设计,缩短了程序设
计的周期。到60年代,产生了一系列不同风格的程序设计语言,比
如FORTRAN、COBOL、PASCAL、PL/1、ALGOL,C和BASIC等。
从60年代末到70年代初,由于大型软件系统的出现,比如操作
系统、数据库管理系统等,从而给程序设计带来了一系列新的问
题,也就是第1章中所说的“软件危机”。那时,人们开始重新思考
程序设计的基本问题,即程序的基本组成、基本设计方法;开始思
考如何为程序设计建立必要的规范?即所谓规范化的设计,以保证
程序设计的正确性。
虽然,在程序设计的初期,人们就开始把一些基本的计
算、功能或者过程设计成独立的程序段,即所谓的子程序、子
过程,开始了模块化的设计。但是由于没有必要的规范,使程
序庞大,相互之间的关系错综复杂,尤其是无原则地使用GOTO
语句。1969年,荷兰学者迪克斯特拉(E.W.dijkstra)首先提出
了结构化程序设计的概念。以后经过几年的争论、探索和实
践,逐步取得了成效,为广大的软件开发人员所认可。实践证
明,使用这种方法编写的程序不仅结构良好,易写易读,而且
易于证明其正确性。
到了20世纪70年代末至80年代初,计算机应用领域日渐
扩大,系统软件和应用软件的需求日益增多,形式多种多样。
这时,为了便于大型软件的开发和不同层次人们的需求,出现
了面向对象的程序设计(Object Oriented Programming,简
称为OOP)。由于其高效和实用性,近年来得到了迅速的发
展。目前,已初步成为新的设计方法和软件开发技术。但是,
结构化程序设计仍然是各种大型程序设计的基础。
4.1.2 结构化程序设计及其基本结构
1. 结构化程序设计的基本要求
结构化程序设计自1969年由迪克斯特拉(E.W.dijkstra)提出
以后,经过数十年的发展,如今已被广泛用于程序设计中。它要
求整个程序可分解为不同功能的模块,每一个模块又由不同的子
模块组成 … ,最小的模块是一个最基本的结构。这样的程序一
般具有良好的书写形式和结构,容易阅读和理解。
从工程化的角度来看,它要求人们按照一定的规范进行程序
设计,按照工程化的方式组织软件生产;使软件具有统一的标准
和风格,便于生产、维护和推广;便于版本修改、升级和继承。
2. 基本结构
结构化程序设计方法规定了几
种具有良好特性的“基本结构” 。以
此作为程序设计中的基本单元,再 a块
由这些基本单元构成大的程序。采 a块
b块 b块
用这种结构,可以避免程序中无规
则的跳转和难以理解的逻辑关系。
(b) N-S结构图
其基本结构主要有三种,即顺序 (a) 流程图
结构、分支选择结构和循环结构。 图4.1 顺序结构示意图
(1) 顺序结构
顺序结构是一种最简单、最基本的结构。在这种结构
中,各程序块按照出现的顺序依次执行,其示意如图4.1所
示,它有一个入口A和一个出口B,内部可包含多个程序模块。
其中图(a)是用流程图表示各程序块之间
文档评论(0)