文档详情

PLI程式说明(中文).doc

鲁**
实名认证
店铺
DOC
159KB
约13页
文档ID:537252482
PLI程式说明(中文).doc_第1页
1/13

一、PL/1的字符集及书写1、PL/1的字符集PL/1的字符集一般分为48个字符与60个字符两种,目前采用60个字符的字符集1.1 29个字母字符A,B,…….,Z,$,@,#1.2 10个数字0,1,2,3,4,5,6,7,8,91.3 21个专用字符(如下所示)♀空格   % 百分号= 等号   ; 分号 + 加号   : 冒号 - 减号   < 小于 *星号(乘号)> 大于 / 斜线(除号)| 或 ( 左括号 & 与 ) 右括号 ┒非 , 逗号 _ 短划号. 小数点 ? 问号 ’引号2、L/I源程序的书写2.1源程序从第2列开始写至第72列为止2.2每个语句(Statement)以“;”结束2.3注释(Comment)以“/*”开始,以“*/”结束,其间可出现任何字符2.4第1列上的字符用作打印时的控制字符1:换新页♀:换一行0:换二行(空一行,现换一行)-:换三行(空二行,再换一行)二、数据和表达式(DATA and Expression)数据类型分两类:n 运算型数据A、 算术数据a:定点十进数(Fixed decimal data)b: 定点二进数(Fixed binary data)B、 数值字符数据(numeric character data)C、 字符串数据(String data)n 控制型数据A、 文件数据(file data)B、 标号数据(label data)C、 入口数据(entry data)D、 定位数据(locator data)1、运算型数据 1.1算术数据有下列4个特性进位制(Base): 十进位、二进位;记数法(scale): 定点、浮点精确度(precision):(P:表示有效数位;q:表示有效小数位)型(mode): 实型、复型等。

1.1.1定点十进数例:定点十进数3.14167320030.0012-528精确度(5.4)(3.0)(3.0)(4.4)(4.0)存储形式(十六进制)31,41,6073,2000,300,01,20528,0 注: 对定点十进数(p,q)² 占用存贮的字符数==[p/2]+1² P最大值是15,占8个字符² (p,q)未指明时,系统约定为(5,0)1.1.2定点二进数例: 定点二进数 0001 0110 11111111十六进制表示 16 F F十进制表示 22 - 1注: ² 最大有效数位31,占4字符² 未指明时系统约定值为FIXED BIN(15), 占2字符.² 位数低于15位的也占2字符² 位数高于15位的,则占4字符² 变量名以I,J,K,L,M,N开始,若未指明时,约定为FIXED BIN(15);以其它 字母开始约定为FIXED DEC(6)1.2 数值字符数据它是介于算术数据与字符串数据间的数据数123732.1098.7书写PIC ‘999’PIC ‘999V.99’PIC ‘99V9’存贮形式F1F2F3F7F3F24BF1F0F9F8F7其中: V表明在数据域中该位置出现一个隐含的十进位或二进位小数点.若V后面还有“.”,表明相应数据域位置包含一个小数点注: u 数值字符数据主要是构成定点十进数,定点二进数可打印的形式;u 在PIC后面引号('')中的数字字符个数最多15个;u 数值字符数据可进行算术运算,但须经转换;u 如果一个数字字符定义为PIC ‘ZZZV.’,则不管此字符是否有值,都显示为“ .”。

