第6章 子程序结构---段内定义和使用


第6章
子程序结构
【例6-1】 调用程序和子程序在同一代码段中。
Code segment … CALL SUBR1 … PROC RET …. NEAR ;子程序(NEAR可省略) SUBR1 ;主程序
SUBR1
Code ends
ENDP
第6章
子程序结构
由于调用程序MAIN和子程序SUBR1在同一代码段
转移到子程序,这个过程称为转子。子程序执行完了,
要把控制再返回到主程序,这个过程称为返主。主程 序与子程序之间的关系如图6.1所示。
第6章
子程序结构
主程序 1 调用子程序 2 3 调用子程序 1 调用子程序 2 3 返回 子程序
图6.1 主程序与子程序之间的关系
第6章
子程序结构
子程序具有如下4个特性: (1) 重复性。 一个子程序只占用一段存储区域,但可以多次被 调用,避免了编程人员的重复劳动,又节省程序的存 储空间。由于增加了调用、返回等指令,因此程序执
第6章
子程序结构
程序如下:
DECIHEX SEGMENT ASSUME CS: DECIHEX
MAIN
REPEAT:
PROC FAR
CALL DECIBIN CALL CRLF ;调用键入子程序 ;调用回车换行子程序
CALL BINIHEX
CALL CRLF JMP
;调用转换子程序
;调用回车换行子程序
第6章
子程序结构
第6章 子程序结构
6.1 子程序的概念 6.2 子程序结构定义与调用 6.3 子程序的参数传送 6.4 子程序的嵌套与递归 习题6
第6章
子程序结构
6.1 子程序的概念
6.1.1 子程序概念 把可以多次调用、能够完成特定操作功能的程序 段/指令集编写成独立的程序模块,该程序模块称为子 程序,又称为过程。调用这些子程序的程序称为主程 序。在主程序中,如果调用到子程序,就需要把控制
NUM数组前,先把NUM数组及N的内容全部传送到
ARY数组和COUNT单元去,PROADD运行完后,再把 SUM的结果送到TOTAL去。这显然不是一种好办法。 为解决这一类问题,下面分别介绍“通过地址表传送 参数地址”和“通过堆栈传送参数或参数地址”两种 参数传送的方法。
第6章
子程序结构
6.3.3 通过地址表传送参数地址
PROC NEAR AX CX SI SI,ARY CX,COUNT AX,AX
第6章
子程序结构
NEXT:ADD AX,[SI]
ADD SI,2 LOOP NEXT
MOVSUM,AX POP SI
POP CX
POP AX RET PROADD CODE ENDS ENDP
END
START
第6章
子程序结构
ret
endp
第6章
子程序结构
其中,子程序名为标识符,它又是子程序入口的符号地址。 它的写法与标号的写法相同。属性(Attribute)是指子程序的类型属
性,可以是NEAR或FAR。
如果所定义的子程序是NEAR属性的,那么对它的调用和返 回也一定是NEAR属性的。这样,用户只需在定义子程序时考虑 它的属性,而CALL和RET的属性可以由汇编程序来确定。子程序 属性的确定原则很简单,即: ① 如调用程序和子程序在同一个代码段中,则使用NEAR属性; ② 如调用程序和子程序不在同一个代码段中,则使用FAR属 性。
这种方法是在主程序中建立一个地址表,把要传 送给子程序的参数都存放在地址表中,然后把地址表 的首地址通过寄存器BX传送到子程序中去。子程序通 过地址表取得所需参数,并把结果存入指定的存储单 元中去。这样做的结果,对于上述程序中要累加NUM 数组的内容时,只需在程序中增加下述指令,再调用 PROADD,就能在TOTAL中得到NUM的累加和。
子程序结构
CMP
JG EXIT CBW
AL,9
;数大于9?
;是,退出 ;否,调整成16位
XCHG AX,BX MOV CX,10
MUL
CX
;乘10
XCHG AX,BX ADD JMP BX,AX NEWCHAR ;取下一个字符
第6章
子程序结构
EXIT: DECIBIN
RET ENDP
BINIHEX
子程序的类型与call指令执行、返回!
第6章
子程序结构
6.2.3 现场保护与现场恢复 主程序和子程序通常是分别编制的,所以它们所 使用的寄存器往往会发生冲突。如果主程序在调用子 程序之前的某个寄存器内容在从子程序返回后还有用, 而子程序又恰好使用了同一个寄存器,这就破坏了该
寄存器的原有内容,因而造成程序运行错误,这是不
AH,2
21H DL,0AH ;执行换行
MOV
INT RET
AH,2
21H
CRLF
DECIHEX
ENDP
ENDS END MAIN
第6章
子程序结构
6.3.2 直接参数传递 若子程序和调用程序在同一源文件(同一程序模块)中, 则子程序可直接访问模块中的变量,进行参数传递。 【例6-5】 主程序MAIN和子程序PROADD在同一源 文件中,要求用子程序PROADD累加数组中的所有元素,
间传送参数的话,则这种寄存器就不一定需要保护,特
别是用来向主程序回送结果的寄存器,就更不应该因保 存和恢复寄存器而破坏了应该向主程序传送的信息。
第6章
子程序结构
6.3 子程序的参数传送
主程序在调用子程序时,经常需要传送一些参数 给子程序,子程序运行完后也经常要回送一些信息给 主程序。这种调用程序和被调用程序之间的信息传送 称为主—子程序参数传送(或称变量传送和过程通信)。 以下介绍参数传送的常用方式。
SEGY
SEGMENT CALL SUBT
SEGY
ENDS
第6章
子程序结构
6.2.2 子程序的调用和返回 子程序的调用: call 子程序名
子程序的返回: 在子程序中最后一条指令使用 ret 子程序的正确执行是由子程序的正确调用和正确 返回保证的。80x86的CALL和RET指令完成的就是调
用和返回的功能。
PUSH
PUSH PUSH PUSH <子程序体>
AX
BX CX DX
;现场保护
第6章
子程序结构
POPDX POPCX POPBX POPAX RET SUBT ENDP
;现场恢复
第6章
子程序结构
在子程序设计时,应仔细考虑哪些寄存器必须保护,
哪些不必保护。一般说来,子程序中用到的寄存器是应 该保护的。但是,如果使用寄存器在主程序和子程序之
中,所以SUBR1定义为NEAR属性。这样,MAIN中对 SUBR1的调用和SUBR1中的RET就都是NEAR属性的。
第6章
子程序结构
【例6-2】 调用程序和子程序不在同一个代码段内。 SEGX SUBT SEGMENT (详见段间调用) PROC FAR
……………
RET SUBT SEGX ENDS ENDP
允许的。为避免这种错误的发生,在一进入子程序后, 就应该把子程序所需要使用的寄存器内容保存在堆栈
中,此过程称作现场保护。在退出子程序前把寄存器
内容恢复原状,此过程称作现场恢复。现场保护与现 场恢复分别使用压栈和弹出指令实现。
第6章
子程序结构
【例6-3】 保护现场与恢复现场示例。 SUBT PROC
把BX寄存器中的数用十六进制形式显示出来。也就是
说,BX寄存器用来在子程序间传递要转换的数。
第6章
子程序结构
开始 从键盘取得十进制 数,保存在BX中 显示回车和换行 用十进制形式显 示BX中的数
调用DECIBIN
调用CRLF
调用BINIHEX
调用CRLF
结束
பைடு நூலகம்
图6.2 十进制数到十六进制数转换的程序结构
第6章
子程序结构
(3) 可浮动性。 所谓可浮动性,就是说子程序可以存放在存储区
的任何地址处。假如子程序只能存放在固定的地址处,
则在编写主程序时要特别注意存储单元的分配,不要 使主程序占用了子程序的存储单元而破坏掉子程序,
这样就会给编程人员带来很大麻烦,而且在装配主程
序和子程序时往往造成存储空间的冲突或浪费。
第6章
子程序结构
MOV TABLE,OFFSET NUM
MOV TABLE+2,OFFSET N MOV TABLE+4,OFFSET TOTAL MOV BX,OFFSET TABLE CALL PROADD
第6章
子程序结构
6.1.2 子程序分类
按子程序的定义和调用分为:
一、子程序段内调用
二、子程序段间调用
第6章
子程序结构
6.2 子程序段内调用结构定义与操作
6.2.1子程序定义
该伪操作用在子程序的前后,使整个子程序形成清
晰的、具有特定功能的代码块。其格式为:
子程序名
子程序名
… …
proc …….
ATTRIBUTE(NEAR、FAR)
ASSUME CS:CODE,DS:DATA
第6章
子程序结构
START: SUB PUSH MOV MOV CALL RET
PUSH DS AX,AX AX AX,DATA DS,AX NEAR PTR PROADD
MAIN ENDP
第6章
子程序结构
PROADD PUSH PUSH PUSH LEA MOV XOR
REPEAT
;继续,键入Ctrl+Break返回DOS
第6章
子程序结构
RET
MAIN DECIBIN ENDP PROC NEAR
合集下载

