控制结构
编写的程序在程序语言,最常见的类型,就像食谱,列出的成分和一步一步地说明了如何使用它们。几乎每一个过程语言的三种基本控制结构是:
-
1。Sequence-combine液体成分,和明年添加干的。
-
2。条件型if然后西红柿是新鲜煮它们,但如果罐头,跳过这个步骤。
-
3所示。Iterative-beat蛋清直到它们形成柔软的山峰。
序列是默认的控制结构;一个接一个地执行指令。例如,他们可能会进行一系列的算术运算,将结果分配给变量,找到的根源二次方程一个x2+bx+c= 0。的有条件的if - then或if - then - else控制结构允许一个程序替代的执行路径。迭代,或循环,给计算机的能力。他们可以重复序列步骤是必要的,和适当的重复很简单的步骤可以解决复杂的问题。
这些控制结构可以组合。一个序列可能包含几个循环;循环嵌套在它可能包含一个循环,或有条件的两个分支可能包含序列和循环和条件。本文中使用的“伪代码”,“*”表示乘法和“←”是用来给变量赋值。以下编程片段使用if - then结构寻找一个二次方程的根,使用二次公式:
。
二次公式假设一个非零和判别(内的部分吗平方根签名)并不是消极的(为了获得实数根)。这些假设条件检查:
-
如果一个= 0然后
-
根←−c/b
-
其他的
-
判别←b*b−4 *一个*c
-
如果判别≥0
-
根←(−b+ SQUARE_ROOT) / 2 *(判别)一个
-
ENDIF
-
ENDIF
SQUARE_ROOT函数中使用上面的片段是一个子程序(也称为程序、子程序或函数)。子程序就像一个酱食谱给一次,用作其他许多食谱的一部分。子把输入(所需数量)和产生的结果(酱)。常用的子程序通常是在一个集合或库提供了一种语言。子可以调用其他子程序定义,如以下所示程序(ABS是绝对值函数)。SQUARE_ROOT是实现通过使用一段时间(无限期)循环,产生一个好的近似为实数,除非的平方根x很小或很大。子程序是由声明它的名字,输入数据的类型,和输出:
-
函数SQUARE_ROOT(真正的x)返回真
-
1.0根←
-
而ABS(根*根−x)≥0.000001
-
虽然根←(x/根+根)/ 2
-
返回根
子可以一个问题分解成更小、更容易处理的子问题。有时问题可能得到解决通过减少它的子问题是最初的一个较小的版本。在这种情况下,常规称为递归子程序,因为它解决了问题,多次自称。例如,factorial函数在数学(n!=n∙(n2−1)⋯3∙∙1-i.e。,产品的第一n整数),可以作为一个递归程序例程:
-
(整数阶乘函数n)返回整数
-
如果n= 0然后返回1
-
其他的回报n* FACTORIAL (n−1)
递归的优点是,它通常是一个简单的重述一个精确的定义,一个避免的簿记细节迭代解决方案。
在机器层面,实现循环和条件与分支指令说“跳”一个新的程序。高级语言中的“goto”语句表达了相同的操作,但是很少使用,因为它对人类很难遵守程序的“流”。等语言Java艾达,不要允许这样做。