首页 理论教育 子程序结构形式

子程序结构形式

时间:2022-02-28 理论教育 版权反馈
【摘要】:通常将这些公用子程序事先编好,组成子程序库,作为计算机系统软件的一部分提供给用户使用。这样的子程序称为标准子程序。除此之外,用户还可建立自己的子程序库。子程序设计是使程序模块化的一种重要手段。主程序每次调用子程序时提供给子程序加工的数据往往是不同的。主程序怎样把这些数据传送给子程序,而子程序又如何把加工结果交给主程序?即主、子程序之间用什么方式传递参数?

4.5.1 子程序结构形式

在程序设计中,对于某个连续多次有规律重复出现的程序段,常常编制成循环程序。这样既可缩短程序的长度,又可使程序的结构变得紧凑。但对无规律的重复,例如,某个程序段在重复执行时,其关键参数值的变化没有规则,或者此程序段重复出现的位置无规律可循,此时,很难用循环程序实现。更值得注意的是,用户与用户之间,同一个用户的多个程序之间,往往会用到某些相同的程序段。例如,在许多程序中都需要进行十进制数与二进制数之间的转换,这时每个用户如果都单独设计一个转换程序,就会浪费人力和时间,降低程序设计的工作效率。为了解决这类问题,一个行之有效的方法就是将这些重复的或经常要使用的程序段设计成可供反复调用的独立程序段,在需要时用控制指令调用它,执行完后,再返回到调用它的程序中继续执行。这样的独立程序段称为子程序。对众多用户经常要用到的公用程序,例如,输入/输出程序、数制转换程序、三角函数、指数函数、解线性方程组等程序都是采用子程序方式编制的。

通常将这些公用子程序事先编好,组成子程序库,作为计算机系统软件的一部分提供给用户使用。这样的子程序称为标准子程序。当用户需要使用某个标准子程序时,只要按照系统规定的调用方式调用它即可。除此之外,用户还可建立自己的子程序库。

调用子程序的程序称为主程序(或称调用程序)。主程序和子程序之间的关系如图4-16所示。

img88

图4-16 主程序和子程序关系示意图

图4-16中主程序在K处和J处均调用了子程序A。当主程序调用子程序后,CPU就转去执行子程序,执行完毕,则自动返回到主程序的断点处继续往下执行。断点是指转子指令的直接后继指令的地址。如在K处调用子程序A,断点就是DK,子程序A执行完后,返回到DK处继续往下执行。同理,在J处调用子程序A,DJ就是断点,子程序A执行完后,返回到DJ处继续往下执行。

子程序设计是使程序模块化的一种重要手段。当设计一个比较复杂的程序时,根据程序要实现的若干主要功能及各功能块要调用的公用部分,将程序划分为若干个相对独立的模块,确定各模块的入口及出口参数,为各模块分配不同的名字(入口地址),然后对每一模块编制独立的程序段(即子程序),最后将这些子程序根据调用关系连成一个整体。这样既便于分工合作,又可避免重复劳动,节省了存储空间,提高了程序设计的效率和质量,使程序简洁、清晰、易读,便于修改和扩充。

在设计子程序时,要考虑的主要问题如下:

(1)主程序是怎样调用子程序的?

(2)子程序执行完之后,怎样才能返回到主程序的断点处继续往下执行?

(3)主程序每次调用子程序时提供给子程序加工的数据往往是不同的。主程序怎样把这些数据传送给子程序,而子程序又如何把加工结果交给主程序?即主、子程序之间用什么方式传递参数?

(4)如何编制子程序?

下面讨论这些问题。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