第6章FANUC系统数控铣床编程与加工

第6章FANUC系统数控铣床编程与加工

b)子程序轨迹图
6
2、同平面内多个相同轮廓形状工件的加工
在数控编程时,只编写其中一个轮廓形状加工程序,然后用主程序来进行调用。 例2 加工如图6-3外形轮廓的零件,三角形凸台高为5mm,试编写该外形轮廓的数控铣 精加工程序。
a)实例平面图
b)子程序轨迹图
7
3、实现程序的优化 数控铣床/加工中心的程序往往包含有许多独立的工序,编程时,把每一个 独立的工序编成一个子程序,主程序只有换刀和调用子程序的命令,从而实现优化 程序的目的。 4、综合举例 加工如图6-4所示轮廓,以知刀具起始位置为(0,0,100),切深为10mm, 试编制程序。
5
6.1.6子程序的应用 1、实现零件的分层切削 当零件在某个方向上的总切削深度比较大时,可通过调用该子程序采用分层切削 的方式来编写该轮廓的加工程序。 例1 立式加工中心上加工如图6-2a所示凸台外形轮廓,Z向采用分层切削的 方式进行,每次Z向背吃刀量为5.0mm,试编写其数控铣加工程序。
a) 实例平面图
16
(2)格式二 G51 X Y Z P ; 例 G51 X10.0 Y20.0 P1500; X Y Z 该参数与格式一中的I、J、K参数作用相同,不过是由于系统不同, 书写格式不同罢了。 (3)格式三 G51 X Y Z I J K ; 例 G51 X10.0 Y20.0 Z0 I1.5 J2.0 K1.0; X Y Z 用于指定比例缩放的中心; I J K 用于指定不同坐标方向上的缩放比例,该值用带小数点的数值指定。 I、 J、K可以指定不相等的参数,表示该指令允许沿不同的坐标方向进行不等比 例缩放。 上例表示在以坐标点(0,0,0)为中心进行比例缩放,在X轴方向的缩放倍数为 1.5倍,在Y轴方向上的缩放倍数为2倍,在Z轴方向则保持原比例不变。 取消缩放格式:G50;

