编辑: You—灰機 | 2019-07-11 |
我们称这 些小的程序为程序的模块. ? 通常规定模块只有一个入口和出口,使用模块的约束条件 是入口参数和出口参数. ? 可以保证设计的逻辑正确性,而且更适合项目的集体开发. 各个模块分别由不同的程序员编制,只要明确模块之间的 接口关系,模块内部细节的具体实现可以由程序员自己随 意设计,而模块之间不受影响. 模块化编程 ?模块化编程的要求 ? 逐层分解问题,易于设计和维护 ? 相互隔离,减少干扰 ?减少重复的代码 ? 本模块内重用 ? 模块间重用 ?实现 ? 子程序 ? 模块 模块化编程 ?Ada Byron (1815-1852) ――The first programmer ? 发明 子程序 (subroutine)的概念 ? 首先认识到循环的重要性:自动计算机 的真正重要之处,在於它可以重复执行 一套给定的程序.其重复次数可以在计 算前确定,也可以依计算结果而临时决 定. ? 写作的第一份 程序设计流程图 被珍视 为 第一件计算机程序. 目录
第一节 主程序与子例程
第二节 函数(function)
第三节 子程序(Subroutine)
第四节 外部例程
第五节 例程参数(Arguments)
第六节 接口块(Interface)
第七节 例程重载
第八节模块(Module)
第一节 主程序与子例程 ?程序的构造单元包括: ? 主程序(Main Program) ? 模块(Module):放置通用的例程,作为模块例程专供其它程序 单元使用 ? 外部例程 program program module module contains contains subroutine subroutine function function contains contains contains contains contains contains 外部子程序 外部子程序 内部子程序 内部子程序 Subroutine Subroutine function function 模块子程序 模块子程序 Subroutine Subroutine function function
第一节 主程序与子例程 ?子例程按返回值可分为 ? 函数(function) ? 只能得到一个返回值(计算结果) 能得到一个返回值(计算结果) ? 内部子程序(subroutine) ? ? 需要得到多个计算结果或需要执行其它操作时使用 需要得到多个计算结果或需要执行其它操作时使用 ?按位置可分为 ? 内部例程 ? 内部函数(function) ? 内部子程序(subroutine) ? 外部例程 ? 外部函数(function) ? 外部子程序(subroutine)
第一节 主程序
第一节 主程序与子例程 ? 一个完整的程序有且只有一个主程序 [PROGRAM 程序名] [USE MODULE 模块名] [声明语句] [执行语句] ... [CALL 外部例程] ... [CONTAINS 内部例程] END [PROGRAM[程序名]]
第一节 主程序与子例程 ? 主程序只有END语句时必须的,其他均是可选的;
? 若含有内部例程,则必须有CONTAINS关键字;
? 可以有多个内部例程,但内部例程不能再含有自己的内部 例程,即不允许内部例程的嵌套;
? 主程序的END语句若出现程序名,其前面的PROGRAM 关键字不能少;
? 主程序不能在任何位置被引用.
第一节 主程序与子例程 PROGRAM Sphere IMPLICIT NONE REAL R, A, V REAL, PARAMETER PI = 3.1415926 PRINT*,'
本程序用来计算球体的表面积和体积'
PRINT*,'
请输入球体的半径...'
READ*,R PRINT*, '
THE RADIUS OF SPHERE IS:'