跳转至内容

计算机革命/编程/程序设计

来自维基教科书,开放的书籍,开放的世界

程序设计与程序逻辑

[编辑 | 编辑源代码]

当您坐在电脑前,无论是在家还是在工作,您是否曾经想过让这台机器为您工作需要什么——规划、研究、开发、调试、实施、更新等等?

系统开发,用最简单的术语来说,是一个六阶段的过程或生命周期(SDLC),它由通常重叠的阶段组成,通常可能包括

  1. 进行初步调查;
  2. 然后分析系统;
  3. 设计和
  4. 开发系统,然后
  5. 实施,最后
  6. 提供系统维护,包括更新和升级,并有可能重新开始整个过程(Williams, B.K. & S.C. Sawyer. 2007. 使用信息技术:计算机和通信实用指南。第 7 版。蒙特利尔:麦格劳-希尔艾利,第 498-505 页)。

以下讨论将重点放在系统开发过程中的第四阶段或开发阶段——即编程。这个特定的过程涉及创建,正如术语所暗示的那样,一个“程序”或指令列表,使计算机能够将数据处理成更有意义的信息。

虽然我们大多数人都直觉地认为编程只是编写程序代码,但这个过程远不止这些。Reeves 很快就指出,“编程不是关于构建软件;编程是关于设计软件”,而且,“设计软件是管理复杂性的练习”(http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm 2006 年 12 月 4 日检索)。事实上,在回顾中,以下五个步骤参与了编程过程

  1. 问题澄清或定义问题;
  2. 程序设计或设计解决方案,
  3. 编写或编码程序;
  4. 程序测试,包括 alpha 测试和 beta 测试;以及
  5. 程序文档和维护(Williams & Sawyer,第 505-516 页)。

一旦决定继续进行系统开发,就必须进行编程——无论是由外部还是内部的程序员完成。此外,一旦编程需求得到澄清,下一步就涉及设计一个“由系统分析师指定的解决方案”(Williams & Sawyer,第 507 页)。

首先找到解决方案是创建一个“算法”或一系列步骤或规则,这些步骤或规则是明确的,以及尽可能简单和最小化,以实现该解决方案。毫无疑问,“软件设计必须在所有方面都完整和正确……[但了解这一点也很重要]软件设计中有一些重要的方面无法清晰地归类为数据结构和算法”,因此有必要使用任何“工具和符号”来帮助,并认识到“所有设计活动都是相互作用的”。因此,“初始设计在此[设计]周期中保持不变的可能性……”是(或应被认为是)不可能的。它本质上是一个“……受控的细化过程……”,需要“……所有级别的良好设计”(http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm 2006 年 12 月 4 日检索)。

所以,为了设计一个程序,本质上有两个步骤,包括确定

  1. 程序逻辑和
  2. 然后是它的细节。

在当今的编程世界中,在第一步(即确定程序逻辑)中,使用结构图或层次结构图来确定程序逻辑。正如术语“层次结构”所暗示的那样,它是一种自上而下的设计或方法,层次结构中包含程序中的模块或处理步骤,这些步骤试图识别所有元素以及元素或模块之间可能需要实现程序目的的关系。这种后者的“模块化”概念将每个操作分解为更小、更易于管理且通常更不复杂的单个函数,从而实现开发和测试活动的隔离(Williams & Sawyer,第 507-508 页)。Williams & Sawyer 提供了一份清单,其中包含在确定模块化时应牢记的考虑因素或规则,例如将每个模块保持在可管理的范围内;每个模块都具有独立于其他模块的单个功能;确保输入和输出函数在“独立的模块中清晰定义”;具有单个入口和出口点;并确保控制返回到“……调用它的‘点’……”第一个模块(第 509 页)。

总之,在程序设计步骤中确定程序逻辑时,“结构化编程采用自上而下的方法,将程序分解为模块化形式”。“称为控制结构的标准逻辑工具”也被使用,将在下一节中更详细地讨论,下一节将探讨如何确定设计细节(Williams & Sawyer,第 508 页)。

设计细节:流程图、页面布局和故事板

[编辑 | 编辑源代码]

在设计网站时,流程图用于描述网站中的页面如何相互关联。流程图基本上是网站结构的地图。它使用单个框来表示每个网页,框之间的线显示网站的一致组织。

三种控制结构

[编辑 | 编辑源代码]

控制结构分为三组

  1. 顺序控制结构
  2. 选择控制结构
  3. 迭代控制结构

顺序控制结构是最重要的结构。它的目的是按顺序(一个接一个地)执行动作。在所有控制结构中都可以使用逻辑运算符,如(或、且、非)或关系(=、<、>、<=.=>,< >)。

选择控制结构允许算法做出决策或进行选择。根据条件或多个条件是否满足,执行或省略该过程。条件是一个表达式,它返回一个真值或假值,以便算法做出决策。

结构-“If”:它由一个条件或也称为逻辑表达式指定,该条件或逻辑表达式可以为真或假。算法始终从两种方式中选择一种。

结构-“Case”:它用于解决选择方案数量大于两个的情况。根据表达式的值,可以取不同的 X 值,并且只能执行其中一个值。

在迭代控制结构中,有必要多次执行一条指令或一组指令,以便解决某些问题。在某些情况下,重复次数是已知的,但在其他情况下,重复次数取决于在问题解决过程中发生的变量的计算。

Do Until
在此结构中,满足条件并在每次执行后进行评估。因此,条件至少执行一次,并且只要条件保持为假,它就会重复。已知交互次数,但始终大于 0。
Do while
此结构与 Do until 结构相反。当条件保持为真时,重复执行操作。如果条件为假,则无法生成执行或操作的执行将停止生产。

进一步阅读

[编辑 | 编辑源代码]
华夏公益教科书