COBOL程序设计—2
- 格式:ppt
- 大小:3.16 MB
- 文档页数:105
cobol教程COBOL教程COBOL(Common Business-Oriented Language)是一种面向商业应用的编程语言,它主要用于处理大型企业的数据处理和事务处理。
本教程旨在帮助初学者了解和学习COBOL的基本概念和语法规则,从而能够编写简单的COBOL程序。
1. 基本语法COBOL程序由一系列的“句子”组成,每个句子以句点(.)结束。
句子由一系列的“词”组成,每个词由一个或多个字符组成。
COBOL对大小写敏感,因此要注意单词的大小写。
2. 数据定义在COBOL中,需要先定义要处理的数据。
可以使用“DATA DIVISION”来定义数据项及其属性。
数据项可以是数字、字符或日期等类型。
例如,可以定义一个名为“EMPLOYEE-ID”的变量来存储员工的唯一标识。
3. 过程部分过程部分是COBOL程序的核心,用于执行实际的业务逻辑。
可以使用各种控制结构(如IF语句和PERFORM循环)来实现条件判断和循环操作。
通过使用一系列的“句子”来描述要执行的操作。
4. 文件处理COBOL可以处理各种类型的文件,如顺序文件和索引文件。
可以使用“FILE SECTION”来定义文件及其属性,然后使用相关的文件处理语句来读取和写入文件。
5. 运行和调试COBOL程序可以通过COBOL编译器进行编译,并通过COBOL运行时系统来执行。
可以在运行过程中进行调试,以便找出程序中的错误并进行修复。
总结本教程提供了COBOL的基本概念和语法规则的介绍,以及一些常用的编程技巧和注意事项。
希望通过学习本教程,您能够对COBOL有一个初步的了解,并能够编写简单的COBOL程序。
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 (标识部)主要用来指定源程序名字,也可以写入其他用作备忘的某些信息(如日期、作者等)。
《程序设计基础》作业二答案(12秋)作业二答案一、选择题1、C语言中,使用变量的要求是______。
AA 要先定义后使用B 要先使用后定义C 不需要定义,可以直接使用D 没有明确的要求2、不是C语言的基本数据类型是______。
DA intB doubleC charD bool3、编程语言提供的三种基本控制结构是______。
DA 输入、处理和输出结构B 常量、变量和表达式结构C 表达式、语句和函数结构D 顺序、选择和循环结构4、在C语言中,决定int数的表示范围的因素是______。
AA int类型占用的字节数量B 人为事先的约定和习惯C 所存储的数据是否有符号D 数在内存中的编码方式5、C语言中,关于运算符的正确概念是_____。
DA 运算符具有优先级,同优先级的运算符由括号决定运算次序B 在不同优先级运算符进行混合运算时,运算的先后次序取决于结合性C 在同优先级的运算符参与运算时,先计算左侧的运算符D 运算符具有优先级和结合性6、在C语言中关于循环语句的结论中,错误的是______。
DA do-while语句构成的循环至少要执行一次B while语句和for语句可以相互替代C for和while语句的循环控制条件都是当条件成立时执行循环体D do-while语句的循环控制条件是当条件不成立时继续执行循环体二、填空题1、最基本的程序控制有三种,它们是______,______和______。
这三种执行控制的任意组合和重复、嵌套就可以描述任意复杂的程序。
顺序执行、分支控制和循环控制2、C语言中分支语言是______语句和______语句。
if,switch3、C语言中循环语言是______语句,______语句和______语句。
while,for和do-while4、C语言中自增运算符是______,求余数的运算符号是______。
++,%5、C语言中要改变循环语句的流程可以使用语句______,______和______。
cobol语言基础培训教程2009年04月23日| 5:23 下午分类:大型机|Mainframe| 标签:cobol 数据类型、COBOL 程序举例、cobol入门、cobol教程、cobol语言、大型机培训|CHAPTER 1 COBOL 概述COBOL 就是mon Business Oriented Language 得缩写。
它不仅就是商业数据处理得理想语言,而且广泛用于数据管理领域,因此COBOL 语言也被称为”用于管理得语言”。
一。
COBOL 语言得特点最适于数据处理领域:算数计算量少而逻辑处理量多,输入输出量大,数据间存在着一定得逻辑关系,大量得分类排序;COBOL比较接近英语,容易懂;通用性强,易移植,COBOL结构严谨,层次分明。
二。
COBOL得组成部分:1。
标识部(IDENTIFICATION DIVISION):用于标识程序名。
2。
环境部(ENVIRONMENT DIVISION):用于说明程序运行得环境。
3。
数据部(DATA DIVISION):用于说明程序中涉及得所有数据。
4。
过程部(PROCEDURE DIVISION):就是程序得核心部分,它决定计算机应进行什么操作。
三。
最简单得COBOL 程序举例:COL 1 —6 7 8 12—72 73—80 IDENTIFICATION DIVISION。
PROGRAM-ID。
PSAMPLE1。
ENVIRONMENT DIVISION。
DATA DIVISION。
PROCEURE DIVISION。
DISPLAY ’THIS IS A COBOL PROGRAM、’STOP RUN。
四。
COBOL 源程序得书写格式:第1 至 6 列为”标号区”。
第7列为”续行标志区”第8至此11列,称为”A区”。
程序中有些内容如部头,节头,段头,层号01,层号77 及文件描述符FD等应从A区开始写。
第12至此72列,称为”B区”。
写程序中得正文部分。
计算机程序设计语言发展的三个阶段
计算机程序设计语言的发展可以被划分为以下三个阶段:
1. 机器语言阶段:机器语言是最早的一种程序设计语言,它是由二进制代码组成的,直接被计算机硬件所识别和执行。
在这个阶段,程序员需要直接编写二进制代码来完成任务,这需要具备极高的技术水平和复杂的计算机知识。
2. 低级语言阶段:低级语言是相对于机器语言而言的,它使用更容易理解和编写的符号和指令来表示计算机指令。
低级语言包括汇编语言和类似于汇编语言的语言,如FORTRAN和COBOL。
在这个阶段,程序员可以使用助记符(mnemonics)来代替二进制代码,使得编写程序更加简单和易于理解,但仍然需要对计算机硬件有一定的了解。
3. 高级语言阶段:高级语言是相对于低级语言而言的,它使用类似于自然语言的语法和结构,更加接近人类语言的表达方式。
高级语言包括C、C++、Java、Python等。
在这个阶段,程序员可以使用更加抽象和简洁的语法来编写程序,不需要过多关注底层细节和硬件操作。
高级语言具有更高的可读性和可维护性,使得程序开发更加高效和容易上手。
需要注意的是,这三个阶段并非相互独立,而是相互渗透和影响的。
随着计算机技术的不断发展,高级语言的功能和表达能力也在不断
增强,但机器语言和低级语言仍然存在并发挥着重要的作用。
COBOL语法和文法REDEFINES可以用不同的变量描述同一内存。
01 PART_RECODE USAGE DISPLAY03 PART-TYPE PICTURE...03 PART_TYPE_A.05 PART_NUMBER PICTURE...05 PART_COST PICTURE...03 PART_TYPE_B REDEFINES PART_TYPE_A.05 UPC_CODE PICTURE...03 PART_TYPE_C REDEFINES PART_TYPE_A.05 ISBN PICTURE...根据PART_TYPE决定用PART_TYPE_A还是PART_TYPE_B还是PART_TYPE_C。
规则:PART_TYPE_B和PART_TYPE_C长度不能大于PART_TYPE_A。
数据项不能有VALUE。
01层不能用REDEFINES.PART_TYPE_B和PART_TYPE_C中不能有OCCURS.PICTURE定义基本项目的具体长度,格式,数据类型。
可以简写成PIC.格式字符串最多30个字符,可以包含下列字符:A 字母A-Z,a-z,空格B 插入空格P 标量字符,代表字段中不显示的小数点位置S 代数符号,实际显示取决于项目的USAGEV 小数点位置X 任何字符Z 抑制前头的0并转换成空字符0 插入09 数字0~9/ 插入/, 插入,(逗号不能作为字符串的最后一位,最后时逗号是分隔符)。
插入。
* 抑制前头的0并转换成*+ 正值插入+,负值插入-- 正值插入空格,负值插入-$ 插入美元号CR 正值插入两个空格,负值插入CRDB 正值插入两个空格,负值插入DB例子:03 VAR PIC AAAAA. STATE变量长度为5个字符,不能有数字,等价于03 STATE PIC A(5)。
输入ASDFG ,显示ASDFG03 VAR PIC XXXXX. FILLER变量长度为5个任意字符。
cobol实例以及⼊门基础1.关于COBOL的初步知识◆COBOL是Common Business Oriented Language (通⽤商业语⾔,或称管理语⾔)的缩写◆最适⽤于数据处理◆⽐较接近于⾃然语⾔(英语)◆COBOL的结构严谨,层次分明◆COBOL的缺点是⽐较烦琐。
Batch Program (VSAM/Batch COBOL)◆COBOLVSAM/ONLINE PGMCICS ONLINE ProgramDBS/ONLINE PGM◆本课以ANSI COBOL 1974为标准1.1⼀个例⼦:**************************************************************** * * * HUMAN RESOURCE INFORMATION SYSTEM * * VERSION 2.1.0 COPYRIGHT (C) 1998 * * DALIAN NEU-BITCO SOFTWARE CO., LTD. * * ALL RIGHTS RESERVED. * * ***************************************************************** IDENTIFICATION DIVISION.(标识部)PROGRAM-ID. YTP008.(程序名)AUTHOR. DALIAN NEU-BITCO SOFTWARE CO.,LTD.(作者姓名)INSTALLATION. DALIAN. (编写场所,⼤连)DATE-WRITTEN. 1998/7/11. (编写⽇期)DATE-COMPILED. 1998/8/1. (编译⽇期)SECURITY. THIS PROGRAM RESTRICTED TO PERSONNEL.**************************************************************** * * * SYSTEM : HUMAN RESOURCE INFORMATION SYSTEM * * * * PROGRAM : YTP008 * * * * TYPE : VSAM/VS COBOL II BATCH * * * * TITLE : INFORMATION ENTRY * * * * INPUTS : CARD FILE QSAM FILE * * - - - - - - - - * * * * OUTPUTS HUMAN RESOURCE (YTF019) * * * * FUNCTION : THIS BATCH PROGRAM IS TO SCAN AN IDCAMS SOURCE * * MEMBER, EACH IDCAMS SOURCE MEMBER REPRESENTS A * * * * * **************************************************************** **************************************************************** * * * REVISION LOG * **************************************************************** * CTL NO * DATE * INIT. * DESCRIPTION ***************************************************************** * * 7/11/98 * NEU-BITCO*INITIAL INSTALLATION BY ZYB *****************************************************************ENVIRONMENT DIVISION.(设备部或称环境部)CONFIGURATION SECTION.(配置节)SOURCE-COMPUTER. IBM-3084. (源计算机名,编译)OBJECT-COMPUTER. IBM-3084. (⽬标计算机名,运⾏)MEMORY SIZE IS 整数 (WORDS, CHARACTERS, MODLES).SPECIAL-NAMES. CONSOLE IS CRT.(专⽤名描述项)DECIMAL-POINT IS COMMA.(⼩数点是逗号)CURRENCY SIGN IS ‘Y’. (代替$)INPUT-OUTPUT SECTION.(输⼊输出节)FILE-CONTROL.(⽂件控制描述体)SELECT FD-YTI008 ASSIGN TO UR-S-YTI008*?? FOLLOWING LINE SHOULD BE DELETED FOR M/FORGANIZATION IS LINE SEQUENTIALFILE STATUS IS WS-FILE-STATUS.- - - - ---------DATA DIVISION.(数据部)FILE SECTION.(⽂件节)FD FD-YTI008LABEL RECORDS ARE STANDARD.01 YTI008-REC.05 YTI008-IDCAMS PIC X(80).- - - - - - --- - - - - --**************************************************************** * WORKING STORAGE**************************************************************** WORKING-STORAGE SECTION.(⼯作单元节)01 FILLER PIC X(50) VALUE'PROGRAM YTP008 WORKING-STORAGE BEGINS HERE'.*?? FOLLOWING LINES SHOULD BE DELETED FOR M/F77 UR-S-YTI008 PIC X(30) VALUE 'YTI008.DAT'.01 WORK-STORAGE.05 WS-SYS-DATE PIC 9(6).05 FILLER REDEFINES WS-SYS-DATE.10 WS-SYS-YY PIC 9(2).10 WS-SYS-MM PIC 9(2).10 WS-SYS-DD PIC 9(2).05 WS-SYS-TIME PIC X(6).05 FILLER REDEFINES WS-SYS-TIME.10 WS-SYS-HH PIC 9(2).10 WS-SYS-MN PIC 9(2).------PROCEDURE DIVISION.(过程部)DISPLAY ' PROGRAM YTP008 HAS BEEN STARTED .............' UPON CRT.PERFORM 1000-OPEN-FILE THRU1000-OPEN-FILE-EXIT.-- - - - --- - - - -STOP RUN.1.2 COBOL 程序的结构(1/p4)部(Division) ⼀部可包括若⼲节节(Section) ⼀节可包含若⼲段段(Paragraph) ⼀段可包含若⼲句⼦句⼦(Sentence) ⼀个句⼦可包含若⼲语句语句(Statement) 制定计算机完成⼀定的操作⼦句(Clause) 制定完成某⼀⽅⾯的功能每个程序应包含四个部IDENTIFICATION DIVISION (标识部)主要⽤来指定源程序名字,也可以写⼊其他⽤作备忘的某些信息(如⽇期、作者等)。