📅  最后修改于: 2021-01-10 02:58:56             🧑  作者: Mango
在结构化编程中,我们将整个程序细分为小模块,以便使程序易于理解。结构化编程的目的是使通过计算机程序的控制流线性化,以使执行顺序遵循编写代码的顺序。程序的动态结构不同于程序的静态结构。这样可以提高程序的可读性,可测试性和可修改性。可以通过将允许的应用程序构造的集合限制为单入口单出口格式来管理这种线性控制流。
我们使用结构化编程是因为它使程序员可以轻松地理解程序。如果一个程序包含数千条指令并且发生错误,那么在整个程序中查找该错误很复杂,但是在结构化编程中,我们可以轻松地检测到该错误,然后转到该位置并进行纠正。这样可以节省大量时间。
这些是结构化编程中的以下规则:
如果进入条件正确,但退出条件错误,则错误必须在程序段中。如果允许执行跳转到块中,则情况并非如此。该错误可能在程序中的任何地方。在这种情况下进行调试要困难得多。
结构化编程的规则1:一个代码块被结构化,如图所示。在流程图条件下,将构造一个具有单个入口点和单个出口点的框。结构化编程是一种证明程序正确的方法。
如果每个块的退出条件与下一个块的进入条件相匹配,则一系列的块是正确的。执行将在块的入口点进入每个块,并从该块的出口点离开。整个系列可以看作是一个带有入口点和出口点的块。
结构化编程的规则2:如图所示,结构化了序列中的两个或更多代码块。
If-then-else通常被称为交替(因为有其他选择)。在结构化编程中,每个选择都是一个代码块。如果按照右图中的流程图组织轮换,那么将有一个入口点(在顶部)和一个出口点(在底部)。应该对结构进行编码,以便如果满足输入条件,则满足出口条件(就像代码块一样)。
结构化编程的规则3:两个代码块的交替结构化,如图所示。
交替方法的输入条件的示例为:寄存器$ 8包含有符号整数。退出条件可能是:寄存器$ 8包含有符号数的绝对值。分支结构用于满足退出条件。
迭代(while循环)的组织如右图所示。它还具有一个入口点和一个出口点。入口点必须满足条件,出口点必须满足条件。无需从代码的外部跳入表单。
结构化编程的规则4:代码块的迭代是结构化的,如图所示。
在流程图条件下,任何代码块都可以扩展为任何结构。如果流程图的一部分具有单个入口点和单个出口点,则可以将其概括为单个代码块。
结构化编程的规则5:具有单个入口点和单个出口点的结构(任何大小)都等效于代码块。例如,我们正在设计一个程序来遍历一个有符号整数列表,计算每个整数的绝对值。我们可以(1)首先将程序视为一个块,然后(2)在所需的迭代中进行绘制,最后(3)输入循环主体的详细信息,如图所示。
其他控制结构是大小写的,执行至执行,执行至执行和不需要执行的。但是,它们有时很方便,通常被视为结构化编程的一部分。在汇编语言中,它们添加的便利很少。