基于IBM大型机的COBOL语言的数据类型
- 格式:pdf
- 大小:99.60 KB
- 文档页数:2
cobol 语法COBOL语法COBOL(Common Business-Oriented Language)是一种面向商业应用的编程语言,特别适用于处理大型数据和事务处理。
本文将介绍COBOL语法的一些关键要点,并展示其在实际应用中的一些特性。
一、程序结构在COBOL中,程序由多个部分组成,包括IDENTIFICATION DIVISION、ENVIRONMENT DIVISION、DATA DIVISION、PROCEDURE DIVISION等。
IDENTIFICATION DIVISION用于声明程序的名称和作者信息,ENVIRONMENT DIVISION用于定义程序的运行环境,DATA DIVISION用于定义数据,PROCEDURE DIVISION用于编写程序逻辑。
二、数据类型COBOL提供了多种数据类型,包括数字、字符、日期等。
数字类型可以是整数或浮点数,字符类型可以是单个字符或字符串。
日期类型可以表示年、月、日或日期和时间。
在使用数据类型时,需要声明变量的名称和类型,并为其分配初始值。
三、变量和常量在COBOL中,变量和常量都需要使用特定的关键字进行声明。
变量用于存储和处理数据,而常量是固定的数值或字符串。
变量和常量的名称必须符合特定的命名规则,并且需要在使用之前进行定义和初始化。
四、条件语句COBOL提供了多种条件语句,用于根据条件执行不同的程序逻辑。
其中最常用的是IF语句,可以根据条件判断是否执行某个程序块。
在条件语句中,可以使用比较运算符(如等于、大于、小于)和逻辑运算符(如AND、OR)进行条件的组合和判断。
五、循环语句COBOL提供了多种循环语句,用于重复执行某个程序块。
最常用的是PERFORM UNTIL和PERFORM VARYING语句。
PERFORM UNTIL语句会在满足条件之前一直执行程序块,而PERFORM VARYING语句会在指定的范围内重复执行程序块,并可以根据循环变量的值进行控制。
COBOL简易教程主要内容1.COBOL语言的基本概念及程序的结构•一个例子●COBOL程序的结构●COBOL源程序的书写格式2.COBOL数据表示•常量•层次的概念•PICTURE语句•数据在内存中的各种形式3.算术运算●变量赋值 (MOVE, MOVE CORR)●算术运算(ADD, SUB, MUL, DIV, COMPUTE等)●内部函数4.字符串处理●合并、分离、取子串、替换等5.程序逻辑控制•条件的分类•IF、EVALUATE●PERFORM6.表处理定义、赋值、引用、查询7.读、写多格式记录文件8.常用语句小结9.子程序1.关于COBOL的初步知识◆COBOL是Common Business Oriented Language (通用商业语言,或称管理语言)的缩写◆最适用于数据处理◆比较接近于自然语言(英语)◆COBOL的结构严谨,层次性强◆COBOL的缺点是比较烦琐。
1.1 一个例子:***************************************************************** * * COBOL TRAINING PROGRAM * * VERSION 2.1.0 COPYRIGHT (C) 2004 * * WISTRON DALIAN SOFTWARE CO., LTD. * * ALL RIGHTS RESERVED. * * * **************************************************************** IDENTIFICATION DIVISION.PROGRAM-ID. EXERCIS6.AUTHOR. QXLU (WISTRON DALIAN).DATE-WRITTEN. 04-06-23.DATE-COMPILED. 04-06-23.*----------------------------------------------------------------* * COMMENT : * * * *----------------------------------------------------------------* ENVIRONMENT DIVISION.CONFIGURATION SECTION.SOURCE-COMPUTER. IBM-3084.OBJECT-COMPUTER. IBM-3084.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT DDI01 ASSIGN TO "DDI01".SELECT DDO01 ASSIGN TO "DDO01".*DATA DIVISION.FILE SECTION.*FD DDI01 LABEL RECORD IS STANDARD DATA RECORD AREIN-AREA0, IN-AREA1.01 IN-AREA0.05 IN-YEAR-NUM PIC 9(2).05 IN-PRINCIPAL PIC 9(4)V99.05 FILLER PIC X(07).05 RMARK PIC X(01) VALUE X"0A".01 IN-AREA1.05 IN-INTEREST-RATE OCCURS 5 TIMES PIC V999.05 RMARK PIC X(01) VALUE X"0A".FD DDO01 BLOCK 0 RECORDS LABEL RECORD STANDARD RECORDING F.01 PRT-REC.05 FILLER PIC X(79).**===============================================================* WORKING-STORAGE SECTION.01 IN-FILE-DATA.05 YEAR-NUM PIC 9(2).05 PRINCIPAL PIC 9(4)V99.05 INTEREST-RATE-TABLE.15 INTEREST-RATE OCCURS 5 TIMES PIC V999.*01 HEADER0 PIC X(79) VALUE' TABLE OF SIMPLE INTEREST'.01 HEADER1 PIC X(79) VALUE' ************************************'.01 HEADER2 PIC X(79) VALUE' PRINCIPAL 4,000.00 FOR 10 PERIODS'.01 HEADER3 PIC X(79) VALUE SPACE.01 HEADER4 PIC X(79) VALUE' PERIOD INTEREST RATE'.01 HEADER5.05 OUT-I-R OCCURS 5 TIMES PIC BBBBBBBBB.999.01 DETAIL0.05 OUT-PERIOD PIC ZZZ.05 OUT-P-I-S-ITEM OCCURS 5 TIMES.10 FOURSPACES PIC X(04) VALUE SPACE.10 OUT-P-I-SUM PIC 9,999.99.01 CNT-YEAR-NUM PIC 9(2).01 I-R-INDEX PIC 9.01 P-I-SUM PIC 9(6)V99.****************************************************************** * P R O C E D U R E D I V I S I O N * ***************************************************************** PROCEDURE DIVISION.*INPUT-DATA SECTION.OPEN INPUT DDI01.OPEN OUTPUT DDO01.READ DDI01.MOVE IN-YEAR-NUM TO YEAR-NUM.MOVE IN-PRINCIPAL TO PRINCIPAL.READ DDI01.MOVE IN-AREA1 TO INTEREST-RATE-TABLE.*PROCESS-OUTPUT-DATA SECTION.*PRINT HEADERWRITE PRT-REC FROM HEADER0 BEFORE 1.WRITE PRT-REC FROM HEADER1 BEFORE 1.WRITE PRT-REC FROM HEADER2 BEFORE 1.WRITE PRT-REC FROM HEADER3 BEFORE 1.WRITE PRT-REC FROM HEADER4 BEFORE 1.* PRINT INTEREST RATEPERFORM TEST BEFORE VARYING I-R-INDEXFROM 1 BY 1 UNTIL I-R-INDEX > 5MOVE INTEREST-RATE( I-R-INDEX ) TO OUT-I-R( I-R-INDEX )END-PERFORM.WRITE PRT-REC FROM HEADER5 BEFORE 1.*PROCESS & PRINT DETAILSPERFORM PRINT-DETAILVARYING CNT-YEAR-NUM FROM 1 BY 1UNTIL CNT-YEAR-NUM > YEAR-NUM.*CLOSE-FILES SECTION.CLOSE DDI01.CLOSE DDO01.*STOP RUN.**---------------------------------------------------------------** PRINT-DETAIL **---------------------------------------------------------------*PRINT-DETAIL SECTION.*MOVE CNT-YEAR-NUM TO OUT-PERIOD.PERFORM PROCESS-DETAILVARYING I-R-INDEX FROM 1 BY 1 UNTIL I-R-INDEX > 5.WRITE PRT-REC FROM DETAIL0 BEFORE 1.*PRINT-DETAIL-RTN.EXIT.**---------------------------------------------------------------** PROCESS-DETAIL **---------------------------------------------------------------*PROCESS-DETAIL SECTION.*COMPUTE P-I-SUM = PRINCIPAL *( INTEREST-RATE( I-R-INDEX ) * CNT-YEAR-NUM + 1 ).MOVE P-I-SUM TO OUT-P-I-SUM( I-R-INDEX ).*PROCESS-DETAIL-RTN.EXIT.** *** END OF CODING EXERCIS6 ***1.2 COBOL 程序的结构(1/p4)部(Division) 一部可包括若干节节(Section) 一节可包含若干段段(Paragraph) 一段可包含若干句子句子(Sentence) 一个句子可包含若干语句语句(Statement) 制定计算机完成一定的操作子句(Clause) 制定完成某一方面的功能每个程序应包含四个部IDENTIFICATION DIVISION (标识部)主要用来指定源程序名字,也可以写入其他用作备忘的某些信息(如日期、作者等)。
浅谈cobol的几种数据类型COBOL中使用PICTURE子句来定义数据类型. 主要的数据类型有以下几类, 我将分几篇文章分别讲述他们的使用和注意的地方.类型示例说明字母形 A(2) 只能使用26个字符和空格.字符形 X(2) 可以使用字符集定义的字符和数字数字形 S9V99 数字形有三个类型, binary, packed decimal, zoned decimal.数字编辑 -zz9.99 用于格式化数值输出其他如DBCS类型, 浮点形在COBOL使用很少.对于字符,字母形都比较好理解, 所占字符数, 就是其定义的个数. 对于数字编辑形,仅仅用于格式化数值, 不能进行数值运算和布尔比较. 计算字符数需要如下计算:eg: -zz99.99 所占字符数就是计算所有定义字符数, 1(-)+2(zz)+2(99)+1(.)+2(99)=8. 其中-号表示负数显示-号, 正数不显示+号. zz表示前导0, 就是不显示前面的0.eg:PICTURE Value of Data Edited Result-ZZ99.99 +123.45 123.45-ZZ99.99 -123.456 - 123.45至于详细的各类符合和数值编辑的使用, 将会专门写一章来讲述.我们详细说一下数值形,按照带不带符合,可以区分符合形, 非符合形. 安装存储类型分为binary, packed decimal, zoned decimal.以下举例详细说明,zone decimal 一般称9型. eg 9(4)V99或者s9(4)V99, 每个9占一位,符号和V不占位. 示例就分别是6. 如果这个值是1234.56,在内存存储分别是'F1F2F3F4F5F6','F1F2F3F4F5C6'. 对于无符号,就是123456的EBCDIC码,对于带符号,对于正数,最后的F为C表示正,负数为D表示负.示例就是'C6'.packed decmial 也是COMP-3型. 9(4)V99 COMP-3或者s9(4)v99 comp-3型.存储长度计算为[x/2]+1,[x/2]+1表示9的总个数+1/2的取整, 原因是做了压缩存储,这个示范就是4. 如果这个值是123456, 在内存存储分别是'0123456F'和'0123456C', 对于无符号,最后补个F表示无符合,对于带符合,如果是正数就是C,负数就是D.所有总长度就是[x/2]+1.使用的时候, 数值型之间都可以直接进行各类操作. 但需要注意的是, 如果对于未赋值的COMP-3型, 在赋值前做任何计算操作, 将会导致数据例外, 但对于zoned decimal就会才有缺省值,不会有数据例外.还有, 若是作为db2的hv, 就必须类型与DB2的类型匹配, 如果一个9型的来接受,也会造成错误.COMP型的变量常用于表示半个字或者整个字(主机一个字是4个字节), 比如半个字也就是16BIT, 对于有符合的数来说就是-32767~+32767, 所以可以用S9(5) COMP来表示, 当然也可以用S9(4) COMP来表示(因为S9(4)表示的范围是-9999到+9999, 一个字节存不下, 也需要2个自己存储), 对于一个字就是S9(8)或者S9(9).详细可以自己计算.。
第1章 COBOL简介COBOL是Common Business Oriented Language的缩写,即公用面向商业语言的意思。
在系统地学习COBOL程序设计语言之前,有必要首先对COBOL有一个大致的了解。
本章将分别从背景知识、语法格式、以及实际创建COBOL程序3个方面对其进行简要介绍。
1.1 背景知识在介绍COBOL之前,首先需要了解一下大型机的概念。
大型机也叫主机、大机、mainframe等,属于一种商用高端服务器。
目前大型机主要由IBM公司所生产,最新型号为z系列大型机。
COBOL便是用于大型机上应用软件开发的最主要的程序设计语言。
大型机上的工作大体上可以分为两类,分别为系统方向和开发方向。
系统方向的分工很多,包括使用Tivoli监控系统;使用RACF进行安全管理;使用SMS进行存储管理等等。
开发方向的市场需求相对系统方向则要大得多。
对于开发方向,主要需要掌握以下知识。
❑COBOL:最主要的程序设计语言。
❑JCL:作业控制语言,调用由COBOL编写的程序。
❑VSAM:程序中通常用到的文件类型。
❑DB2:大型机上最主要的数据库,通常以COBOL语言为宿主语言。
❑CICS:用于联机交易的中间件,通常也是以COBOL语言为宿主语言。
对于以上知识,在本书中都有详细介绍。
此外,对于大型机底层的开发,还需要掌握大型机上的汇编语言。
对于大型机汇编语言,在本书中也有具体讲解。
COBOL作为大型机上最主要的程序设计语言,迄今已有40多年的历史。
然而,经过40多年的沧桑,COBOL不仅没有被淘汰,反而在当今愈加流行起来。
关于这一点,主要应该是由以下3个因素所决定的。
❑COBOL广泛应用于广泛应用于银行业、信用卡业、保险业、制造业、航空业等等。
这些领域对于稳定性的要求都是十分高的,因此从很大程度上也保证了COBOL的不可取代性。
❑COBOL自身也在不断发展和更新中。
例如,COBOL本身主要属于面向过程的语言。
CHAPTER 1 COBOL 概述COBOL 是Common Business Oriented Language 的缩写。
它不仅是商业数据处理的理想语言,而且广泛用于数据管理领域,因此COBOL 语言也被称为“用于管理的语言”。
一。
COBOL 语言的特点最适于数据处理领域:算数计算量少而逻辑处理量多,输入输出量大,数据间存在着一定的逻辑关系,大量的分类排序;COBOL比较接近英语,容易懂;通用性强,易移植,COBOL结构严谨,层次分明。
二。
COBOL的组成部分:1。
标识部(IDENTIFICATION DIVIS ION):用于标识程序名。
2。
环境部(ENVIRONMENT DIVISION):用于说明程序运行的环境。
3。
数据部(DATA DIVISION):用于说明程序中涉及的所有数据。
4。
过程部(PROCEDURE DIVIS ION):是程序的核心部分,它决定计算机应进行什么操作。
三。
最简单的COBOL 程序举例:COL 1 ---6 7 8 12---72 73---80IDENTIFICATION DIVIS ION。
PROGRAM-ID。
PSAMPLE1。
ENVIRONMENT DIVISION。
DATA DIVISION。
PROCEURE DIVIS ION。
DISPLAY …THIS IS A COBOL PROGRAM.‟STOP RUN。
四。
COBOL 源程序的书写格式:第1 至6 列为“标号区”。
第7列为“续行标志区”第8至此11列,称为“A区”。
程序中有些内容如部头,节头,段头,层号01,层号77 及文件描述符FD等应从A区开始写。
第12至此72列,称为“B区”。
写程序中的正文部分。
如过程部中的句子只能从B区开始写。
第73至80列,称为“注释区”。
五。
COBOL字符集包括:数字0 --- 9 ,字母A--- Z ,a --- z , 专用字符:+ - * / = , . ; … ( ) < > $ 及空格。
COBOL语言介绍相对地,科学计算方面的问题往往原始数据较少,但算法复杂;而数据处理方面的问题却常常需要面对大量的初始数据进行加工,加工过程是一些极其简单的运算(有时甚至不执行计算)或逻辑判断,但需要重复许多次,最后输出大量的结果数据,这些数据还往往是一些表格,这种数据的大量和可组织性及加工过程的简单和重复性构成了这类问题的主要特性。
在数据处理领域中,对数据的加工流程可能是成批的,也可能是零星或随机的,数据通常以记录为处理单位和以块为传输单位构成,文件和记录在数据处理中具有很重要的地位。
COBOL(COmmon Business Oriented Language)——是数据处理领域最为广泛的程序设计语言。
COBOL历史COBOL(COmmon Business Oriented Language)是第一个广泛使用的高级编程语言。
在企业管理中,数值计算并不复杂,但数据处理信息量却很大。
为专门解决经企管理问题,于1959年,由美国的一些计算机用户组织设计了专用于商务处理的计算机语言COBOL,并于1961年美国数据系统语言协会公布。
经不断修改、丰富完善和标准化,已发展为多种版本。
COBOL重视数据项合输入/输出记录的处理,对具有大量数据的文件提供了简单的处理方式。
从名字可以看出,它主要用于解决商业和企业管理等领域的大量数据处理问题,又称为企业管理语言、数据处理语言等。
Cobol语言的研制始于50年代末,当时计算机的生产已进入第二代,计算机应用领域开始从数值计算扩大到数据处理。
商业和企业事务管理中需要进行处理的数据量急剧增加,迫切需要有适用于这个领域的程序设计语言,以提高编制程序的质量和速度。
Cobol语言就是在这种社会背景下应运而生的。
也就是说,Cobol已经年过半百了。
Cobol正式发布于1960年4月,称为Cobol-60。
现在最新的版本应该是Cobol -2002了,而且还在不断改进中,未来的Cobol将支持XML等Web时代的新技术。
等。
目前,这些工作大多数是在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. 中定义如下内容:WORKING-STORAGE SECTION.01 DATE-CASE.02 DATE-FIRST PIC X(3).02 DATE-SIGN PIC 9(4) COMP VALUE 12.;定点二进制数01 DATE-CHANGE REDEFINES DATE-CASE PIC 9(9) COMP-3. ;内部十进制数据01 DATE-HEX PIC X(3). ;转换前数据01 DATE-DEC PIC S9(7)COMP-3 . ;转换后数据然后,在过程部PROCEDURE DEVISION.中加入如下语句:PROCEDURE DEVISION.MOVE DATE-HEX TO DATE-FIRST .COMPUTE DATE-CHANGE = DATE-CHANGE / 1000.MOVE DATE-CHANGE TO DATE-DEC.由内部十进制转换为X(3)型在进行相反的转换时,要消除因COBOL语言数据类型标志“C”引起的原日期数据前多加的一个0,所以需要将转换数据乘以10,再取出前6位数据即可。
COBOL培训教程-11COBOL是一种过程型编程语言,最初由美国联邦政府财政部和IBM公司共同开发,主要应用于商业和金融领域。
随着计算机技术的不断发展和商业需求的变化,COBOL确立了其在企业信息系统中的重要地位。
而为了满足企业对COBOL程序员的需求,也为有志成为COBOL开发人员的IT专业人士提供了学习机会,许多培训机构开始提供COBOL培训教程,其中包括“COBOL培训教程-11”。
一、“COBOL培训教程-11”是什么?“COBOL培训教程-11”是一个专门为COBOL初学者或想深入学习COBOL的人提供的培训教程。
本教程涵盖了COBOL的基本语法、程序结构、数据类型、数据处理、文件处理、子程序等内容,同时还涉及到企业级COBOL程序的编写和调试。
本教程注重实践操作,通过编写实际的程序来帮助学习者更好地理解和掌握COBOL编程。
二、为什么要学习COBOL?COBOL是一种非常稳定、安全、高效的编程语言,被广泛应用于金融、制造、保险、医疗等行业的业务处理和管理系统。
许多企业的信息系统至今仍在使用COBOL编写的程序,需要维护和升级。
因此,学习COBOL开发有非常广阔的就业前景。
除此之外,COBOL还有以下优点:1. 语法简单易懂,学习门槛不高。
2. 可以处理大型数据,并有效地组织和管理数据。
3. 可以与其他编程语言或工具集成,提供灵活性。
4. 可以从源代码的角度审计系统,保证信息安全。
三、“COBOL培训教程-11”的学习流程1. 熟悉COBOL开发环境学习COBOL之前,需要熟悉COBOL开发环境。
现有的主流开发环境包括微软Windows、Linux、UNIX等,还需要安装COBOL编译器和调试器等开发工具。
在学习过程中需要熟练掌握开发环境的基本使用方法。
2. 学习COBOL基本语法COBOL的基本语法包括程序结构、基本语句、数据类型、运算符等。
学习者需要熟悉这些基本语法,从而能够编写简单的COBOL程序。
大型机面试,COBOL面试试题经过IBM大型机培训,IBM大型机学习后,我们将面临着面试,面临着企业选择。
下面我们推出大型机面试试题供大家学习训练:Q1) Name the divisions in a COBOL program ?.A1) IDENTIFICATION DIVISION, ENVIRONMENT DIVISION, DATA DIVISION, PROCEDURE DIVISION. Q:列举COBOL的DEVISIONA:标识部,环境部,数据部,过程部Q2) What is the LINKAGE SECTION used for?A2) The linkage section is used to pass data from one program to another program or to pass data from a PROC to a program.Q:LINKAGE SECTION有什么用A:LINKAGE SECTION是用来将数据从一个程序传到另一个程序或者从一个过程(PROCEDURE)传到一个程序Q3) How do you define a sort file in JCL that runs the COBOL program?A3) Use the SORTWK01, SORTWK02,….. dd names in the step. Number of sort datasets depends on the volume of databeing sorted, but a minimum of 3 is required.Q:怎么在JCL中定义一个排序文件来跑这个COBOL程序A:用SORTWK01, SORTWK02,…..作为DATA SET NAME。
用多少取决于你要排序的数量,但是至少3个。
Q4) What is 77 level used for ?A4) Elementary level item. Cannot be subdivisions of other items (cannot be qualified), nor can they be subdivided themselves.Q:77层有什么作用A:基本层数据项,不能用做细分别的层,也不能被细分Q5) What is the difference between performing a SECTION and a PARAGRAPH? - GSA5) Performing a SECTION will cause all the paragraphs that are part of the section, to be performed. Performing a PARAGRAPH will cause only that paragraph to be performed.Q:执行一个区和一个段有什么区别A:简单来说的话就是区的概念比段大,执行一个区就要执行其内部所有段,执行段的话只执行该段。
COBOL DB2 数据类型对应关系在COBOL内嵌入SQL语句,SELECT ... FROM ... INTO ...。
FETCH ... INTO...。
要注意DB2内的数据类型与COBOL内定义的HOST变量的数据类型的对应关系,否则会出SQL ERROR CODE -303。
++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++ DB2 | COBOL-----------------------------DECIMAL() | S9() COMP-3DATE() | X()TIMESTAMP | X()SMALLINT | X()GRAPHIC | X() 或N()++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++SQL0303N A value cannot be assigned to a host variable in theSELECT, VALUES, or FETCH statement because the datatypes are not compatible.Explanation:An imbedded SELECT or VALUES statement selects into a host variable, but the data type of the variable is not compatiblewith the data type of the corresponding SELECT-list or VALUES-list element. Both must be numeric, character, or graphic. For a user-defined data type, the host variable might be defined with an associated built-in data type that is not compatible with the result type of the FROM SQL transform function defined in the transform group for the statement. For example, if the data type of the column is date or time, the data type of the variable must be character with an appropriate minimum length.The statement cannot be processed.User Response:Verify that the table definitions are current and that the host variable has the correct data type. For a user-defined data type, verify that the associated built-in type of the host variable is compatible with the result type of the FROM SQL transform function defined in the transform group for the statement.sqlcode : -303sqlstate : 42806SQL0303N 不可将值赋给SELECT、VALUES 或FETCH语句中的主变量,因为数据类型不兼容。
cobol z类型COBOL Z类型是COBOL语言中的一种数据类型,用于存储整数值。
在本文中,我们将探讨COBOL Z类型的特点、用法以及一些示例。
COBOL是一种面向商业应用的编程语言,广泛用于金融、保险、银行等领域。
Z类型是COBOL语言中的一种基本数据类型,用于存储整数值。
与其他编程语言不同,COBOL中的整数类型具有一些独特的特点。
COBOL Z类型的取值范围相对较大,可以存储的整数范围通常为-9,999,999,999到9,999,999,999。
这使得COBOL Z类型非常适合处理大型数值计算和金融数据。
COBOL Z类型可以进行基本的算术运算,如加法、减法、乘法和除法。
这使得开发人员可以方便地进行数值计算和数据处理。
除了基本的算术运算,COBOL Z类型还支持一些特殊的运算。
例如,可以使用DIVIDE语句进行除法运算,并将结果存储在COBOL Z类型的变量中。
还可以使用MULTIPLY语句进行乘法运算,并将结果存储在COBOL Z类型的变量中。
COBOL Z类型还支持一些逻辑运算,如等于、大于、小于等比较运算符。
开发人员可以使用这些运算符来比较COBOL Z类型的变量,并根据比较结果来控制程序的流程。
下面是一些COBOL Z类型的示例代码:```01 WS-Z-VAR1 PIC S9(9) VALUE -123456789.01 WS-Z-VAR2 PIC S9(9) VALUE 987654321.01 WS-Z-RESULT PIC S9(9).ADD WS-Z-VAR1 WS-Z-VAR2 GIVING WS-Z-RESULT. DISPLAY "The result is: " WS-Z-RESULT.SUBTRACT WS-Z-VAR2 WS-Z-VAR1 GIVING WS-Z-RESULT. DISPLAY "The result is: " WS-Z-RESULT.MULTIPLY WS-Z-VAR1 BY WS-Z-VAR2 GIVING WS-Z-RESULT. DISPLAY "The result is: " WS-Z-RESULT.DIVIDE WS-Z-VAR2 BY WS-Z-VAR1 GIVING WS-Z-RESULT. DISPLAY "The result is: " WS-Z-RESULT.IF WS-Z-VAR1 > WS-Z-VAR2DISPLAY "WS-Z-VAR1 is greater than WS-Z-VAR2" ELSE IF WS-Z-VAR1 < WS-Z-VAR2DISPLAY "WS-Z-VAR1 is less than WS-Z-VAR2" ELSEDISPLAY "WS-Z-VAR1 is equal to WS-Z-VAR2"END-IF.```通过以上示例代码,我们可以看到COBOL Z类型在进行数值计算和逻辑比较方面的灵活性和强大功能。
大型机是一种计算机(personal computer/minicomputer/mainframe/supercomputer)大型机的优点:高速(皮秒级,10^-12 )专注于大型数据的处理和数据存储高度的安全性批处理(BA TCH PROCESS)我们要学的:/COBOL(Common Business-Oriented Language 面向商业的通用语言)/JCL (Job Control Language工作控制语言)/VSAM (VIRTUAL STORAGE ACCESS METHOD 虚拟数据存取方法)/DB2 (IBM Database II IBM 数据库)/CICS (CUSTOMER INFORMA TION CONTROL SYSTEM 客户信息控制系统)COBOL(1)历史1957---ANSI-COBOL-----COBOL68-----74----85------98(面向对象的)特性高级语言(high level)、用户友好性(user friendly)、移植性(translation)、结构化语言(structered language)编程过程一般过程:程序开始(类似于头文件)、变量定义、写处理指令(输入、计算、输出)、结束编程COBOL:IDENTIFICATION DIVISION(识别部)、ENVIRONMENT DIVISION环境部、DA TA DIVISION数据部、PROCEDURE DIVISION过程部部的细分:divisions→sections→ paragraphs→sentences→statements编程格式:1-6 序列列:为“标号区”(sequence area)。
可以填写6个数字。
标号由程序编写者自定,标号应按由小到大的顺序,但不一定连续。
标号区内可以写标号也可以不写标号(标号区空白)。
标号对源程序的执行结果没有任何影响。
COBOL语言概述一.COBOL程序的结构1.部IDENTIFICATION DIVISION 标识部ENVIRONMENT DIVISION 环境部DATA DIVISION 数据部PROCEDURE DIVISION 过程部2.节(SECTION)和段(PARAGRAPH)(1)部-节-段(2)标识部下面不设节,直接设段(3)过程部可以设节,下面再设段,也可以直接设段3.句子、语句和子句每一段由若干句子(Sentence)组成,一个句子以句号加上一个以上的空格来结束。
句子由语句(Statement)组成。
语句中又可以包含若干子句(clause),每一个子句也有一个动词(但这个动词往往是可以省略的),它指定某一方面的特定功能。
二.COBOL源程序的书写格式1.1-6列:标号区2.第7列:续行标志区(“-”为续行,“*”为注解)3.8-11列:A区(部头,节头,段头,层号01、77,文件描述符FD等)4.12-72列:B区(正文)5.73-80列:注释区三.COBOL字符数字0-9,大写字母A-Z,小写字母a-z,专用字符15个{ + - * / = , . ; ‘ ( ) < > $ 空格 }四.常量1.数值常量(1)小数点不能多于一个,而且不能出现在常数最右边。
(2)数值常量的长度不能超过18位数字。
(3)至少要有一个数字,不能有多于一个符号。
(4)数字间不能有空格,空格是分界符。
2.非数值常量(1)用’’把字符串包起来(2)假如要把’’放到非数值常量中,用QUOTE保留字,如 MOVE QUOTE ‘CHINA’QUOTE TO A(3)长度不应超过120个字符。
五.COBOL的数据关系层次的概念:数据间存在的从属关系。
文件的概念:多个记录可以组成一个文件。
记录的概念:具有一定层次关系的一组数据项的最大集合,它是内存中具有独立逻辑含义的最大存取项,具有最高层次。
过程部初步一.输入输出语句1.ACCEPT(接收语句):直接从中断键盘或系统指定的输入设备上输入少量的数据。
1.DATA ITEM NAMING RULES:长度为30个字节;字符包括A-Z,a-z,0-9和‘-’;横线不能出现在第一个或最后一个;COBOL 关键字用;至少包含一个字符。
2.DATA STRUCTER LEVEL NUMBER77定义一个独立的变量66重命名88定义条件名3.DATA TYPEAlphabetic, Alphanumeric, Alphanumeric-edited, Numeric, Numeric-editedP-1,COMP-2,COMP-3,COMP,COMP-5COMP-1:指定内部浮点项目(双精度),8个字节长COMP-2:指定内部浮点项目(单精度),4个字节长COMP-3:压缩十进制(1个字节有两位)COMP-4(COMP):二进制存储COMP-3是IBM Mainframe特有,特意将一下:COMP-3 数据类型同样以二进制的形式保存在文件中,其占位数计算方法如下:占位数 =[ 定义长度 /2+1] [] 表示整COMP-3 数据在文件中存储形式如下例:例如:定义形式 -- 9(4) COMP-3, 占位数 =[ 定义长度 /2+1]=3赋值: 1521 存储结果: 01 52 1F(F表示正数)赋值: 0 存储结果: 00 00 0F COMP-3 带有符号位时,赋值为正时,最后半个字节为 16 进制 C ;赋值为负时,最后半个字节为 16 进制D例如:定义形式 -- S9(4) COMP-3, 占位数 =[ 定义长度 /2+1]=3赋值: -1521 存储结果: 01 52 1D (D 表示负数 )赋值: 1521 存储结果: 01 52 1C注意:当 COMP-3 的数据定义无 S ,赋予负值时,最后半个字节仍为 F ,即无法显示负数5.COBOL中常量ZERO(ZEROS,ZEROES):数字令或者字符“0”SPACE(SPACES):空格HIG-VALUE(HIGH-VALUES):将对应的二进制码全部置为1LOW-VALUE(LOW-VALUES):将对应的二进制码全部署为0QUOTO(QUOTOS):引号ALL:相应字符连接而成的字符串6.Arithmetic FunctionFUNCTION SUM(17,21,4.5,-6):计算总和FUNCTION SQRT(11):开平方FUNCTION INTEGER(4.5):取整FUNCTION INTEGER-PART(4.5):四舍五入7.Alphabetic FunctionFUNCTION CHAR(65):ACISS码转换FUNCTION LENGTH('KKKKK'):判断字符长度FUNCTION NUMVAL('+109'):字符转换成数字FUNCTION REVERSE('ABCD'):逆序排列FUNCTION ORD('A'):ACISS码转换8.Range FunctionsFUNCTION MAX(-21,15,2.4):选取最大值FUNCTION MIN(-21,15,2.4):选最小值FUNCTION ORD-MAX:最大值的位置FUNCTION ORD-MIN:最小值的位置FUNCTION RANGE1、COBOL简介COBOL是Common Business-Oriented Language(公用面向商业的语言)的缩写。