《IBM PC 80X86汇编语言程序设计》PPT电子课件教案-第六章 子程序设计

《IBM PC 80X86汇编语言程序设计》PPT电子课件教案-第六章 子程序设计

《IBM PC 80X86汇编语言程序设计》
冶金工业出版社
第6章
1、子程序的概念和特点
子程序:把在程序中多次出现,具有独立功能 的程序段写成程序模块,该模块可被多次调用, 称之为子程序。
特点:①可重复使用(调用) ②具有通用性(可通过入口参数实现) ③可浮动性(存放位置灵活) ④可递归性和可重入性
第6章
第六章 子程序设计
一、子程序的定义 二、子程序的结构形式
三、子程序的设计和调用 四、子程序的参数传递方法 五、子程序的嵌套和递归调用 六、子程序的设计举例 七、多模块程序设计 八、汇编语言和高级语言的混合编程
《IBM PC 80X86汇编语言程序设计》
冶金工业出版社
第6章
一、子程序的定义
1、子程序的概念和特点 2、子程序的定义 3、子程序的调用和返回
《IBM PC 80X86汇编语言程序设计》
冶金工业出版社
第6章
2、子程序的定义
子程序的定义是由过程定义伪指令PROC和ENDP 来完成的。其格式如下:
过程名 PROC [NEAR/FAR]
┆
过程名 ENDP
其中PROC表示过程定义开始,ENDP表示过程定 义结束。过程名是过程入口地址的符号表示。
一般过程名同标号一样,具有三种属性,即段 属性、偏移地址属性以及类型属性。
《IBM PC 80X86汇编语言程序设计》
冶金工业出版社
第6章
3、子程序的调用和返回
❖ 调用
①段内直接调用
格式:CALL 子程序名
功能:将子程序返回地址(断点)入栈
SP←SP-2
(SP)←IP,
并转到子程序入口地址去执行子程序。
❖ 返回指令

