PL1基础入门教程(3)

2019-07-13 18:59

001900 DCL CI1PTR POINTER;

002000 DCL CI1PTRF FIXED BIN(31) BASED(ADDR(CI1PTR));

002100 DCL CI2PTR POINTER;

002200 DCL CI2PTRF FIXED BIN(31) BASED(ADDR(CI2PTR));

002300 DCL UTSCIFC CHAR(4089) VAR;

002400 DCL 1 CIF1 BASED(ADDR(UTSCIFC)),

002500 2 CITOTL FIXED BIN(15), /* TOTAL RECORD LENGTH */

002600 2 UTSCIFC_BEG_DMY

002800 2 CIIDQTY FIXED BIN(15), /* ID QUANTITY */

009800 2 CIMTCAC FIXED DEC(15), RELATIVE MTC SAVING AC NO.*/

009810 2 CIHKDAC FIXED DEC(15), /* RELATIVE HKD SAVING AC NO.*/

009820 2 CIFCYAC FIXED DEC(15), /* RELATIVE FCY SAVING AC NO.*/

009830 2 CIPBCINT CHAR(1), /* PBC INT INDICATOR */

009900 2 CIPCLASS FIXED DEC(1), /* PRIVILEGE CLASS */

009910 2 CINAT CHAR(9), /* NATIONNALITY */

009920 2 CICDTDAT(10) CHAR(6), /* TAX RATE FOR BRANCH */

010000 2 CIHKDPVC FIXED DEC(15,2),/* STAFF HKD PRIV.CERT TOT P */

010100 2 CIHKDP FIXED DEC(15,2),/* HKD CERT TOTAL PRINCIPAL */

010200 2 CIUSDP FIXED DEC(15,2),/* USD CERT TOTAL PRINCIPAL */

011300 2 CIIDNO(CIC1 REFER(CIIDQTY))

011410 CHAR(19), /* ID NUMBER */

011500 2 CIIDNO_END_DMY CHAR(0),

011600 2 CISIGNO(CIC2 REFER(CISIGQTY))

011700 CHAR(8), /* SIGNATURE NO */

011800 2 CISIGNO_END_DMY

011900 CHAR(0),

012000 2 CINAME CHAR(CIC3 REFER(CINAMEL)),

012100 /* CUSTOMER NAME */

012200 2 CINAME_END_DMY CHAR(0),

012300 2 CITRAILER CHAR(1); /* OFF SET */

012400 DCL 1 CIF12 BASED(CI1PTR),

012500 2 CIADDUM CHAR(1), /* ADDRESS */

012620 2 CIADDR(3) CHAR(32); /* ADDRESS 040717 ADD */

012700 DCL 1 CIF13 BASED(CI2PTR),

012800 2 CIACCTQ FIXED BIN(15), /* RELATED ACCOUNT QUANTITY */

012900 2 CIACCT(CIC4 REFER(CIACCTQ))

013000 FIXED DEC(15); /* ACCOUNT NUMBER */

013080 /* ’ ’ GET TAX RATE FROM CIN */

****** **************************** Bottom of Data ***************************

有关指针CI1PTR和指针CI2PTR的使用如下:

CI1PTR = ADDR(CITRAILER);

CI2PTRF = CI1PTRF + 97;

3、数据组织(data cyganigation) 3.1数组(array)

l 一组同属性(attribute)的数据元素

l 一个数组只有一个名字

l 数组内的各项由其在数组内的相应位置表明

一维数组

例: DCL A(8) FIXED DEC(3);

表示数组A有8个元素,每个都是FIXED的三位数字,分别称A(1),A(2),A(3),……,A(8).

二维数组

例: DCL B(4,2) FIXED DEC(3);

PL/I中元素排序以“行”为主

B(1,1),B(1,2),B(2,1),B(2,2),

B(3,1),B(3,2),B(4,1),B(4,2)

界(bound) 下界 上界

数组A 1 8

数组B 1 4

数组B 1 2

范围(extent)

数组A: 8

数组B: 4,2

l 数组维数最大为15维

l 下界不为1时,上、下界必须明确写

一维数组 DCL C(4:11) 下界为4,上界为11,范围是8。

二维数组 DCL D(-4:3,4:11)

第一维下界为-4,上界为3

第二维下界为4, 上界为11

范围是8,8

l A(I)其中A表示数组名称(array name),I表示下标(Subscript)

下标值若非定点二进整数,则一定转为FIXED BINARY(15)

3.2结构(Structure)

l 有逻辑性的数据成分(data element)的组合

l 各数据成分的属性(attribute)可以不同

l 组成形式是层次结构(hierarchy)

例: DCL 1 PAYROLL,

2 NAME,

3 FNAME CHAR,

3 LNAME CHAR,

2 HOURS,

3 REGULAR FIXED DEC,

3 OVERTIME FIXED DEC

2 RATE,

3 REGULAR FIXED DEC,

3 OVERTIME FIXED DEC;

注:PAYROLL是主结构(major structure),NAME、HOURS、RATE是次结构(minor structure),FNAME、LNAME、REGULAR、OVETTIME等是基本名字(elementary name)

l 结构名字必须是单义唯一的,为免混淆采用限定名(qualified name)

如 HOURS.REGULAR

RATE. EGULAR

l 结构数组(array of structure)

结构内是以数组出现如:

一维结构数组:DCL 1 A(8),

2 B CHAR(3),

2 C FIXED DEC(4);

二维结构数组:DCL 1 A(6,6),

2 B (4),

3 C FIXED BIN(4)

3 D FIXED BIN(4)

2 E…….

指称元素采用限定名如 A(1,2),B(3),C

3.3其它属性(attribute)

3.3.1 DEFINE

变量数组元素的存储位置可被其它变量(或数组元素)所定义,并可指定位置(position)

例1. DCL A(10,10);

DCL B(10,10) DEF A;

例2. DCL A CHAR(50);

DCL B CHAR(10) DEF A;

DCL C CHAR(15) DEF A POS(11);

DCL D CHAR(25) DEF A POS(26);

3.3.2 LIKE

结构与结构间其结构形式、名字、属性等,可在说明语句(DECLARE)中用LIKE这个属性照抄。

例: DCL 1 A 2 B 2 C 3 D 3 E

当有说明语句:

DCL 1 X LIKE A;

即为:DCL 1 X 2 B 2 C 3 D 3 E

可以有:

2 主结构与主结构间用LIKE属性

2 主结构与次结构间用LIKE属性

2 次结构与主结构间用LIKE属性

2 次结构与次结构间用LIKE属性

3.3.3 INIT 赋初值(可为常数、字符串、表达式等)


PL1基础入门教程(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学生公民素质教育答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: