
编程方法已经从传统的“面向过程的设计”发展为被广泛接受的“面向对象的设计”. 本节将讨论结构化编程.
建议的概念
1976年,N. Wirth出版了一本书,题为“算法+数据结构=程序”,明确指出“算法”和“数据结构”是程序的两个要素,即程序设计主要包括两个方面.
行为特征设计: 是指对问题解决的完整描述,以及对每个问题解决步骤的精确定义,此过程称为“算法设计”.
结构特征设计: 是指在解决问题的过程中表示计算机处理的数据以及数据之间的联系的方法.
根据以上定义,传统的编程方法可以概括为“程序=算法+数据结构”,它将程序定义为一系列处理数据的过程.
设计功能
结构化编程方法SP(Structured Programming)注重“面向过程”.
结构化程序设计的特征是将程序中的数据与处理数据的方法分开.
核心思想
结构化编程方法的核心是“算法设计”,基本思想是:
由上而下的渐进式细化设计方法: 根据功能拆分复杂的任务,并将其逐层细化为易于理解和描述的层次,最后形成由几个独立模块组成的树状层次结构结构化程序设计,如下图所示.


单进单出控制结构: 这意味着每个模块都按顺序,选择和循环结构进行描述.
应用示例
一个简单的示例: 读取一组整数并要求计算正整数和负整数的数量.
【分析】:
任务的顶部模块可以分为3个模块:
读入数据(模块1);
计算正负数(模块2);
输出结果(模块3);
其中,模块2可以进一步细分为以下小块:
正整数的数目为0;负整数的数量为0;
取第一个数字;
重复以下步骤结构化程序设计,直到计算出数据为止.
如果该数字大于0,则将1加上正整数;

如果数字小于0,则将1加上负整数;
删除号码.
以上结构化编程的方法如下图所示:

缺陷和不足
结构化编程方法曾经是编程的主流方法. 但是到了1980年代末,这种方法开始逐渐暴露出缺陷. 主要表现在以下几个方面:
难以适应大型软件的设计: 在大型的多文件软件系统中,由于数据量的增加,由于数据和数据处理相对独立,程序变得越来越困难. 理解,文件之间的数据通信也变得困难,并且容易产生意想不到的“副作用”.
程序重用性差: 结构化的编程方法没有创建“软件组件”的工具. 即使面对旧问题,数据类型或处理方法的变化也将不可避免地导致重新设计. 这种额外的成本与可重复使用性相反,被称为“重复投资”.
由结构化编程的特征引起的这些缺陷无法自己克服!越来越多的编程要求必须克服它们,最终导致创建“面向对象”的设计方法. 编程方法已经从传统的“面向过程的设计”发展为被广泛接受的“面向对象的设计”. 本节将讨论结构化编程.
建议的概念
1976年,N. Wirth出版了一本书,题为“算法+数据结构=程序”,明确指出“算法”和“数据结构”是程序的两个要素,即程序设计主要包括两个方面.
行为特征设计: 是指对问题解决的完整描述,以及对每个问题解决步骤的精确定义,此过程称为“算法设计”.
结构特征设计: 是指在解决问题的过程中表示计算机处理的数据以及数据之间的联系的方法.

根据以上定义,传统的编程方法可以概括为“程序=算法+数据结构”,它将程序定义为一系列处理数据的过程.
设计功能
结构化编程方法SP(Structured Programming)注重“面向过程”.
结构化程序设计的特征是将程序中的数据与处理数据的方法分开.
核心思想
结构化编程方法的核心是“算法设计”,基本思想是:
由上而下的渐进式细化设计方法: 根据功能拆分复杂的任务,并将其逐层细化为易于理解和描述的层次,最后形成由几个独立模块组成的树状层次结构,如下图所示.

单进单出控制结构: 这意味着每个模块都按顺序,选择和循环结构进行描述.
应用示例
一个简单的示例: 读取一组整数并要求计算正整数和负整数的数量.
【分析】:
任务的顶部模块可以分为3个模块:

读入数据(模块1);
计算正负数(模块2);
输出结果(模块3);
其中,模块2可以进一步细分为以下小块:
正整数的数目为0;负整数的数量为0;
取第一个数字;
重复以下步骤,直到计算出数据为止.
如果该数字大于0,则将1加上正整数;
如果数字小于0,则将1加上负整数;
删除号码.
以上结构化编程的方法如下图所示:

缺陷和不足
结构化编程方法曾经是编程的主流方法. 但是到了1980年代末,这种方法开始逐渐暴露出缺陷. 主要表现在以下几个方面:
难以适应大型软件的设计: 在大型的多文件软件系统中,由于数据量的增加,由于数据和数据处理相对独立,程序变得越来越困难. 理解,文件之间的数据通信也变得困难,并且容易产生意想不到的“副作用”.
程序重用性差: 结构化的编程方法没有创建“软件组件”的工具. 即使面对旧问题,数据类型或处理方法的变化也将不可避免地导致重新设计. 这种额外的成本与可重复使用性相反,被称为“重复投资”.
由结构化编程的特征引起的这些缺陷无法自己克服!越来越多的编程要求必须克服这些问题,最终导致创建“面向对象”的设计方法.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-178686-1.html
这个名字好
不喜勿喷
颗颗爱心变希望