《单片微型计算机与接口技术》思考题与习题解答01

《单片微型计算机与接口技术》思考题与习题解答01

《单片微型计算机与接口技术》思考题与习题解答第0章基础知识0.1 将下列十进制数转换为十六进制数:64,98,80,100,125,255。

0.1 40H,62H,50H,64H,7DH,FFH0.2 将下列十六进制无符号数转换为十进制数:32CH,68H,I)5H,100H,B78H,3ADH。

O.2 812,104,213,256,2936,9410.3 写出下列十进制数的原码和补码,用8位或16位数填人表1中(要求用十六进制数表示)。

表10.3,9350H,CF42H。

O.4 机器数的真值分别为:27,233,-128,-8,14717,31467,-27824,-124780.5 用补码运算完成下列算式,并指出溢出OV和进位CY:(1) 33H+5AH (2) -29H-5DH (3) 65H-3EH (4) 4CH-68HO.5 (1) 33H+5AH=8DH,OV=1,CY=O (2) -29H-5DH=7AH,OV=0,CY=1(3) 65H-3EH=27H,OV=0,CY=1 (4) 4CH-68H=E4H,0V=O,CY=O0.6 将表2中的十进制数按要求转换,用十六进制数填入。

表2O.60.7 写出下列ASCII码表示的十六进制数(如313035H为105H):374341H,32303030H,3841353DH。

0.7 ASCIl码表示的十六进制数分别为:105H,7CAH,200¨。

H,8A50H第1章 MCS-51单片机1.1 什么是嵌入式系统?其控制核心有哪几种类型?1.1 见绪论1.2 单片微型计算机与微处理器在结构上和使用中有什么差异?单片机和DSP在使用上有什么差别?1.2 单片微型计算机是包含CPU、存储器和I/O接口的大规模集成芯片,即它本身包含了除外部设备以外构成微机系统的各个部分,只需接外设即可构成独立的微机应用系统。

微机处理器仅为CPU,CPU是构不成独立的微机系统的。

子程序的调用

子程序的调用

mov ax,data mov ds,ax call nearp lea ax,nearp call ax call nproc lea bx,nproc call word ptr [bx]
call farp call fproc lea bx,fproc
Nearp proc near
…… ret Nearp endp Code1 ends end main code2 segment
3)在调用时,NEAR 和FAR 可以强制改变 CALL FAR PTR NEARPROC CALL NEAR PTR FARPROC
子过程的调用与返回指令
子过程的调用是个”有去有回”的过程,子程序执行
完后必须返回CALL指令的下一条指令处,因此必须对
CALL指令的下条指令的地址进行保存.保存地址的操作 是通过堆栈来完成.不是采用PUSH \POP指令来实现,而
通过存储器来传递参数
当调用程序和子程序处于同一文件中,可以直接访问 块内的变量或数据。 举例3:编写程序从键盘上输入一个字符串,存于变量为INPUT中, 要求以回车键作为输入过程的结束,字符结尾部分添加0。 (1) 分析: 子程序getstring直接从键盘输入字符串,入口参数:无。出 口参数:字符串变量INPUT 变量INPUT 属于通过存储器传递参数,调用程序和子程序处 于同一文件在数据段定义变量属于局部变量
Findmax proc
mov ax,[si] Lp1: cmp ax,[si+2] jg next xchg ax,[si+2] next: add si,2 loop lp1 ret findmax endp Code ends
end main
参数的传递

子程序设计子程序又称过程过程的定义和调用过程的定义...

子程序设计子程序又称过程过程的定义和调用过程的定义...

