ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:26.19KB ,
资源ID:6964290      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6964290.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(cobol学习笔记1231培训资料.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

cobol学习笔记1231培训资料.docx

1、cobol学习笔记1231培训资料COBOL学习笔记_20121231cobol语言.修订版.(上册+下册).pdf2012-12-14(122 )COBOL语言特点: (1) 适合数据处理(算术计算量小而逻辑处理多;输入输出数据量大;数据间有一定逻辑关系,即层次关系;大量分类排序;对报表要求高、多样化等) (2) 接近自然语言英语,易于理解 (3) 通用性强,易于移植 (4) 结构严谨,层次分明,每个程序分为4部分(division:标示部Identification division、环境部envroNment division、数据部data division、过程部procedure

2、division)、每部分分为若干节(section 有节头标示,类似部头)、节下面分为若干段(paragraph 有段头标示)。每一部分都有固定格式。 (5) 缺点是比较繁琐。不乱程序逻辑如何,都必须按照四大部分生成,对每部分都必须定义和说明,即使该部分实际上没有内容,也要写出头部,导致源程序冗长。 = 一个简单的COBOL程序: Code:IDENTIFICATION DIVISION.PROGRAM-ID.EXAM1.ENVIRONMENTDIVISION.DATADIVISION.PROCEDUREDIVISION.S.DISPLAYTHIS IS A COBOL PROGRAM.ST

3、OPRUN.= IDENTIFICATION DIVISION: 用来指定源程序名称,也可写入其他信息(如作者、日期、保密等)。 ENVIRONMENT DIVISION: 程序中用到的数据文件名和计算机的设备的对应关系,即把某一数据文件和一外部设备关联起来。此外,还可以指定目标程序中使用的专门控制方法和程序所用内存区的大小。 DATA DIVISION: 程序用到的所有数据的类型和占用内存的情况。 PROCEDURE DIVISION: 用来给出程序要执行的命令,是计算机产生相应的操作。 部下面可以有节,节下面有段;或者部下面直接是段。 = 以上四个部分,只有过程部是执行部分,是核心部分。

4、过程部中,每段由若干句(Sentence)组成,每句以句号加一个以上的空格来结束的。 一个句子只能由一个语句组成,一个语句加一个句号后跟一个或多个空格形成一个句子。 一个句子可以包含多个子句(Clause),每个子句也有一个动词,指定某一方面的功能。 除了过程部外,环境部和数据部也可以包含子句,如SELECT子句、文件描述子句等。 = COBOL每行80列,每行分为几个区: (1) 16列为“标号区”,一般前3列表示页号,后3列表示本页行号。标号应当按照从小到大顺序填写,但可以不连续。可以填标号,也可以不填写,对程序没有影响。 (2) 第7列:“续行标志区”,写上续行符-,表示本行是续上一行后

5、面的。一般只有拆分字符需要两行紧连或者一个长的字符串需要拆成两行时才使用,否则可以空着。不推荐使用续行符,容易导致错误。 (3) 第811列,称为A区,程序的某些部分,如部头、节头、段头、层号01、层号77以及文件标示符FD等应从A区开始书写。可以从第8列开始,也可以不从,但必须在811列的任何一列开始。 (4) 第1272列,称为B区,是程序的正文部分,过程部的句子必须从B区开始写,不能写入A区中。 (5) 第7380列,为“注释区”,一般是简单说明,程序编译和执行时都不会理会该区内容。 80列的划分区,只是对程序有以上限制,对于数据而言没有以上分区限制,即输入数据可以从第1列用到第80列。

6、 所有字母应大写;相邻两个字之间应该留一个或以上空格;运算符和等号两边必须各留一个空格;过程部中左括号的左侧和右括号的右侧都要留一个空格,内侧不必留空格;逗号、句号、分号的左边不能留空格,右边必须留空格;一个空格和多个空格作用相同,但引号中的除外;允许一行写几个语句,也可以一个语句写在多行上。 = COBOL字符集:COBOL程序中允许出现的字符(引号内的除外)。 数字:09 大写字母:AZ 专用字符15个: 加号 + 减号或连接号 - 乘号或星号 * 除号 / 等号 = 逗号 , 句号或小数点 . 分号 ; 引号 或 括号 () 小于号 空格 货币符号 $ #,!,?,%等字符属于系统字符集

7、但不属于COBOL字符集,不能在程序中出现(引号内除外)。 = COBOL字分为两类:保留字和用户字(非保留)。 保留字指在COBOL中已规定作专门用途的字,代表特定的含义,不能另作他用。 = 数据名就是由程序设计者定义的一片内存区域,即用一个符号代表一个地址。 长度只能是130个字符之间;只能由字母、数字和连接符-组成,至少含一个字母,连接符不能出现在名称的两端,不能出现空格;不能使用COBOL保留字,一般使用连接符是避免使用保留字的好方法,或者使用X或数字开头的名称;最好使用望文生义的单词命名。 = 常量包括数值常量(Numerical Literal)、非数值常量(Nonnumerica

8、l Literal)和表意常量(Figurative Constant)三类。 数值常量不能超过18位数字;至少要有一个数字,不能含有超过一个符号;数字之间不能有空格。 非数值常量指用引号引起来的字符串;非数值含量不能参与运算;如果想把引号也放入常量,需要使用QUOTE保留字实现,如DISPLAY QUOTE ABCD QUOTE,表示ABCD六个字符,但QUOTE本身不能替代引号;非数值常量不能超过120个字符。 表意常量就是指用保留字表示的一些特殊常量,如用ZERO表示0,SPACE表示空格等。 = COBOL的数据具有层次的特征,类似于一颗倒立的树或者是金字塔结构,一般将这样的一条数据称

9、之为一个记录(record)。为了反映数据在一个层次结构中的层次,引入了层号的概念,使用2位数来表示。层号小表示较高的层次。 记录是具有一定层次关系的一组数据项的最大集合。是内存中具有独立逻辑含义的最大可存取项,层号为01。 记录下分为几项,不能继续分的称为初等项或基本项(Element item)。初等项是数据的基本单位;如果还能继续分,称为组合项(Group Item),组合项下可以是组合项或者初等项。多个记录可以组成一个文件。但文件一般存储在外部,不在内存中,内存中最大存取项是记录。 2012-12-19 2328 过程部是COBOL的核心部分,应当以过程部为主体,找出几部分之间的关系。

10、 过程部的特点: (1) 过程部是程序的第四部分 (2) 过程部都以一个动词开始,如MOVE、READ、WRITE、IF。表示计算机应当执行的操作。 (3) 动词后面一般都跟着一个操作的对象,可以是数据文件或者数据名。 (4) 过程部一律写在B区上,即第12列开始,可以写在一行或者多行,续行也从B区开始。 = 输入输出 1、ACCEPT语句 从键盘终端或者指定输入设备获取少量输入数据。 ACCEPT 标识符 FROM 助忆名 这里的标识符必须是可以唯一的标识一个数据项的数据名。 如部-节-段-数据项的情况下,使用OF关联上下关系,保证标识符的唯一性,如 01 A. 02 B1. 03 C .

11、03 D . 02 B2. 03 C . 03 D . 必须写成 C OF B1 和 C OF B2 区分两个不同的C 以上内的内容表示是可选项,内的内容表示其中各项可多选一,.表示之前的或的内容可以重复多次,有下划线的保留字表示必写,没有的表示可以省略。 以上的FROM省略时表示从系统默认输入设备获取数据,如键盘,增加时,表示从指定设备获取数据,助忆名 表示从一个设备名,具体的名称可以在ENVIRONMENT DIVISION中定义: ENVIRONMENT DIVISION.CONFIGURATION SECTION.配置节SPECIAL-NAMES.专用字段CONSOLE IS ABC.

12、将输入设备定义为助忆名:ABC ACCEPT T FROM ABC. 表示从输入设备获取数据并赋值给变量T。 ACCEPT之后只能跟一个标识符,不能跟多个。 = 2、DISPLAY语句 用于少量数据输出到指定外设上。 DISPLAY 标识符|常量标识符|常量.UPON 助忆名 默认在屏幕上显示数据,使用UPON指向指定的设备名输出 每执行一次DISPLAY,总是从一个新行开始;如果一行显示不完,会自动换行显示。 正式程序中,一般都不使用ACCEPT和DISPLAY,以提高系统效率,减少手工干预。 = 3、READ语句 READ 文件名 RECORD INTO 标识符 ;AT END 执行语句

13、分号可以省略 例如 READ IN-FILE,表示从IN-FILE文件中读取数据,IN-FILE称为“内部文件名”,它与外部文件名之间的关系是通过ENVIRONMENT DIVISION中指定的,如: Code:ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION.输入输出节 FILE-CONTROL.文件控制段SELECT IN-FILE ASSIGN TO 外部文件名.2012-12-21 (2938) 内部文件名的长度不能超过30byte,只能由数字、字母和连接符组成,必须至少包含一个字母。 每执行一次READ语句,只读取文件中的一条记录,为避免误解,可以

14、加上关键字RECORD,如: READ IN-FILE RECORD 其中,RECORD是可选项,是否写,效果一样。 在计算机内存中专门开辟一片存储单元存放读入记录,所以大小应当等于一条记录的大小。 每次读取下一条记录,会冲掉前一条记录的内存区域,所以必须在处理下一条之前保存处理结果,内存中不会保存前一条记录信息。 输入记录区样例: Code:DATA DIVISION. FDIN-FILE LABEL RECORD IS STANDARD. 01IN-RECORD.02 DATE-IN.03 YEAR PIC 99.(表示2位整数)03 MONTH PIC 99.03 DAYy PIC 99

15、.02 PRODUCT-CODE PIC 9(4).02 CUSTOMER-CODE PIC 9(4).02 QUALITY PIC 9(6).02 UNIT-PRICE PIC 9(6).FD是File Description(文件描述)的缩写,表示从该行起是“文件描述体”。 LABEL RECORD IS STANDARD表示“标号记录是标准的”,所有磁盘和磁带文件都必须这样。 文件结尾有“文件结束标志”,READ读到文件结束标志后,会给出一个“文件结束”信息,允许程序进行处理,由AT END子句来处理,如: READ IN-FILE AT END STOP RUN. 以上STOP RUN

16、表示中止运行,也可以写其他语句。 = 4、WRITE语句 WRITE 记录名 FROM 标识符 BEFORE|AFTER ADVANCING 标识符2|整数LINE|LINES|助忆名|PAGE 将内存中的数据写入外部设备,输出文件也在内存区开辟一个“输出文件记录区” 输出设备的选择: Code:ENVIRONMENT DIVISION.(环境部) INPUT-OUTPUT SECTION.(输入输出节) FILE-CONTROL.(文件控制段)SELECT OUTPUT-FILE ASSIGN TO 输出设备名.输出设备名可以用打印机,如PRINTER或磁盘文件名等。 LABEL RECOR

17、D IS OMITTED.表示“标号记录是省略的”,凡输出是打印机的,一律这样写。 如果输出是磁盘文件,则修改为LABEL RECORD IS STANDARD. 输出内存记录区样例: Code:DATA DIVISION. FD OUTPUT-FILE LABEL RECORD IS OMITTED. 01 OUTPUT-RECORD.02 DATE-OUTPUT.03 YEARPIC 99.03 MONTHPIC 99.03 DAYYPIC 99.02 PRODUCT-CODE 9(4).02 CUSTOMER-CODE PIC 9(4).02 QUALITY PIC 9(6).02 UN

18、IT-PRICE PIC 999.02 TOTAL PIC 9(4).如果在ENVIRONMENT DIVISION指定输出设备为PRINTER,则执行WRITE OUTPUT-RECORD,自动会在打印机执行输出。 COBOL提供了行距控制,如下: Code:MOVE T1 TO OUTPUT-RECORD. WRITE OUTPUT-RECORD AFTER ADVANCING 2 LINES.表示打印OUTPUT-RECORD之前先空2行。 也可以用 Code:WRITE OUTPUT-RECORD AFTER ADVANCING 2 LINES.表示先打印OUTPUT-RECORD再空

19、2行。 上面的2行,可以用数据名来表示,如 Code:WRITE OUTPUT-RECORD AFTER ADVANCING A LINES.这里,A为DATA DIVISION定义的一个整数变量。 如果需要一些特殊控制,如要移动到页末或者不换行,可以使用专用名控制,具体可查询COBOL编译器ENVIRONMENT DIVISION专用字段描述。 WRITER语句的记录的第一个字符称为“纵向走纸控制”,即第一个字符不会被打印出来,这个问题和系统有关。 可以从内存区另一个数据项的内容获取内容输出给要输出的记录区,然后再输出,如: Code:WRITE OUTPUT-RECORD FROM T1

20、AFTER 3.相当于: Code:MOVE T1 TO OUTPUT-RECORD. WRITER OUTPUT-RECORD AFTER 3.= 5、OPEN语句 OPEN INPUT|OUTPUT 文件名1 ,文件名2. 读写文件前,必须先执行OPEN语句打开文件。 可以一次打开多个文件,如: OPEN INPUT x1,x2,x3 OUTPUT x4,x5,x6. = 6、CLOSE语句 CLOSE 文件名1 ,文件名2. 对文件操作完毕后,应关闭文件。 有一个OPEN,应该对应有一个CLOSE。2012-12-25 (3950)1、ADD语句ADD 标识符1|常量1 ,标识符2|常量

21、2 TO|GIVING 标识符m, 标识符nADD A TO B = A + B = BADD A, B TO C = A + B + C = CADD A, B GIVING C = A + B = CADD A, B TO C, D = A + B + C = C; A + B + D = D2、SUBTRACT语句SUBTRACT 标识符1|常量1 ,标识符2|常量2 FROM 标识符m, 标识符n |常量m, 常量nGIVING 标识符k, 标识符pSUBTRACT B FROM A = A B = ASUBTRACT B, C FROM A = A B C = ASUBTRACT B

22、, C FROM A, T = A B C = A; T B C = TSUBTRACT B, C FROM A GIVING X = A B C = X注意:GIVING之后不能跟常量。如果不带GIVING,则FROM部分后面也不能带常量。3、MULTIPLY语句MULTIPLY 标识符1|变量1 BY 标识符2, 标识符3 |常量2, 常量3 GIVING 标识符m, 标识符nMULTIPLY A BY B = A*B=BMULTIPLY A BY B GIVING C = A*B=CMULTIPLY A BY B, C = A*B=B; A*C=C注意:GIVING之后不能跟常量。如果不

23、带GIVING,则BY部分后面也不能带常量。4、DIVIDE语句DIVIDE 常量1|标识符1 INTO|BY 标识符2, 标识符3 |常量2, 常量3GIVING 标识符4, 标识符5DIVIDE A INTO B = B/A=BDIVIDE A INTO B GIVING C = B/A=CDIVIDE A BY B GIVING C = A/B=C注意:如果除不尽,多余的位数被截掉,即小数会被截去。总结:一个语句只能进行单一运算,不能在一个语句进行两种不同的运算。加法和减法可以一次进行多个值的计算,但乘法和除法不可以。5、计算语句COMPUTE用于复杂的四则运算COMPUTE T = (

24、A + B) * C / D = (A+B)*C/D = T优先级:(从高到低)括号单目运算符(正负号)乘方(*)乘除加减同等级运算法按从左往右优先级所有运算符两侧应留一个空格括号外侧留一个空格、内侧可以不要留空格COMPUTE语句计算速度较慢,由于COBOL很少用于科学计算,不常使用COMPUTE语句。2012-12-29 (5077)MOVE语句MOVE 标识符1|常量1 TO 标识符2, 标识符3MOVE语句用来实现数据的传送,将数据从一个内存域送到另一个内存域。仅指内存中的传送,不是内存和外部设备间的传送。可以将常量(数值常量、非数值常量、表意常量)或一数据项内容传送给另一数据项。传输

25、规则:MOVE A TO BA成为发送项,B称为接收项。1、发送项和接收项类型和长度一致,则按字节一一传送。2、发送项和接收项类型都是数值数据项,长度不一致,则按“小数点对齐”原则处理。接收项大于发送项,则多余位补零。接收项小于发送项,则截断(从左边算起)。3、对字母或字符数据(非数值型数据),按照“左对齐”原则处理。接收项大于发送项,则多余位补空格。接收项小于发送项,则从右端截断。4、可以将一个初等项内容传给另一个初等项,也可以将一个组合项内容传给另一个初等项,也可以将一个初等项内容传给另一个组合项。GOTO语句GO TO 过程名1,过程名2 DEPENDING ON 标识符节名或段名称为过

26、程名,代表一段过程。DEPENDING 表示根据标识符的值转到哪一个过程名后面执行,如:GO TO A, B, C DEPENDING ON I.表示I=1,转到过程A,I=2, 转到过程B, I=3,转到过程C,否则执行下一个语句。GOTO是无条件转移语句。条件语句IF1、关系运算符关系运算符的作用是对两个数值型或字符型数据大小进行比较。大于 IS GREATER THAN 或者 小于 IS LESS THAN 或者 不小于 NOT LESS THAN 或者 NOT 不等于 NOT EQUAL TO 或者 NOT =2、关系运算规则(1) 数据量之间的比较,按照值进行比较(2) 字母数据之间

27、的比较,按照ASCII码大小比较,或者EBCDIC码大小比较,但共同的归类就是字母顺序,当长度不同时,补足空格后从左到右的顺序比较每一位(注意,空格比任何字母都小)。(3) 字符型数据的比较,也是按照从左到右的顺序比较,但字符代码大小比较,和系统有关,或者按照ASCII码大小比较,或者EBCDIC码大小比较。3、IF语句的两种形式IF 条件 语句组|NEXT SENTENCE ELSE 语句组2|NEXT SENTENCE(1) IF 条件 语句组(1) IF 条件 语句组1 ELSE 语句组2NEXT SENTENCE表示条件满足(或不满足时)执行IF下面的语句停止语句STOPSTOP RUN|常量说明:(1) 执行后程序将中止(2) STOP常量,表示程序暂时挂起,并显示该变量的值,一般用于调试;暂停后,从键盘输入适当的命令,可以使程序继续进行结构化程序设计的三种结构:顺序结构、选择结构和循环结构,并由这三种基本机构派生出其他基本结构,这些基本结构应当具备以下特征:(1) 只有一个入口,一个出口(2) 没有死循环(3) 没有死语句(永远不会执行的语句)程序=算法+数据结构+程序设计方法+程序环境标识部IDENTIFICATION DIVISION标识部的作用是标识一个COBOL程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1