Colorful Life2010

Tag: COBOL | 记录数: 6
COBOL经典面试题库(65~126)
Weather:小雨,天气很阴

Q65) What is the significance of ‘above the line’ and ‘below the line’?
A65) Before IBM introduced MVS/XA architecture in the 1980’s a program’s virtual storage was limited to 16 megs. Programs compiled with a 24 bit mode can only address 16 Mb of space, as though they were kept under an imaginary storage line. With COBOL II a program compiled with a 31 bit mode can be ‘above the 16 Mb line. (This ‘below the line’, ‘above the line’ imagery confuses most mainframe programmers, who tend to be a literal minded group.)
Q: ’above the line’和‘below the line’有什么意义
A: 在IBM推出MVS/XA体系之前,80年代的程序虚拟存储都限制在16 megs.程序以24位的方式仅在一个16Mb的地址空间中被编译,就好象那些程序被保存在虚存中一样。使用COBOL II编码之后,以31位方式的编码能超过16位的界线。(也就是说COBOL II之前是“在此界线之下”的,COBOL II之后“在这接线之上”,这通常容易使一些主机程序员搞混)...

COBOL经典面试题库(1~64)
Weather:小雨,天气很阴

Q1) Name the divisions in a COBOL program ?.
A1) IDENTIFICATION DIVISION, ENVIRONMENT DIVISION, DATA DIVISION, PROCEDURE DIVISION.
Q:列举COBOL的DEVISION
A:标识部,环境部,数据部,过程部

Q2) What are the different data types available in COBOL?
A2) Alpha-numeric (X), alphabetic (A) and numeric (9).
Q:COBOL有哪些可用的数据类型
A:字符型(这里指的是包含字母和数字),字母型,数字型

COBOL数组操作
Weather:有点凉

下面是数组的例子:
          01 RECORD-X.
            03 MONTH OCCURS 12 TIMES.
              05 NAME PIC X(12).
              05 DAYS OCCURS 31 TIEMS.
                07 COMMENT PIC X(20).
                07 TEMP-HI PIC S999.
                07 TEMP-LO PIC S999.
          77 CURRENT-DAY PIC 99.
          调用表示如下:
          MONTH(5) : 包含NAME 和 DAYS表格的组项目。
          NAME OF MONTH(5) :基本字母数字项目,长度为12个字符。
          NAME(5) (1:3) 上述第5个项目的前3个字符。
          TEMP-HI(1,31) 基本数字项目,长度为3个字符。前一个参数是在MONTH数组中的位置,后一个参数是在DAYS数组中的位置。相当于MONTH[1].DAYS[31].TEMP-HI。
          COMMENT OF RECORD-X(5,CURRENT-DAY)(11) 基本字母数字项目第五个月的CURRENT-DAY的COMMENT字段的最后10个字符。

    03 TEXT PIC XXX OCCURS 1 TO 12 TIMES DEPENDING ON IX.
    定义一个变长的数组。定义的长度是12,实际以IX为准,若IX为10,则TEXT的长度就是30。。。。

COBOL文件操作
Weather:有点凉

要在COBOL中使用文件,要在3个不同的部中放上信息。
    环境部,要有程序使用的每个文件的文件控制项目(FILE-CONTROL)。这个项目将程序中使用的文件名与程序外的实际文件联系起来。这些项目还定义文件的组织和访问方式。
    数据部,要有每个文件的文件描述符(FD)项目,就是数据定义。
    过程部,放上处理语句,OPEN,READ,WRITE,DELETE等。

    环境部中主要是FILE-CONTROL和I-O-CONTROL.I-O-CONTROL很少使用。
    SELECT [OPTIONAL] file-name ASSIGN TO DEV/FILE
    [RESERVE N [AREA/AREAS]]
    [FILE STATUS IS VAR]
    SELECT必须是第一句,其他顺序无关。file-name是程序中传递使用的文件名,相当于实际文件的一个别名。OPTIONAL用于执行可能不存在的文件。
    ASSIGN将file-name连接到实际的外部设备或文件。(TO好像可以省略。)
    RESERVE指定文件缓冲区。
    FILE STATUS指定一个变量存放文件状态,这个变量应该已在WORKING-STORAGE SECTION中定义。。。。

COBOL数据类型
Weather:有点凉

计息是银行的一项重要业务,包括日常代理客户收、付计算客户利息和年度计息等。目前,这些工作大多数是在IBM ES9000主机的SAFE应用系统平台上进行,该系统联机程序和联机计息程序是用IBM 370汇编语言实现的。为方便汇编语言读写,在VSAM文件存储的数据中,数据存放格式进行了特殊的定义。如日期存放采用X(3)型,01年03月15 日,存入EBCD码为X‘010315’。在进行年度计息时,为了实现各种复杂的运算工作,一般采用COBOL语言来实现各种运算。而采用COBOL语言 读取X(3)型数据时,读出的是字符型数据,不能直接进行运算,必须转换为COBOL数据类型的数据后才能进行相应处理。如刚才的X‘010315’,需 要转换为内部十进制数据X‘0010315C’。本文介绍一种用COBOL语言实现字符型X(3)与内部十进制数据相互转换的方法。
由X(3)型转换为内部十进制
由 于日期数据总是大于零,在COBOL语言的工作单元节定义变量DATE-FIRST后,再追加定义COBOL语言的最小数据单元X‘000C’,即十进制 12。由于重定义DATE-CASE为DATE-CHANGE后,DATE-CHANGE是原日期数据的1000倍,于是要在过程部将 DATE-CHANGE除以1000。
首先,在COBOL程序WORKING-STORAGE SECTION. 中定义如下内容。。。