DW ?
DW ?
ENDS
ASSUME CS:CODE
PROC
FAR,
PUSH
BP
MOV
BP,SP
PUSH
BX
PUSH
AX
MOV
BX,[BP].RESULT_ADDR
MOV
AX,[BP].N
CMP
AX,0
JE
DONE
PUSH
BX
DEC
AX
PUSH
AX
CALL
FAR PTR FACT
MOV
BX,[BP].RESULT_ADDR
入口参数:存放4位十六进制ASCII码的内存首地址送入DS:SI,ASCII码的位数4存 放在CL中。
出口参数:转换结果(等值二进制数)存放在DX中。
CSEG ASSUME ASC_BIN
AGAIN:
A_TO_F: ROTATE:
ASC_BIN CSEG
SEGMENT
CS:CSEG
PROC FAR
PUSH BX
CALL NEAR PTR
CSEG
ENDS
ARY1 ;参数地址压入堆栈。 COUNT1 SUM1 PROADD NUM ;参数地址压入堆栈。 N TOTAL PROADD
过程的嵌套、递归调用和可重入性
例:实现N!(N≥0):
N!=N×(N-1)×(N-2)×…×1
N!=N×(N-1)!
主程序如下: DSEG ARY1 COUNT1 SUM1 NUM N TOTAL TABLE DSEG STACK
STACK CSEG
CSEG
SEGMENT
DW
100 DUP (?)
DW ?

软件工程导论第6章

软件工程导论第6章

70年代初N.Wirth在Pascal语言中设置支持“顺序 结构”、“IF-THEN-ELSE选择结构”、“DO-WHILE 重复结构”或“DO-UNTIL重复结构”三种基本控制 结构语句。
25
3种基本控制结构
(1) 顺序型
A B
(2) 选择型
F P A B T
(2) 多情况选择型(case)
T T
P=1 F P=2 F P=n F
…
A1 A2
T
An
(3) 先判定型循环
后判定型循环
(do-while)
F
(do-until)
P T S
S P F
T
例1、某模块有两个输入a和b,一 个输出c,当满足条件(a>0)and(b<2) 时,c=a+b,否则c=a-b。画出该模 块的程序流程图。
a b
第6章 详细设计
6.1 结构程序设计 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量 6.6 小结 习题
1
详细设计阶段的根本目标:确定应该怎样具体地 实现所要求的系统。 为软件结构图中的每一个模块确定使用的算法和 块内数据结构,并用某种选定的表达工具给出清晰 的描述。
100 110
120
130 140
Eq:等于 ne:不等于 gt:大于 lt:小于 ge:大于等于 le:小于等于
例:打印A、B、C三数中最小者的程序 if (A.LT.B .AND. A.LT.C)then write(6,*) A else if (A.GE.B .AND. B.LT.C) then write(6,*) B else write(6,*) C endif endif

VFP 第6章


目录
上一张
结束
3.WAIT命令 . 命令 WAIT [ <字符表达式>] [TO <内存变量>]
功能:该命令显示字符表达式之值作为提示信息,暂停程序的执行 ,直到用户按任意键或单击鼠标时继续程序的执行。 说明:
如果 <字符表达式>值为空串,那么不会显示任何提示信息。如果没 有指定 <字符表达式>,则显示默认的提示信息:“按任何键继续...”。 <内存变量>用来保存用户键人的字符,其类型为字符型。
INPUT “请输入货物重量:” TO w IF w<=50 f=w*0.1 ELSE f=50*01+(w-50)*0.2 ENDIF ? “托运费为:”,f 目录 上一张 结束
&&货物重量超过50公斤时的计算公式 &&货物重量没有超过50公斤时的计算公式
用单分支选择编写YH2.prg程序如下:
VFP的结构化程序设计 第6章 VFP的结构化程序设计
6.1 程序与程序文件 6.2 程序的基本结构 6.3 模块化程序设计 本章要点
目录
上一张
结束
前面各章都是以交互方式,即在命令窗口中逐条输入命 令或通过选择菜单来执行Visual FoxPro命令的。除此之外, 常常采用程序的方式来完成更为复杂的任务。 VFP程序设计包括结构化程序设计和面向对象程序设计。 前者是传统的程序设计方法;后者面向对象,用户界面可利 用VFP提供的辅助工具来设计,应用程序可自动生成,但是 仍需用户编写一些过程代码。就此而言,结构化程序设计仍 是面向对象程序设计的基础。
,若无上级程序则返回命令窗口。 ④ QUIT:退出Visual FoxPro系统,返回到操作系统。

第6章 计算机存储程序和数据的方式