1.2.1定点十进数(FD)、定点二进数(FB)和PIC间的转换例: DCL A PIC‘99’DCL B PIC‘99’DCL C PIC‘99’C==A+B则为欲求得C,须经:A FIXED DEC,B FIXED DECA_FD + B_FDFIXED DEC PIC 赋予C在算术运算时,必须转为FIXED DEC 才能进行转换表R CFBFDPICFB——C FBC FD FD FBFDR FB——C FDPICR FD FD FBR FDC FD R FD注:一般金额采用 FIXED DEC 整数采用 FIXED BIN PIC用于 输入/输出 它是字符与算术数据间的桥梁1.3 串数据(String data)1.3.1 字符串数据(Character String data)值 PL/1写法 存贮形式‘ABC’ CHAR(6) C1,C2,C3,40,40,40‘A102’ CHAR(4) C1,F1,F0,F2‘A’ CHAR(4) C1,40,40,40² 字符串数据通常在程序内赋值时用.例: X==‘THIS REPORT IS ’² 赋值时,字符串数据括于单引号内² 赋值时,在字符串右边不足部分,系统自动以“空白 ”符补足例: DCL X CHAR(5) … … X =‘A’; X值会是 A后跟随4个空格² 字符串内出现单引号时,必须以两个单引号(称为Null String)表示,否则会引起 混淆。

例: 设赋值给X,其值为:JOHN’S CAP 则必须写为 X==‘JOHN’’S CAP’(注:若写为X==‘JOHN’S CAP’,则S CAP’被略)² 重复的字符串数据可用重复因子表示例: X==(N)’BCC ‘表示X有值为 BCC ,BCC ,…….(N个)1) 重复因子必须放在括号内;2) 重复因子只对紧接的一个字符生效例: PIC’(4)AB’ 乃表示PIC’AAAAB’² CHARACTER PICTURE SPECIFICATIONPIC’9’表示数字0~9PIC’A’表示字母A~zPIC’X’表示任何字符1.3.2 (二进)位串数据(BIT String data)值 PL/I写法 存贮形式‘1’B BIT(1) 占1字符‘1111’B BIT(4) 占1字符(64)’0’B BIT(64) 占8字符² 位串数据赋给变量是从左到右进行,若串数据长度,超过变量说明的长度,则以变量 长度为准,截去串数据右端的位;若串数据长度短于变量说明的长度,也以变量长度为准,右边自动以0补足.² 位串数据通常用于检查 真/假 条件真 TRUE_______’1’B假 FALSE_______’0’B例: DCL EOF BIT(1) --------__在检查“真”时可写:IF EOF=‘1’B 或 IF EOF —在检查“假”时可写:IF EOF=‘0’B 或 IF ﹁EOF2、控制型数据2.1文件数据(File data):它表示PL/I文件的信息l 它是PL/1的输入/输出文件名字l 即JCL的输入/输出DD名字,File name和DDname互相对应例: DCL INFILE INPUT RECCRD FILE DCL OUTFILE OUTPUT STREAM FILE2.2标号数据(label data)l 作为语句标号引用例: LOOP:------- ------- ------- GO TO LOOP;l 作为语句标号变量例: DCL CIRCLE LABEL LOOP1:--------- -------- ---------LOOP2:-------- -------- --------CIRCLE==LOOP1;… …GO TO CIRCLE; --------> 等价于 GO TO LOOP1… …2.3 入口数据(ENTRY Data)——用作过程(Procedure)的入口点(entry point)例:A:PROC OPTIONS(MAIN) … …B:PROC;A,B即为入口点,称为入口数据,可由CALL语句来调用 CALL B;——用作入口变量(entry variable)例:DCL A ENTRY VARIABLE;DCL(A1,A2)ENTRY;IF X THEN A=A1;ELSE A=A2;CALL A;等价于:IF X THEN CALL A1; ELSE CALL A2; 2.4 定位数据(Locator data)根据POINTER变量所取的值作为指定的地址例: DCL P POINTERDCL A CHAR(8)DCL X CHAR(8)l 基于POINTERDCL B FIXED DEC(15) BASED(P);P=ADDR(A)此时B不占空间,根据P描述,也即为B 描述为FIXED DEC(15)若P=ADDR(X) 则B又随P描述X了,于是B是活动的,随P变化.l 基于ADDRessDCL B FIXED DEC(7) BASED (ADDR(A))此时,B 是固定的,它由A的地址唯一确定001500 DCL CIC1 FIXED BIN(15); 001600 DCL CIC2 FIXED BIN(15); 001700 DCL CIC3 FIXED BIN(15); 。

下载提示
相似文档
正为您匹配相似的精品文档