COBOL简述及基本语法.ppt_第1页
COBOL简述及基本语法.ppt_第2页
COBOL简述及基本语法.ppt_第3页
COBOL简述及基本语法.ppt_第4页
COBOL简述及基本语法.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2007/11/3,1,山东省农村信用社 COBOL培训,IBM全球服务技术团队,2007/11/3,2,COBOL简述及基本语法 COBOL程序部及运算逻辑处理 COBOL对文件处理 COBOL报表生成 COBOL表格处理及子程序的调用 COBOL程序出错诊断及优化处理,内容概述,2007/11/3,3,COBOL简述,英文缩写: COBOL (Common business Oriented Language) 中文译名:公用面向商业的语言 解 释: 一种适合于商业及数据处理的类似英语的程序设计语言。这种语言可使商业数据处理过程精确表达。,2007/11/3,4,COBOL(面向商业的通用语言,又称为企业管理语言、数据处理语言等,Common Business Oriented Language)是最早的高级编程语言之一,是世界上第一个商用语言。 COBOL有许多版本,针对不同机器和操作系统,如大型机上的IBM COBOL和PC机上的Fujitsu与Micro Focus COBOL。,COBOL简述,2007/11/3,5,COBOL发展历史,1959年5月,五角大楼委托格雷斯霍波(G.Hopper)博士领导一个委员会并由Rear Admiral Grace Hopper公司主持开发,并于1961年由美国数据系统语言协会公布。正式发布于1960年4月,称为Cobol60。 1963年,美国国家标准研究所(ANSI)进行了标准化,但是ANSI标准很少被遵循;因此,COBOL程序只是部分可移植的。,2007/11/3,6,1974年ANSI对COBOL-68作出了修订扩充,形成了ANSI COBOL X3.23-1974,随后1978年ISO采用其形成ISO COBOL-78,后来又提出了ANSI X3.23-85,增加了很多结构化程序设计的内容,ISO标准ISO1989:1985也采用了该标准。 最新的标准COBOL 2002主体已经于2002年12月出版,其他部分还在不断地完善之中,具体内容请参考 /,COBOL发展历史,2007/11/3,7,COBOL重要性及应用,经过40多年的不断修改、丰富完善和标准化,COBOL已发展为多种版本的庞大语言,在财会工作、统计报表、计划编制、情报检索、人事管理等数据管理及商业数据处理领域,都有着广泛的应用。 COBOL的重要性可以用这句话来描述:世界上70的数据都是用COBOL语言处理的,并且90的ATM事务处理用的都是COBOL语言。每天在线处理的COBOL事务有300亿次。500强中有492家(包括全部的100强)使用了COBOL语言,目前在COBOL方面的投资已经超过3万亿美元,据称用COBOL书写的程序超过了1000亿行,并且以每年大约50亿行代码的速度在增长。 由于COBOL在商业领域的雄厚基础,而且COBOL主要是应用于银行、金融和会计行业等非常重要的商业数据处理领域。,2007/11/3,8,COBOL编程基本语法,COBOL程序结构 COBOL字符集 COBOL字 COBOL变量 COBOL常量 COBOL数据集 COBOL源程序书写格式,2007/11/3,9,COBOL程序结构,IDENTIFICATION DIVISION. *标识部 PROGRAM-ID. MORTGAGE. *程序名标识段 ENVIRONMENT DIVISION. *环境部 DATA DIVISION. *数据部 WORKING-STORAGE SECTION. *工作存储节 77 A PIC 9(3). *对变量A的描述 77 B PIC 9(3). *对变量B的描述 77 C PIC 9(4). *对变量C的描述 PROCEDURE DIVISOIN. *过程部 BEGIN. ACCEPT A *输入A值 ACCEPT B. *输入B值 ADD A B GIVING C. *计算 C=A+B DISPLAY C. *显示C STOP RUN.,2007/11/3,10,每个COBOLO程序都分为四个部分,标识部,环境部,数据部,过程部.每个部分必须以部头开始. 标识部 以部头: IDENTIFICATION DIVISION. 开始,在标识部中主要规定源程序的名称,另外可以提供一些其他的说明.如作者,编写程序日期等等. 环境部 以部头: ENVIRONMENT DIVISION. 开始,主要说明计算机中使用哪些设备,如直接输出在屏幕上,输出在打印机等.,COBOL程序结构:部,2007/11/3,11,数据部 以部头: DATA DIVISION 开始,数据部定义程序所处理数据的名字及特征.也就是数据定义. 过程部 以部头: PROCEDURE DIVISOIN 开始,程序运行时处理数据的各种语句都在这里书写,过程部是程序的核心,其他三个部仅是对程序做必要的说明.,COBOL程序结构:部,2007/11/3,12,COBOL是一种层次结构很强的程序设计语言.除标识部外,在 其他三个部下面,可以设置若干节,每个结以: 节名 SECTION. 开始,在环境部,数据部中COBOL语言规定了几个节,节头应按规 则书写,各节有不同的作用,根据需要可以选定不同的节.例如:数 据部可以设工作存储节. DATA DIVISION. 数据部部头 WORKING-SRORAGE SECTION. 工作存储节头,COBOL程序结构:节和段,2007/11/3,13,标识部下面没有节,直接设段.例如程序名段 PROGRAME-ID. MORTGAGE. 过程部中,程序比较小时,可以不设节,直接设段.较长的程序可以设计节,下面还可以设段,段应有段名.段由一个或多个句子组成. 书写节头,后面要加SECTION,节头独占一行,段头只写段名,段名可以独占一行,也可以和下面的语句同占一行.,COBOL程序结构:节和段,2007/11/3,14,在过程部中,每段由若干句子组成,上例的过程部由4个句子组成.第一句 ACCEPT A ACCEPT B. 句子用句号”.”作为结束标志.句号后面至少应该有一个空格,句子又由若干语句组成,每个语句之间用空格,逗号”,”或分号”;”分开,(逗号,分号后面应有一个以上空格,所以通常用空格分来).每个语句后面接着操作对象或操作内容,完成独立的计算机操作.例如ACCEPT A表示从键盘接受数据,送入A中(相当于C语言的scanf和C+的cin).数据部,环境部中也可以出现子句.,COBOL程序结构:句子,语句,子句,2007/11/3,15,在数据部中有若干节,每个节又有若干描述体,描述数据的类型,长度等.上例中数据部的工作存储节:WORKING-STORAGE SECTION中以77开始的三行,就是数据的描述体,说明A,B,C都是数值型数据项,A,B为三位整数,C为四位整数. 77 A PIC 9(3). *对变量A的描述 77 B PIC 9(3). *对变量B的描述 77 C PIC 9(4). *对变量C的描述,COBOL程序结构:描述体,2007/11/3,16,COBOL字符集,COBOL字符是组成COBOL程序的最小单位.字符集是所有COBOL字符的总称.COBOL字符集共有78个字符.它们是: 字母 AZ (az) 数组 09 专用字符 + 加号 - 减号 * 星号 / 斜线(除号) = 等号 大于号 小于号 $ 美元符号(货币符号) , 逗号 ; 分号 . 句号(小数点) 单引号 “ 双引号 ( 左括号 ) 右括号 空格,2007/11/3,17,COBOL字,COBOL语言的基本单位为单字,通称为COBOL字,如同组成英文句子的基本单词为英文单词一样,例如下面COBOL语句: MULTIPLY HOURS-WORKED BY HOURLYRATE GIVING RATE. COBOL字包括保留字及用户字两大类. 1.保留字:保留字是在COBOL语言中已经规定用作专门用途的字,有特定的含义。 例如ADD代表加操作,DISPLAY代表显示.保留字不能作为用户字使用.,2007/11/3,18,2.用户字:编程人员自己定义的句子,例如:程序名,数据名等等,用户字的构成应符合下列规则: a.由字母,数字及连字符”-”组成,其他特殊字符不得使用. b.字符组合中至少含有一个字母或连字符,但段名可以有数字组成. c.字符组合的开始字符或结尾字符不能是连字符 d.字的长度最多三十个字符. 不正确的用户字例子:-BEGIN(连字符出现在最左边),DATA(是保留 字),*A*(不符合规则),DAT NUMBER(中间有空格),COBOL字,2007/11/3,19,COBOL程序结构:结构图,2007/11/3,20,变 量,变量是在内存中定义的一块地址,程序可以在此存放数据或从此处检索数据。 变量名或标识符是用来标识变量存储在内存中的那块地址。 变量必须以类型和大小来描述。 COBOL程序中用到的变量必须在数据部中有描述。COBOL语言中没有像C/C语言那样的局部变量。,2007/11/3,21,1.变量描述PIC子句 PIC(PIC的所写)子句对每个变量进行详细描述,包括类型及大小.一般 格式如下: PICTURE/PIC IS 描述字符串 PIC只对基本项和孤立项进行描述,而不能描述组项.书写PIC子句应先写层号, 数据名,接着写PIC保留字,最后写变量描述字符和句号.PIC子句应该从B区开始。下面具体叙述描述字符串. (1) 数值型变量的描述 a. “9”描述 “9”描述表示实际的或概念上的数据位上有一个数字. 例: 02 B PIC 9999. 表示变量B可以放入四位整数数字,范围从09999,可以简写为 02 B PIC 9(4). 说明:最多允许18个”9”.若把大于变量长度的数字存入该数据段,则会 发生高位截断.,变量的定义,2007/11/3,22,b. “V”描述符 “9”描述符只能存放整数,而无法保存小数. 例: 02 A PIC 9(2). 如果把12.34存入A,则A只会保存12,为了解决这个问题,用”V”描述 符,”V” 描述符可以标出隐含的小数点位置. 例: 02 A PIC 99V99. 表示A可以存放两位整数,两位小数,即099.99之间的任意值. 说明:由于”V”不占字节,直接显示含小数的变量不会出现小数点,如用显示语 句把A的内容显示在屏幕上,只能显示1234,想显示小数点,则需要把A传送到 具有小数点编辑描述的变量再显示,关于编辑型数据在后面描述.若V在最右 边,可以不写.一个PIC语句只允许一个”V”描述. c. “S”描述符 上述两个描述符描述的变量只能存放绝对值,为了正确表示数值得正负, 用”S”描述符,这样就可以存放带符号的数.,变量的定义,2007/11/3,23,例:01 M PIC S99V99. 表示M可以存放带符号的三位整数两位小数. 说明:”S”代表一个正负号的位置,应是最左测的描述符.不能直接显示带”S”描述的变量,”S”在内存中不单独占用一个字节,而在带”S”描述的变量中加入一些标记.标记和原来数据末尾数字混合在一起.例如: 02 A PIC S9999. A中含有-1234,当显示A时,给出的信息是123M.若想显示出带符号的数字,应该把含有”S”描述的数据项传送到含有正负号编辑型描述字符的变量中再显示.,变量的定义,2007/11/3,24,(2)字符型描述符”A” a, 用”A”描述的变量,只能存放英文字母或空格.例如: 02 A PIC A(7). 表示变量A中可以存放7个字符. b, 字符型数据描述符”X” 由”X”描述的变量可以存放计算机能够使用的任意字符.例如: 02 B PIC X(8). B的内容可以为任意字符. 说明:”X”描述符可以存放数字,但这样的数字被当作字符对待.,变量的定义,2007/11/3,25,2. VALUE子句 VALUE子句用来定义工作存储节中变量的初值.格式如下: VALUE IS 常量 例: 77 PAGE-COUNT PIC 99 VALUE 0. 几点说明: a.只能对工作存储节中的变量赋初值. b.使用VALUE子句时,不能和PIC子句矛盾,赋值类型应与PIC描述一致.如下 两种定义就是错误的. 02 A PIC 9(4) VALUE “ABCD”. 02 A PIC X(2) VALUE “NAME”. c.可以在变量上用VALUE语句,给组项赋值的值只能是表意常量或非数值常量,同时所赋之值要和组内各项的描述一致,见下页例子.,变量的定义,2007/11/3,26,VALUE使用例子1: 01 TOTAL VALUE ZERO. 02 TOTAL-1 PIC 9(3). 02 TOTAL-2 PIC 9(4). 和下面定义是等效的: 01 TOTAL. 02 TOTAL-1 PIC 9(3) VALUE ZERO. 02 TOTAL-2 PIC 9(4) VALUE ZERO. VALUE使用例子2: 01 SUM VALUE “LI MING 0895”. 03 NAME PIC X(10). 03 MARK PIC 9(4). 与下面定义是等价的: 01 SUM. 03 NAME PIC X(10) VALUE “LI MING”. 03 MARK PIC 9(4) VALUE 895.,变量的定义,2007/11/3,27,可用于PIC语句中的字符,格式字符串最多30个字符,可以包含下列字符: A 字母A-Z,a-z,空格 B 插入空格 P 标量字符,代表字段中不显示的小数点位置 S 代数符号,实际显示取决于项目的USAGE V 小数点位置 X 任何字符 Z 抑制前头的0并转换成空字符 0 插入0 9 数字09 / 插入/ , 插入,(逗号不能作为字符串的最后一位,最后时逗号是分隔符) . 插入. * 抑制前头的0并转换成* + 正值插入+,负值插入- - 正值插入空格,负值插入- $ 插入美元号 CR 正值插入两个空格,负值插入CR DB 正值插入两个空格,负值插入DB,2007/11/3,28,常用COBOL变量定义及应用,03 VAR PIC AAAAA. STATE变量长度为5个字符,不能有数字,等价于03 STATE PIC A(5)。 输入ASDFG ,显示ASDFG 03 VAR PIC XXXXX. FILLER变量长度为5个任意字符。等价于03 FILLER PIC X(5)。 输入123AS , 显示123AS 03 VAR PIC 99/XXX/9999 长度11,输入05may2004,显示05/may/2004 03 VAR PIC 0ABXXX/9999 长度11,输入05may2004,显示05 may/2004 03 VAR PIC 9(3) 长度3,0999之间。 03 VAR PIC 9(4)V99 长度6,0.009999.99之间。 03 VAR PIC S9(5)V99 长度7,-99999.9999999.99之间。 03 VAR PIC 9(6)PPP 长度6,可以是1000,2000,.,999999000。输入1234,显示1000。,2007/11/3,29,03 VAR PIC PPP999 长度3,0.0000010.000999之间。输入123,显示0.000123。 03 VAR PIC ZZZ.99,输入100.50,显示100.50;输入-51.50,显示51.50;输入0,显示.00. 03 VAR PIC $ZZZ.ZZ-,输入100.50,显示$100.50;输入-51.50,显示$51.50-;输入0,显示$_ _ _._ _ 03 VAR PIC $*,*.99CR,输入1000,显示$*1000.00;输入-1000,显示$*1000.00CR; 输入0,显示$*,*.00;输入51.5,显示$*,*51.50 03 VAR PIC $,$.99,输入100.50,显示$100.50;输入-100.50,显示$100.50; 输入0.777,显示$.77;输入0,显示$.00 03 VAR PIC $.$,输入1.00,显示$.00;输入0.65,显示$.65; 输入0,显示$.00;,常用COBOL变量定义及应用,2007/11/3,30,03 VAR PIC $-,输入17.7,显示$17;输入-17.7,显示$-17; 输入-5,显示$-5 03 VAR PIC $999.99+,输入100.50,显示$100.50+;输入-100.50,显示$100.50-; 03 VAR PIC 9(3)B9(3),输入55,显示000 055;输入1000.78,显示001 000; USAGE 表示基本或组数据的类型。有BINARY,COMPUTATIONAL(COMP),DISPLAY,INDEX,PACKED-DECIMAL. JUSTIFIED 03 VAR1 PIC X(5) JUSTIFIED RIGHT. 03 VAR2 PIC X(5). 输入XYZ,VAR1显示的是“ XYZ“,VAR2显示的是“XYZ “。 BLANK WHEN ZERO 03 VAR PIC $999,999.99 BLANK WHEN ZERO . 当字段值为0,这个项目设置为全部空格。,常用COBOL变量定义及应用,2007/11/3,31,COBOL中变量层次说明,COBOL程序中的数据项的定义从层号开始,01层是最高层,49层是最低层。 66层是为特殊描述符项目保留的,可以更名现有的数据项或组,或以原定义未允许的方式组合。 77层项目用于某个组的数据项,如程序中的临时变量。 88层是对特殊数据项目条件名保留的。主要用于枚举有限值,较多用于IF条件判断或者是EVALUATE语句。,2007/11/3,32,变量的使用,J,O,H,N,StudentName,My name is JOHN,2007/11/3,33,常 量,常量在程序中是一个不由数据名制定的量,其值在程序运行中不会改变.常量有以下三种:,2007/11/3,34,常 量,2007/11/3,35,COBOL源程序书写格式,COBOL源程序格式比较原始,与穿孔卡输入时代有关,源程序书写在程序纸上,程序纸每行80列,每列分为五个区,如下表:,标号区 第16列为标号区,给程序每一行唯一由小到大的编号,可写可不写,若 写应按照编号由小到大的顺序,可以不连续. (2) 续行区 a.第7列为续行区,一个句子写不完,需要在下一行书写.若一个字或一个 数值常量分割写在两行,需要在续行的第7列给出连字符”-”就可以.否 则不需要写连字符. b.第7列给出”*”号,表示这行为注释行.,200

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论