主存的主要性能指标
° 性能指标:
• 按字节连续编址,每个存储单元为1个字节(8个二进位)
• 存储容量:所包含的存储单元的总数(单位:MB或GB)
• 存取时间TA:从CPU送出内存单元的地址码开始,到主存读出 数据并送到CPU(或者是把CPU数据写入主存)所需要的时间 (单位:ns,1 ns = 10-9 s),分读取时间和写入时间
一般SRAM为字片式芯片,只在字线上译码,同时读出字线上所有位!
… …
位片式存储体阵列组织
0,00
……
00,,33
0 A1
X
地
X0
4×4
址 0译
矩
阵 3,0
…
3,3
A0
码 X3
器
Y0 Y 地址译码器 Y3
A3 0
A2 0
位片式在字方向和位方向扩充,需要有片选信号
DRAM芯片都是位片式
基本特征
将部分译 码功能移 到存储矩 阵内部
按工作状态与存储原理的不同分为
静态RAM 动态RAM
计算机系统平台
24
5.2.2 随机存取存储器RAM
1.静态RAM
1)SRAM基本单元电路 由六个MOS管组成的触发器构成
计算机系统平台
25
行地址选择线X
D数 据 位 线
T1,T3:MOS反相器
T5
T2,T4:MOS反相器
Vcc
T3 T4
从用户的角度来看,决定存储器的三个基本 参数
—— 容量、速度和价格
三个参数之间的关系:
存储器速度越快,每位价格就越高
存储器容量越大,速度就越慢,价格就越低 组成存储系统的关键:把速度、容量和价格不同的 多个物理存储器组织成一个存储系统,这个存储系统 要求速度最快、存储容量最大、单位容量的价格最便 宜。

《汇编语言》作业答案

3545233.doc 制作:江家宝《IBM—PC汇编语言程序设计》课后作业参考答案目录第一章:基础知识 ........................................................................................ 2第二章:80×86计算机组织......................................................................... 2第三章:80×86的指令系统和寻址方式..................................................... 3第四章:汇编语言程序格式........................................................................ 7第五章:循环与分支程序设计.................................................................... 9第六章:子程序结构 ................................................................................ 12第七章:高级汇编语言技术.................................................................... 20第八章:输入输出程序设计.................................................................... 22第九章:BIOS和DOS中断 (23)3545233.doc 制作:江家宝第一章:基础知识1.1、用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(3) 4095 答:(3) 4095 =1111 1111 1111B=FFFH1.2、将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 答:(1) 10 1101B=2DH=451.3、将下列十六进制数转换为二进制数和十进制数:(4) 1234 答:(4) 1234H=1 0010 0011 0100B=46601.4、完成下列十六进制数的运算,并转换为十进制数进行校核:(3) ABCD-FE 答:(3) ABCD-FEH=AACFH=437271.5、下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。

FORTRAN90第6章1


子程序分类
Fortran90程序中的过程有两种: Fortran90程序中的过程有两种:函数子 程序中的过程有两种 程序过程和子例子程序过程。 程序过程和子例子程序过程。这两者的 形式、功能与调用方法都有所不同, 形式、功能与调用方法都有所不同,但 总称为过程或子程序。 总称为过程或子程序。
内在(系统 函数分类 内在 系统)函数分类 系统
a = (L + L2 + L3) / 2 1 s = a(a L )(a L2 )(a L3) 1 S = ∑s
–
图 计算多边形面积
以上问题要经过三次完全相同的运算,但参加运算的 、 、 以上问题要经过三次完全相同的运算,但参加运算的L1、L2、L3 量值不同。我们可以编写一段程序实现这一功能, 量值不同。我们可以编写一段程序实现这一功能,并为该程序段 命名。在计算每个三角形面积时调用该程序, 命名。在计算每个三角形面积时调用该程序,并代入不同的参数 完成运算,从而简化设计,便于结构化的程序设计。 完成运算,从而简化设计,便于结构化的程序设计。
子程序 子程序是具有特定功能的程序段 子程序是具有特定功能的程序段 功能 子程序不能独立执行, 子程序不能独立执行,只能被主程序单元或 被其它子程序单元调用,甚至可以递归调用 被其它子程序单元调用, 调用 调用本身) (调用本身)
含有子程序的结构
主程序: 主程序: 单位定义 说明部分 输入 调用子程序 输出 END 子程序: 子程序: 计算或处理
求X的绝对值 的绝对值
Function f(x) result(r) real::x,r if (x>0)then r=x else r=-x endif end Program main real::I,f read *,i Print *,f(i) end
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档