COBOL程序设计—9
COBOL(Common Business Oriented Language)通用商业语言
第一章COBOL 概述一、COBOL 的语言特点:COBOL:Common Business Oriented Language通用商业语言它是专门为数据管理而设计的计算机高级语言。
COBOL语言的主要特点:1、适用于数据处理,(科学计算、数据处理、过程控制、计算机辅助设计、人工智能等)数据处理的特点:算术计算量多而逻辑处理少,输入输出量大;数据项之间有清晰的层次关系;大量的分类排序;对打印报表的高要求及多样化等等2、通用性强使用是要注意它的特殊性,COBOL有较高的标准化程序硬件集中管理不同厂家生产的计算机系统所提供的COBOL是COBOL 的标准的全集或子集,设备的逻辑名可能不一样。
3、机构严谨、层次分明、比较接近于自然语言,便于初学者模仿。
二、COBOL的发展概况1959年12月在美国提出了世界上第一个COBOL语言文本并于1960年4月由美国政府印刷局正式发表称之为COBOL—60→COBOL61→COBOL65ANSI标准(美国国家标准化协会)ANSI COBOL68->(修订扩充)-〉ANSI COBOL-74-〉ANSI COBOL-85ISO 标准(国际标准化组织)ISO COBOL-72->ISO COBOL-78三、COBOL源程序结构及书写格式源程序示例:例(P8)将A和B的值相加其和放在B中源程序的结构部(DIVISION):标识部、环境部、数据部、过程部以部头开始以“.”和空格结束节(SECTION):每个节以节头作标识,以“.”和空格结束如WORKING_STORAGE SECTION (工作单元节)段(PARAGRAPH):每个短都有一个段名,以“”和空格结束如PROGRAM__ID EXAM2 句子(SENTENCE):用空格分开的多条语句称为句子最后以“.”和空格结束的一个语句序列语句(STA TEMENT):一条完整的指令用于完成一定的操作子句(CLAUSE):用于完成某一方面的特定功能如环境部中的SELECT子句。
基于COBOL的银行业务系统设计与系统性能调优
基于COBOL的银行业务系统设计与系统性能调优COBOL(Common Business-Oriented Language)是一种面向商业应用的编程语言,广泛应用于银行、保险等金融领域。
在银行业务系统设计中,COBOL语言以其稳定性和可靠性成为首选。
本文将探讨基于COBOL的银行业务系统设计及系统性能调优的相关内容。
1. COBOL在银行业务系统中的应用COBOL作为一种古老的编程语言,却在银行业务系统中有着广泛的应用。
银行作为金融机构,其业务涉及到大量的数据处理、交易记录和报表生成等工作,这正是COBOL擅长的领域。
通过COBOL编写的银行业务系统,可以保证数据的准确性和稳定性,确保银行业务的正常运转。
2. 银行业务系统设计原则在设计基于COBOL的银行业务系统时,需要遵循一些原则:模块化设计:将系统拆分为多个模块,每个模块负责不同的功能,便于维护和扩展。
数据安全:对于涉及到客户隐私和资金安全的数据,需要进行严格的加密和权限控制。
事务处理:保证每笔交易都是原子操作,要么全部执行成功,要么全部失败,确保数据一致性。
性能优化:针对大量数据处理和复杂计算场景,需要进行系统性能调优,提高系统响应速度和并发处理能力。
3. COBOL程序设计范例以下是一个简单的COBOL程序设计范例,实现了一个简单的银行账户管理功能:示例代码star:编程语言:cobolIDENTIFICATION DIVISION.PROGRAM-ID. BANK-SYSTEM.DATA DIVISION.WORKING-STORAGE SECTION.01 ACCOUNT-NUMBER PIC 9(10).01 BALANCE PIC 9(10)V99 VALUE 0.01 CHOICE PIC X.PROCEDURE DIVISION.MAIN-PROCEDURE.DISPLAY "1. Deposit".DISPLAY "2. Withdraw".DISPLAY "3. Check Balance".DISPLAY "4. Exit".ACCEPT CHOICE.PERFORM PROCESS-CHOICE UNTIL CHOICE = '4'. STOP RUN.PROCESS-CHOICE.IF CHOICE = '1' THENACCEPT ACCOUNT-NUMBER.ACCEPT BALANCE.ADD BALANCE TO BALANCE.ELSE IF CHOICE = '2' THENACCEPT ACCOUNT-NUMBER.ACCEPT BALANCE.SUBTRACT BALANCE FROM BALANCE.ELSE IF CHOICE = '3' THENDISPLAY "Balance: " BALANCE.END PROGRAM BANK-SYSTEM.示例代码end4. 系统性能调优在银行业务系统中,性能是至关重要的。
COBOL程序设计—6
Format 1 Example.
Run of PerformFormat1
In TopLevel. Starting to run program >>>> Now in OneLevelDown >>>>>>>> Now in TwoLevelsDown. >>>> Back in OneLevelDown Back in TopLevel.
OneLevelDown. DISPLAY ">>>> Now in OneLevelDown" PERFORM TwoLevelsDown DISPLAY ">>>> Back in OneLevelDown".
Format 1 Example.
Run of PerformFormat1
In TopLevel. Starting to run program
第六章 过程部之三
软件学院 代飞 2011.秋
6.1 PERFORM语句
在程序中,常常有一部分语句需要多次执行。我们该怎 么做?
例如分别计算P1=P(1+R)
A1. MOVE 0.06 TO R.
MOVE 1000 TO P.
COMPUTE P1 = P * (1 + R). WRITE P1 AFTER 2. A2. MOVE 0.04 TO R. MOVE 100 TO P. COMPUTE P1 = P * (1 + R). WRITE P1 AFTER 2.
COBOL语法和文法
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培训教程-9
表的建立
• 表的建立就是定义一个表。表名应在数据部中说 表的建立就是定义一个表。 明。 • 表元素可以是初等项,也可以是组合项。 表元素可以是初等项,也可以是组合项。 • 引用表元素是只需一个下标的,是一维表,需要 引用表元素是只需一个下标的,是一维表, 两个下标的则是二维表。 两个下标的则是二维表。 • 可以直接从数据部的描述看出:如果在数据项描 可以直接从数据部的描述看出: 述体中有一个OCCURS子句, OCCURS子句 述体中有一个OCCURS子句,而在它的上属数据项 的描述体中没有OCCURS子句,则它是一维表, OCCURS子句 的描述体中没有OCCURS子句,则它是一维表,反 则为二维表。当然还可以定义三维表。 之,则为二维表。当然还可以定义三维表。
给表元素赋初值(二) 给表元素赋初值(
• 例1: 01 TABLE VALUE IS ZERO. 03 A OCCURS 20 TIMES PIC 9(3). • 例2 : UNIT-PRICE03 UNIT-PRICE-TABLE. 05 FILLER PIC X(10) VALUE ‘0100001350’. 05 FILLER PIC X(10) VALUE ‘0200001420’. UNIT-PRICE-TABLE03 UNIT-PRICE-TABLE-R UNIT-PRICEREDEFINES UNIT-PRICE-TABLE. 05 TABLE OCCURS 2 TIMES. PROD07 PROD-CODE PIC X(4). PROD07 PROD-PRICE PIC X(6).
标识符1 [,标识符2]… 标识符1 [,标识符2]… SET 位标1 [, 位标2] 位标1 [, 位标2] TO 标识符3 标识符3 位标3 位标3 整数 标识符 整数
02.COBOL数据表示
PIC X(8). PIC X(8). PIC XX. PIC XX. PIC 9(7). PIC 9(7). PIC X(4). PIC 9(4). PIC X(4). PIC 9(4). PIC X. PIC X.
PIC X(8). PIC X(8). PIC XX. PIC XX. PIC 9(7). PIC 9(7). PIC X(4). PIC 9(4). PIC X(4). PIC 9(4). PIC X. PIC X.
HIGH-VALUE or HIGH-VALUES = LOW-VALUE or LOW-VALUES NULL ALL = = =
数据名(Data Name)
数据名(Data name)和其他编程语言中的变量名相 似;它的值能够在程序中被改变。 数据名可以认为是由程序设计者定义的某一片内存区 的符号地址,即用一个符号代表一个地址。 数据名代表一个具体的数据项。COBOL语言中指的数 据是广义的,即可以是数值,也可以是字符。 要通过类型和取值范围来进行描述。 在COBOL 程序中用到的所有数据名都要的数据部 DATA DIVISION进行描述/声明。
数据名的命名规范
包括1-30个字符 可使用字母,数字和连字符。 至少包括一个字母 第一个和最后一个字符不能是连字符“-” 中间不能包含空格符
命名原则
取的名字尽量体现所表示数据的内容 使用前缀或后缀来体现是输入/输出数据 取名要简洁直观 避免使用非正式的/个人的名字 不能使用 COBOL的保留字
小练习:判断哪些是合法数据名?
术语“elementary item”是用来描述一个原子的,不能被继续划分的 数据项 一个 elementary item 必须要有一个 picture子句. Every group or elementary item declaration must be followed by a full stop.
COBOL程序设计语言入门教程
COBOL程序设计语言入门教程第一章:COBOL简介COBOL,全称为“公共业务计算机编程语言”(Common Business-Oriented Language),是一种专门针对商业应用开发的高级程序设计语言。
本章节将为读者介绍COBOL的背景、特点以及应用领域。
1.1 COBOL的背景COBOL于1960年首次发布,由美国政府、大型企业和专业团体联合开发。
当时,计算机还是新兴的技术,大多数应用主要集中在科学计算领域。
为了适应商业应用的特殊需求,COBOL 应运而生。
1.2 COBOL的特点COBOL以易读性和易维护性著称。
它采用了自然语言风格的编码,使得非专业的程序员也能轻松理解和修改代码。
此外,COBOL还具有丰富的数据处理功能和强大的文件处理能力,适用于处理大量数据的商业应用。
1.3 COBOL的应用领域COBOL广泛应用于金融、保险、银行、物流以及政府行政等领域。
由于COBOL的稳定性和成熟性,一些大型企业仍在使用COBOL开发和维护核心业务系统。
第二章:COBOL基础语法在本章节中,我们将介绍COBOL的基本语法,包括程序结构、数据类型、变量定义、运算符等内容。
2.1 程序结构COBOL程序由多个部分组成,包括程序头、数据定义、主程序和辅助程序。
程序头包含程序名称、作者、日期等信息;数据定义定义所有的变量和文件;主程序包含实际的业务逻辑;辅助程序用于处理一些通用的功能。
2.2 数据类型和变量定义COBOL的数据类型包括数字、字符串、日期、逻辑等。
变量定义使用关键字“PIC”(Picture)来指定变量的类型和长度,例如“PIC 9(4)”表示一个4位数的整数变量。
2.3 运算符COBOL支持常见的算术运算符(加、减、乘、除)和逻辑运算符(与、或、非)。
此外,COBOL还提供了特殊的字符串连接运算符和条件运算符,用于处理字符串和条件语句。
第三章:COBOL程序设计在本章节中,我们将介绍COBOL程序的设计方法和常用技巧,包括文件处理、条件语句、循环结构以及子程序的使用。
COBOL编程基础教程:COBOL简介、应用场景和目标受众说明书
About the T utorialCOBOL stands for Common Business-Oriented Language. The US Department of Defense, in a conference, formed CODASYL (Conference on Data Systems Language) to develop a language for business data processing needs which is now known as COBOL.COBOL is used for writing application programs and we cannot use it to write system software. The applications like those in defense domain, insurance domain, etc. which require huge data processing make extensive use of COBOL. AudienceThis tutorial is designed for software programmers who would like to learn the basics of COBOL. It provides enough understanding on COBOL programming language from where you can take yourself to a higher level of expertise. PrerequisitesBefore proceeding with this tutorial, you should have a basic understanding of computer programming terminologies and JCL. A basic understanding of any of the programming languages will help you understand the concepts of COBOL programming and move fast on the learning track.Copyright & DisclaimerCopyright 2014 by Tutorials Point (I) Pvt. Ltd.All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher.We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or inthistutorial,******************************************T able of ContentsAbout the Tutorial (i)Audience (i)Prerequisites (i)Copyright & Disclaimer (i)Table of Contents ...................................................................................................................................... i i 1. OVERVIEW . (1)Introduction to COBOL (1)Evolution of COBOL (1)Importance of COBOL (1)Features of COBOL (2)2. ENVIORNMENT SETUP (3)Installing COBOL on Windows/Linux (3)Compiling COBOL Programs (3)Executing COBOL Programs (4)Executing COBOL-DB2 programs (4)Try it Option Online (6)3. PROGRAM STRUCTURE (7)Divisions (8)4. BASIC SYNTAX (12)Character Set (12)Coding Sheet (13)Character Strings (14)Comment (14)Literal (16)COBOL Word (17)5. DATA TYPES (19)Data Name (19)Level Number (20)Picture Clause (21)Value Clause (22)6. BASIC VERBS (24)Input / Output Verbs (24)Initialize Verb (25)Move Verb (26)Legal Moves (28)Add Verb (28)Subtract Verb (30)Multiply Verb (32)Divide Verb (33)Compute Statement (34)7. DATA LAYOUT (36)Redefines Clause (36)Renames Clause (37)Usage Clause (38)Copybooks (40)8. CONDITIONAL STATEMENTS (41)IF Condition Statement (41)Relation Condition (42)Sign Condition (44)Class Condition (45)Condition-name Condition (46)Combined Condition (48)Evaluate Verb (49)9. LOOP STATEMENTS (51)Perform Thru (51)Perform Until (52)Perform Times (53)Perform Varying (54)GO TO Statement (55)10. STRING HANDLING (57)Inspect (57)String (59)Unstring (60)11. TABLE PROCESSING (63)Table Declaration (63)Subscript (65)Index (66)Set Statement (67)Search (69)Search All (69)12. FILE HANDLING (72)Field (72)Record (73)File (73)13. FILE ORGANIZATION (74)Sequential File Organization (74)Relative File Organization (75)14. FILE ACCESS MODE (77)Sequential Access (77)Random Access (78)Dynamic Access (79)15. FILE HANDLING VERBS (81)Open Verb (81)Read Verb (82)Write Verb (85)Rewrite Verb (87)Delete Verb (89)Start Verb (90)Close Verb (91)16. SUBROUTINES (92)Call Verb (92)Call By Reference (92)Call By Content (94)Types of Call (95)17. INTERNAL SORT (96)Sort Verb (96)Merge Verb (98)18. DATABASE INTERFACE (101)Embedded SQL (101)DB2 Application Programming (101)Host Variables (101)SQLCA (102)SQL Queries (103)Cursors (109)19. INTERVIEW QUESTIONS (112)What is Next? (116)1. OVERVIEWIntroduction to COBOLCOBOL is a high-level language. One must understand the way COBOL works. Computers only understand machine code, a binary stream of 0s and 1s. COBOL code must be converted into machine code using a compiler. Run the program source through a compiler. The compiler first checks for any syntax errors and then converts it into machine language. The compiler creates an output file which is known as load module. This output file contains executable code in the form of 0s and 1s. Evolution of COBOLDuring 1950s, when the businesses were growing in the western part of the world, there was a need to automate various processes for ease of operation and this gave birth to a high-level programming language meant for business data processing.∙In 1959, COBOL was developed by CODASYL (Conference on Data Systems Language).∙The next version, COBOL-61, was released in 1961 with some revisions.∙In 1968, COBOL was approved by ANSI as a standard language for commercial use (COBOL-68).∙It was again revised in 1974 and 1985 to develop subsequent versions named COBOL-74 and COBOL-85 respectively.∙In 2002, Object-Oriented COBOL was released, which could use encapsulated objects as a normal part of COBOL programming.Importance of COBOL∙COBOL was the first widely used high-level programming language. It is an English-like language which is user friendly. All the instructions can be coded in simple English words.∙COBOL is also used as a self-documenting language.∙COBOL can handle huge data processing.7∙COBOL is compatible with its previous versions.∙COBOL has effective error messages and so, resolution of bugs is easier. Features of COBOLStandard LanguageCOBOL is a standard language that can be compiled and executed on machines such as IBM AS/400, personal computers, etc.Business OrientedCOBOL was designed for business-oriented applications related to financial domain, defense domain, etc. It can handle huge volumes of data because of its advanced file handling capabilities.Robust LanguageCOBOL is a robust language as its numerous debugging and testing tools are available for almost all computer platforms.Structured LanguageLogical control structures are available in COBOL which makes it easier to read and modify. COBOL has different divisions, so it is easy to debug.82. ENVIORNMENT SETUPInstalling COBOL on Windows/LinuxThere are many Free Mainframe Emulators available for Windows which can be used to write and learn simple COBOL programs.One such emulator is Hercules, which can be easily installed on Windows by following a few simple steps as given below:∙Download and install the Hercules emulator, which is available from the Hercules' home site :www.hercules-390.eu∙Once you have installed the package on Windows machine, it will create a folder like C:/hercules/mvs/cobol.∙Run the Command Prompt (CMD) and reach the directory C:/hercules/mvs/cobol on CMD.∙The complete guide on various commands to write and execute a JCL and COBOL programs can be found at:/hercules/installmvs/instmvs2.htmHercules is an open-source software implementation of the mainframe System/370 and ESA/390 architectures, in addition to the latest 64-bit z/Architecture. Hercules runs under Linux, Windows, Solaris, FreeBSD, and Mac OS X.A user can connect to a mainframe server in a number of ways such as thin client, dummy terminal, Virtual Client System (VCS), or Virtual Desktop System (VDS). Every valid user is given a login id to enter into the Z/OS interface (TSO/E or ISPF). Compiling COBOL ProgramsIn order to execute a COBOL program in batch mode using JCL, the program needs to be compiled, and a load module is created with all the sub-programs. The JCL uses the load module and not the actual program at the time of execution. The load libraries are concatenated and given to the JCL at the time of execution using JCLLIB or STEPLIB.9There are many mainframe compiler utilities available to compile a COBOL program. Some corporate companies use Change Management tools like Endevor, which compiles and stores every version of the program. This is useful in tracking the changes made to the program.//COMPILE JOB,CLASS=6,MSGCLASS=X,NOTIFY=&SYSUID//*//STEP1 EXEC IGYCRCTL,PARM=RMODE,DYNAM,SSRANGE//SYSIN DD DSN=MYDATA.URMI.SOURCES(MYCOBB),DISP=SHR//SYSLIB DD DSN=MYDATA.URMI.COPYBOOK(MYCOPY),DISP=SHR//SYSLMOD DD DSN=MYDATA.URMI.LOAD(MYCOBB),DISP=SHR//SYSPRINT DD SYSOUT=*//*IGYCRCTL is an IBM COBOL compiler utility. The compiler options are passed using the PARM parameter. In the above example, RMODE instructs the compiler to use relative addressing mode in the program. The COBOL program is passed using the SYSIN parameter. Copybook is the library used by the program in SYSLIB. Executing COBOL ProgramsGiven below is a JCL example where the program MYPROG is executed using the input file MYDATA.URMI.INPUT and produces two output files written to the spool. //COBBSTEP JOB CLASS=6,NOTIFY=&SYSUID////STEP10 EXEC PGM=MYPROG,PARM=ACCT5000//STEPLIB DD DSN=MYDATA.URMI.LOADLIB,DISP=SHR//INPUT1 DD DSN=MYDATA.URMI.INPUT,DISP=SHR//OUT1 DD SYSOUT=*//OUT2 DD SYSOUT=*//SYSIN DD *//CUST1 1000//CUST2 1001/*10The load module of MYPROG is located in MYDATA.URMI.LOADLIB. This is important to note that the above JCL can be used for a non-DB2 COBOL module only. Executing COBOL-DB2 programsFor running a COBOL-DB2 program, a specialized IBM utility is used in the JCL and the program; DB2 region and required parameters are passed as input to the utility. The steps followed in running a COBOL-DB2 program are as follows:∙When a COBOL-DB2 program is compiled, a DBRM (Database Request Module) is created along with the load module. The DBRM contains the SQL statements of the COBOL programs with its syntax checked to be correct.∙The DBRM is bound to the DB2 region (environment) in which the COBOL will run. This can be done using the IKJEFT01 utility in a JCL.∙After the bind step, the COBOL-DB2 program is run using IKJEFT01 (again) with the load library and the DBRM library as the input to the JCL.//STEP001 EXEC PGM=IKJEFT01//*//STEPLIB DD DSN=MYDATA.URMI.DBRMLIB,DISP=SHR//*//input files//output files//SYSPRINT DD SYSOUT=*//SYSABOUT DD SYSOUT=*//SYSDBOUT DD SYSOUT=*//SYSUDUMP DD SYSOUT=*//DISPLAY DD SYSOUT=*//SYSOUT DD SYSOUT=*//SYSTSPRT DD SYSOUT=*//SYSTSIN DD *DSN SYSTEM(SSID)RUN PROGRAM(MYCOBB) PLAN(PLANNAME) PARM(parameters to cobol program) - LIB('MYDATA.URMI.LOADLIB')11END/*In the above example, MYCOBB is the COBOL-DB2 program run using IKJEFT01. Please note that the program name, DB2 Sub-System Id (SSID), and DB2 Plan name are passed within the SYSTSIN DD statement. The DBRM library is specified in the STEPLIB.Try it Option OnlineYou really do not need to set up your own environment to start learning COBOL programming language. Reason is very simple, we have already set up COBOL Programming environment online, so that you can compile and execute all the available examples online at the same time, when you are doing your theory work. This gives you confidence in what you are reading and to check the result with different options. Feel free to modify any example and execute it online.Try the following example using our Try it option available alongside the code in our website.IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.PROCEDURE DIVISION.DISPLAY 'Hello World'.STOP RUN.When you compile and execute the above program, it produces the following result: Hello WorldFor some of the examples given in this tutorial, you will find a Try it option in our website code sections at the top right corner that will take you to the online compiler. So just make use of it and enjoy your learning. Try it option would work only with the code compatible with OpenCOBOL. The programs that require JCL (Input file, Output file or Parameters) for execution would not run on Try it option.123. PROGRAM STRUCTUREA COBOL program structure consists of divisions as shown in the following image:A brief introduction of these divisions is given below:∙Sections are the logical subdivision of program logic. A section is a collection of paragraphs.∙Paragraphs are the subdivision of a section or division. It is either a user-defined or a predefined name followed by a period, and consists of zero or more sentences/entries.∙Sentences are the combination of one or more statements. Sentences appear only in the Procedure division. A sentence must end with a period.∙Statements are meaningful COBOL statements that perform some processing.∙Characters are the lowest in the hierarchy and cannot be divisible.You can co-relate the above-mentioned terms with the COBOL program in the following example:PROCEDURE DIVISION.A0000-FIRST-PARA SECTION.FIRST-PARAGRAPH.13ACCEPT WS-ID - Statement-1 -----|MOVE '10' TO WS-ID - Statement-2 |-- Sentence - 1DISPLAY WS-ID - Statement-3 -----|.DivisionsA COBOL program consists of four divisions.Identification DivisionIt is the first and only mandatory division of every COBOL program. The programmer and the compiler use this division to identify the program. In this division, PROGRAM-ID is the only mandatory paragraph. PROGRAM-ID specifies the program name that can consist 1 to 30 characters.Try the following example using the Try it option online.IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.PROCEDURE DIVISION.DISPLAY 'Welcome to Tutorialspoint'.STOP RUN.Given below is the JCL to execute the above COBOL program.//SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C//STEP1 EXEC PGM=HELLOWhen you compile and execute the above program, it produces the following result: Welcome to TutorialspointEnvironment DivisionEnvironment division is used to specify input and output files to the program. It consists of two sections:Configuration section provides information about the system on which the program is written and executed. It consists of two paragraphs:14o Source computer : System used to compile the program.o Object computer : System used to execute the program.∙Input-Output section provides information about the files to be used in the program. It consists of two paragraphs:o File control : Provides information of external data sets used in the program.o I-O control : Provides information of files used in the program.ENVIRONMENT DIVISION.CONFIGURATION SECTION.SOURCE-COMPUTER. XXX-ZOS.OBJECT-COMPUTER. XXX-ZOS.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT FILEN ASSIGN TO DDNAMEORGANIZATION IS SEQUENTIAL.Data DivisionData division is used to define the variables used in the program. It consists of four sections:∙File section is used to define the record structure of the file.∙Working-Storage section is used to declare temporary variables and file structures which are used in the program.∙Local-Storage section is similar to Working-Storage section. The only difference is that the variables will be allocated and initialized every time a program starts execution.∙Linkage section is used to describe the data names that are received from an external program.COBOL ProgramIDENTIFICATION DIVISION.PROGRAM-ID. HELLO.15ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT FILEN ASSIGN TO INPUT.ORGANIZATION IS SEQUENTIAL.ACCESS IS SEQUENTIAL.DATA DIVISION.FILE SECTION.FD FILEN01 NAME PIC A(25).WORKING-STORAGE SECTION.01 WS-STUDENT PIC A(30).01 WS-ID PIC 9(5).LOCAL-STORAGE SECTION.01 LS-CLASS PIC 9(3).LINKAGE SECTION.01 LS-ID PIC 9(5).PROCEDURE DIVISION.DISPLAY 'Executing COBOL program using JCL'.STOP RUN.The JCL to execute the above COBOL program is as follows://SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C//STEP1 EXEC PGM=HELLO//INPUT DD DSN=ABC.EFG.XYZ,DISP=SHRWhen you compile and execute the above program, it produces the following result: Executing COBOL program using JCLProcedure Division16Procedure division is used to include the logic of the program. It consists of executable statements using variables defined in the data division. In this division, paragraph and section names are user-defined.There must be at least one statement in the procedure division. The last statement to end the execution in this division is either STOP RUN which is used in the calling programs or EXIT PROGRAM which is used in the called programs.IDENTIFICATION DIVISION.PROGRAM-ID. HELLO.DATA DIVISION.WORKING-STORAGE SECTION.01 WS-NAME PIC A(30).01 WS-ID PIC 9(5) VALUE '12345'.PROCEDURE DIVISION.A000-FIRST-PARA.DISPLAY 'Hello World'.MOVE 'TutorialsPoint' TO WS-NAME.DISPLAY "My name is : "WS-NAME.DISPLAY "My ID is : "WS-ID.STOP RUN.JCL to execute the above COBOL program://SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C//STEP1 EXEC PGM=HELLOWhen you compile and execute the above program, it produces the following result:Hello WorldMy name is : TutorialsPointMy ID is : 12345174. BASIC SYNTAXCharacter Set'Characters' are lowest in the hierarchy and they cannot be divided further. The COBOL Character Set includes 78 characters which are shown below: Character DescriptionA-Z Alphabets(Upper Case)a-z Alphabets (Lower Case)0-9 NumericSpace+ Plus Sign- Minus Sign or Hyphen* Asterisk/ Forward Slash$ Currency Sign, Comma; Semicolon18. Decimal Point or Period" Quotation Marks( Left Parenthesis) Right Parenthesis> Greater than< Less than: Colon' Apostrophe= Equal SignCoding SheetThe source program of COBOL must be written in a format acceptable to the compilers. COBOL programs are written on COBOL coding sheets. There are 80 character positions on each line of a coding sheet.Character positions are grouped into the following five fields:Positions Field Description1-6 Column Numbers Reserved for line numbers.7 Indicator It can have Asterisk (*) indicating comments,Hyphen (-) indicating continuation and Slash (/ ) indicating form feed.198-11 Area A All COBOL divisions, sections, paragraphs andsome special entries must begin in Area A.12-72 Area B All COBOL statements must begin in area B.73-80 Identification Area It can be used as needed by the programmer.ExampleThe following example shows a COBOL coding sheet:000100 IDENTIFICATION DIVISION. 000100000200 PROGRAM-ID. HELLO. 000101000250* THIS IS A COMMENT LINE 000102000300 PROCEDURE DIVISION. 000103000350 A000-FIRST-PARA. 000104000400 DISPLAY “Coding Sheet”. 000105 000500 STOP RUN. 000106JCL to execute the above COBOL program://SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C//STEP1 EXEC PGM=HELLOWhen you compile and execute the above program, it produces the following result:Coding Sheet20Character StringsCharacter strings are formed by combining individual characters. A character string can be a∙Comment,∙Literal, or∙COBOL word.All character strings must be ended with separators. A separator is used to separate character strings.Frequently used separators : Space, Comma, Period, Apostrophe, Left/Right Parenthesis, and Quotation mark.CommentA comment is a character string that does not affect the execution of a program. It can be any combination of characters.There are two types of comments:Comment LineA comment line can be written in any column. The compiler does not check a comment line for syntax and treats it for documentation.Comment EntryComment entries are those that are included in the optional paragraphs of an Identification Division. They are written in Area B and programmers use it for reference.The text highlighted in Bold are the commented entries in the following example: 000100 IDENTIFICATION DIVISION. 000100000150 PROGRAM-ID. HELLO. 000101000200 AUTHOR. TUTORIALSPOINT. 000102000250* THIS IS A COMMENT LINE 00010321000300 PROCEDURE DIVISION. 000104000350 A000-FIRST-PARA. 000105000360/ First Para Begins - Documentation Purpose 000106000400 DISPLAY “Comment line”. 000107 000500 STOP RUN. 000108JCL to execute above COBOL program://SAMPLE JOB(TESTJCL,XXXXXX),CLASS=A,MSGCLASS=C//STEP1 EXEC PGM=HELLOWhen you compile and execute the above program, it produces the following result: Comment Line22End of ebook previewIf you liked what you saw…Buy it from our store @ https://23。
COBOL语言学习参考资料
COBOL 语言学习参考资料第一章.COBOL程序的结构首先,请大家观察一下程序SAMPLE1。
它是由COBOL语言编成的。
COBOL 其它程序的结构都与该程序差不多。
因此,由SAMPLE1可以看出,COBOL程序分为四个部。
即:标识部(IDENTIFICATION DIVISION)、环境部(ENVIRONMENT DIVISION)、数据部(DATA DIVISION)、过程部(PROCEDURE DIVISION)。
各部下又有多个节或段。
它的程序结构可以示意如下:IDENTIFICATION DIVISION.段┆ENVIRONMENT DIVISION.节段┆节┆DATA DIVISION.节描述体┆┆PROCEDURE DIVISION.(节)段┆一.标识部。
IDENTIFICATION DIVISION主要用来指定程序名称。
标识部的格式如下:IDENTIFICATION DIVISION.PROGRAM-ID. 程序名.[AUTHOR. 作者姓名.][INSTALLATION. 计算机设置的场所.][DATE-WRITTEN. 源程序编写的日期.][DATE-COMPILED. 源程序编译的日期.][SECURITY. 保密程度.]前两句话是程序的必写部分。
后六句可有可无,也可以选写其中几段,次序任意。
二. 环境部。
ENVIRONMENT DIVISION指定程序的操作对象(文件)名与一外部设备联系起来。
此外,还指定程序中使用的专门控制方法及程序所用内存区的大小等。
环境部的格式如下:ENVIRONMENT DIVISION.CONFIGURATION SECTION. 配置节.SOURCE-COMPUTER. 源计算机名。
OBJECT-COMPUTER. 目标计算机名。
[SPACIAL-NAMES.] 专用名描述项。
[INPUT-OUTPUT SECTION. 输入输出节。
FILE-CONTROL. 文件控制描述体。
Cobol语言开发实践与维护技巧
Cobol语言开发实践与维护技巧随着信息技术的不断发展,计算机编程语言也在不断涌现和更新。
然而,有些古老的编程语言仍然在某些领域中发挥着重要的作用。
其中一种饱经岁月洗礼的编程语言就是Cobol(Common Business-Oriented Language)。
Cobol语言自从上世纪50年代诞生以来,一直被广泛用于金融、保险、政府等领域的应用开发和维护。
本文将探讨Cobol语言的开发实践和维护技巧,以帮助开发人员更好地应对Cobol项目。
一、充分了解Cobol语言的特性和语法在进行Cobol语言开发之前,首先需要充分了解Cobol语言的特性和语法。
Cobol是一种面向业务的编程语言,注重数据处理和文件管理。
它采用英语式的语法,可读性较高。
开发人员需要熟悉Cobol语言的数据类型、操作符、条件语句、循环语句等基本语法。
二、使用有效的命名规范和注释良好的命名规范和注释是保持代码可读性和可维护性的关键。
对于Cobol语言的开发,建议使用有意义的变量名称,以便于他人理解代码的含义。
同时,为了方便日后的维护工作,应该为每个程序和子程序添加详细的注释,解释代码的作用、输入输出以及实现逻辑等。
三、模块化设计和重用代码在Cobol语言开发中,模块化设计是非常重要的。
将复杂的代码划分为不同的模块,每个模块负责特定的功能,可以提高代码的可读性和可维护性。
同时,模块化设计还可以促进代码的重用。
开发人员可以将一些常用的功能封装为子程序或函数,提高代码的效率并减少代码的冗余。
四、合理使用调试工具和技巧调试是开发过程中不可或缺的环节。
Cobol语言也提供了一些调试工具和技巧,方便开发人员定位问题并进行排除。
例如,可以使用Cobol的调试命令来跟踪程序的执行流程,查看变量的值,以及捕获错误信息。
此外,还可以使用断点技巧,将程序的执行暂停在特定的位置,以便进行代码逐行调试。
五、错误处理和异常处理机制在Cobol语言开发中,错误处理和异常处理机制是非常关键的。
COBOL习题
COBOL习题COBOL语言测试试卷二一、选择题(共20分)1.关于COBOL语言,正确的是()A.COBOL非常适合用于科学计算B.可以用COBOL写操作系统内核程序C.COBOL追求类自然英语,因此保留字较多D.COBOL程序非常强调数据类型2.关于COBOL程序结构,下面错误的是()A.COBOL程序一般由定义部、环境部、数据部和过程部组成B.COBOL程序的某个部下面不一定有节,但至少应该有一个段C.过程部里可以直接包含语句,而不必要有节或段D.COBOL程序也有顺序、分支和循环等结构3.下面变量名错误的是()A.-class B.class-1 C.SPACED.class1-4.下面不是COBOL保留字的是()A.IDENTIFICATIONB.ZEROC.ALLD.begin5.关于PIC语句,下面叙述不正确的是()A.普通PIC语句刻画了变量的数据类型及尺寸B.PIC语句可以通过VALUE短语给变量付初值C.PIC语句只出现在数据部中D.PIC语句不能定义数据的显示和打印格式6.关于记录缓冲器,下面说法正确的是()A.COBOL程序用到的每个输入或输出文件都必须有独立的记录缓冲器B.COBOL程序用到的每个输入或输出文件可以有多个记录缓冲器C.如果COBOL程序用到的多个输入或输出文件的记录内容和格式完全相同,则它们可以共用记录缓冲器D.COBOL程序用到的输入或输出文件可以没有记录缓冲器7.关于COBOL的顺序文件处理,正确的是()A.COBOL程序可以直接使用输入或输出文件的文件名B.COBOL程序只能通过内部文件名来使用输入或输出文件C.内部文件名和外部文件名之间的指代关系在数据部里说明D.用到输入或输出文件的COBOL程序可以没有环境部8.下面IF语句中的条件部分隐含的主体是()IF VarA>VarB AND VarC AND VarDDISPLAY“VarA is the Greatest”END-IFA.VarAB.VarBC.VarCD.VarA>9.关于Edited Picture语句,不正确的是()A.它极大地满足了我们对财务数据的格式化要求B.它不能包含A、9、X、V、S等普通符号C.它定义的变量不能参与四则运算D.它定义的变量可以接受四则运算结果10.关于Table和Group,不正确的是()A.Table实际上可以看成有多个同名子项目的GroupB.Table的元素可以是GroupC.Group的子项目可以是TableD.Group的子项目不能是Table二、填空题1.A变量的值及B变量的定义如下,在执行MOVEA TO B后,B的值各是多少?(20分)A的值B的定义B的值85PIC ZZZ.99_________________13PIC ZZZ.ZZ_________________120138PIC99/99/99_________________2.58PIC-*(3).99_________________5000PIC9(4)_________________-5000PIC9(4)C_________________1024PIC9999._________________123.5PIC-9(3).9_________________123.5PIC+9(3).9_________________2.58PIC$Z(3).99_________________2.要写一个COBOL程序从一个文件中输入客户信息,然后将每个客户信息分行输出到另一个文件中作为客户报告,其中输入的每一个客户输入记录包含以下数据:COLUMNS CONTENTS ――――――――――――――――――――――――――――――――――――1-6Customer Number(5digits plus1letter)7-26Customer Name27-46Street Address47-61City62-63Z-letter State Addreviation64-73Zip code(fromat:99999-9999)74-77Year of last purchase78-80unused要求输出文件中的客户报告格式如下所示(每行80字符,各项之间空2格):――――――――――――――――――――――――――――――――――――JOE SCHMOE199612345S314COLLECE DRIVEDEKALB IL601115-1342KELLY ANDERSON199412354A723420TH STREETBYRON IL61113-4218ANN WILSON199721345W2345WILSHIRE BLVDCHICAGO IL61234-21345填空完成以下COBOL程序,以达到上述目的。
COBOL语言的字符串操作模式
了解COBOL语言的字符串操作模式COBOL语言中常用的字符串操作模式是什么?什么是COBOL语言的字符串操作?COBOL(cobol)语言的程序对输入的数据进行某种编辑处理,然后将结果输出到屏幕或文件中,这是处理的基础。
这次介绍的字符串操作经常被用作编辑处理。
在这里,我们将首先介绍如何编写COBOL语言字符串操作的基本字符串的一部分并将其显示在屏幕上的过程,因此让我们了解如何编写和使用它。
如何写:数据项(起始字符位置:[长度])使用例:使用示例是从WK-MOJI这一数据项的第1位中取出3个字符,并在屏幕上显示结果的程序。
如本示例所示,如果您使用提取某个字符串的一部分的过程,例如,如果字符串由代码值和名称组成,您将能够仅提取代码值并将其用于下一个过程。
実行结果:COBOL(cobol)语言中的一种字符串操作模式既然您已经了解了如何编写COBOL语言的基本字符串操作,接下来我们将介绍字符串操作的模式。
COBOL语言的字符串操作主要分为四种模式: 1.字符串初始化,2.字符串分割,3.字符串连接,4.使用集体项目进行字符串操作。
让我们按顺序来看看它的写法和使用方法。
怎么写1:初始化字符串INITIALIZE数据项使用例1:使用示例是初始化“123456”的初始值设定的WK-MOJI的数据项的值,并在屏幕上显示结果的程序。
在使用数据项进行编辑处理时,为了防止程序发生故障,通常也会像本使用例那样明确地初始化数据项。
実行结果1:如何编写2:分割字符串利用前面介绍的“字符串的一部分和检索处理”使用例2:使用示例是这样的程序:从WK-MOJI这一数据项的第1位中取出3个字符,从第4位中取出3个字符,并在屏幕上显示结果。
在COBOL(cobol)语言中,可以很容易地实现这样一个数据项的分割和使用。
実行结果2:如何编写3:连接字符串STRING数据项1、数据项2・・DELIMITED BY SIZEINTO数据项3[WITH POINT ER起始字符位置][结束字符串]使用例3:使用示例是将WK-MOJI 1、WK-MOJI 2这些字符串连接起来,存储在WK-MOJI中,然后在屏幕上显示结果的程序。
COBOL语言-总结
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(接收语句):直接从中断键盘或系统指定的输入设备上输入少量的数据。
COBOL 程序例子
006100 MOVE "データソースから切断" TO STMT-PROC.
006200 EXEC SQL
006300 DISCONNECT
006400 END-EXEC.
006500* 上記の<埋め込み例外宣言>の有効範囲の終わりを指示します。
001600 EXEC SQL BEGIN DECLARE SECTION END-EXEC.
001700* [ODBC Administrator]を使用して"サンプル"という名称の
001800* データソースを作成しておいてください。
001900 01 ODBC-DSN PIC X(10) VALUE "サンプル".
010500* 表中のデータを全て削除する。
010600******************************************************************
010700 DELETE-PROC SECTION.
010800 MOVE "表中の全データの削除" TO STMT-PROC.
005600 PERFORM INSERT-PROC.
005700 PERFORM SELECT-PROC.
005800 PERFORM UPDATE-DELETE-PROC.
005900 PERFORM CURSOR-PROC.
006000* データソースから切断する。
005100 EXEC SQL
005200 CONNECT :ODBC-UID IDENTIFIED BY :ODBC-PWD
COBOL—大型机商业编程技术详解(修订版)[共17页]
COBOL—大型机商业编程技术详解(修订版)
马千里编著
人民邮电出版社
北京
内容提要
COBOL是应用于大型机开发的主要程序设计语言。
本书由浅入深,循序渐进地介绍了如何使用COBOL语言以及与COBOL语言紧密相关的扩展技术进行实际开发。
全书共18章,主要内容包括COBOL 简介、程序结构、常用语句、基本数据类型、字符串及其操作、基本运算、流程控制、数据的排序与合并、COBOL中的表、程序的调试与测试、子程序调用、COBOL中的面向对象技术、处理VSAM文件、JCL扩展、DB2扩展、CICS扩展、大型机汇编语言扩展、开发小型银行账户管理信息系统等。
本书适合广大COBOL程序开发人员、大型机培训班学员和大专院校学生阅读,尤其适合具有一定C 语言编程基础的人员进行学习。
精通COBOL—大型机商业编程技术详解(修订版)
♦编著马千里
责任编辑汪振
♦人民邮电出版社出版发行北京市崇文区夕照寺街14号
邮编100061 电子函件 315@
网址
中国铁道出版社印刷厂印刷
♦开本:787⨯1092 1/16
印张:29.75
字数:718千字2011年3月第2版
印数:4 601 – 7 600册2011年3月北京第1次印刷
ISBN 978-7-115-24646-2
定价:30.00元
读者服务热线:(010)67132692 印装质量热线:(010)67129223
反盗版热线:(010)67171154。
COBOL概述
COBOL概述COBOL概述什么是COBOL语⾔:COBOL是Common Business Oriented Language的缩写,是⾯向商业通⽤编程语⾔。
它是专门为商业数据处理⽽设计的计算机⾼级程序语⾔。
⼴泛⽤于数据管理领域。
应⽤于多个⾏业如:银⾏,证券,⾦融,制造,等等。
COBOL程序的基本结构:标识部(IDENTIFICATION DIVISION)⽤来标识程序名称,记录程序的⽂档记录住处如作者和⽇期等。
环境部(ENVIRONMENT DIVISION)⽤来描述程序运⾏和编译的计算机环境,内部数据⽂件与系统设备的对应关系。
数据部(DATA DIVISION)定义程序中所有数据的类型和所占内在的⼤⼩。
过程部(PROCEDURE DIVISION)编写程序要执⾏的语句,是程序的核⼼。
部下设置节,节下设置段或描述体,段下或节⼀包含句⼦。
节是由⼀个或者多个段组成的。
节的定义从⼀个节名开始到下⼀个节名或⽂本结束为⽌。
定义格式:节名 SECTION(节名分为系统定义和⽤户定义两种。
)段由⼀个或多个句⼦组成,段的定义从段名开始到下⼀个段名或⽂本结束为⽌。
定义格式:段名.(段名+点)(段名分为系统定义和⽤户⾃定义两种)⽂件描述体只能在数据部中定义,⽤于描述外部⽂件的属性及其记录的格式。
定义格式:FD ⽂件名. (⽂件描述体⽤FD(file definition)语句定义)。
句⼦是完整的指令,⽤相应的动词表⽰其操作,以⼀个句号加⼀个以上的空格来结束。
COBOL程序的书写区域标准COBOL程序每⾏80列,被分为五⼈区域。
第01——06列为“标识区”标号是6位数字,应从⼩到⼤,但不⼀定连续,标号只是⽅便查阅程序,可以省略。
第7列为“注释区”“*”:表⽰本⾏为注释⾏,⽤于注释程序说明。
第08——11列为“A区”程序中⼀列语句必须从该区开始书写:部名、节名、段名,描述符(FD),01和07层。
第12——72列为“B区”程序正⽂部分,过程部语句必须从该区开始书写。
《C语言程序设计》课后习题参考答案
高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案――武汉大学出版社习题1参考答案一、选择题1. A2. D二、填空题1. BASIC、FORTRAN、AL_GOL60和COBOL2. 83. 关键字4. 编辑、编译、链接和运行三、简答题1.答:(1)C语言具有结构化的控制语句。
C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。
(2)C语言具有丰富的数据结构类型。
C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。
C语言还提供了与地址密切相关的指针类型。
此外,用户还可以根据需要自定义数据类型。
(3)C语言具有丰富的运算符。
C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。
(4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。
(5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。
它既是成功的系统描述语言,又是通用的程序设计语言。
(6)C语言与汇编语言相比,可移植性好。
(7)功能强大。
C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。
现在许多系统软件都用C语言来描述,可以大大提高了编程效率。
2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。
3.答:(1)操作系统的设计与实现。
C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。
(2)工业控制。
由于C语言具有简洁、灵活、代码效率高、能进行位操作等优点,C语言大量应用在单板机、单片机上,以及嵌入式领域等。
(3)图形图像处理。
C语言在内存管理和进程控制方面有丰富的指令,而且它能提供快速运行的代码,因而C语言适合进行图形程序设计。
cobol的编程实例[精华]
一个COBOL的编程实例通常一个程序分为几个处理过程,然后有序地组合起来使用,以实现我们所希望的处理结果。
这里,给出一个销售公司对销售数据处理的范例,通过实际的编程,掌握COBOL编程的技巧和步骤。
销售数据处理系统简介用户需求(1)某销售公司有若干个销售商店,公司想获得每个商品的销售去向和每个商店的销售额等信息。
(2)商品的库存管理在一个固定地方进行管理。
经营者为掌握库存销售情况,想及时获得有关定货信息。
为满足上述(1)和(2)的需求,首先:①需要具体地确定什么样的信息,采用什么样的手段来获取。
例如,定货信息包含什么内容、日处理做什么、月处理做什么等。
②需要搞清为获取①中所需信息,什么样的数据适合作为输入数据来使用。
③决定②中数据文件格式,讨论处理顺序,进而决定程序处理所用的文件。
(过程设计、文件设计)④处理过程中,如果需要进行数据合并、排序的话,必须进行数据代码化处理(代码设计)根据上述思考,决定编程的具体工作。
此例题是一个批处理例题。
既将每周一次从销售店收集到的销售数据进行汇总合计,作成销售额统计表,然后根据销售额统计表获取库存主文件、供货商主文件信息后打印定货清单。
注:此程序的部分编程技巧不是最优,但可以分为如下四个处理步骤来实现。
●处理步骤1:数据合法性检查和排序处理从商店获取的数据可能有非法数据,所以必须进行数据合法性检查。
对查出的错误数据,将其打印到“错误数据清单”上并要求修改这些错误数据。
对检查无误(正确)的数据,按商品代码进行排序,以便进行后续处理。
●处理步骤2:统计报表的制作将输入的销售信息作成统计表。
统计表上要打印出各商店按商品代码汇总的销售额,并把商店总销售额用‖*‖表示出来。
●处理步骤3:更新处理库存主文件把按商品代码排序的销售文件作为交易,更新库存主文件的当前库存量。
由于在销售文件中,可能存在同一商品代码的多条数据记录,所以需要做N:1的数据合并处理。
●处理步骤4:制作定货清单在处理步骤3中,当新库存主文件产生的同时,要将当前库存量与最低库存量进行比较后,将需要定货的商品代码清单打印出来。
COBOL教程
/index.htmlCOBOL 教程- -Tag:COBOL教程目录CHAPTER 1 COBOL 概述CHAPTER 2 过程部初步CHAPTER 3 标识部和环境部CHAPTER 4 数据部之一CHAPTER 5 过程部之二CHAPTER 6 过程部之三CHAPTER 7 各部之间的关系及程序举例CHAPTER 8 联机及批量程序的一些差异CHAPTER 9 COBOL 编程规范CHAPTER 1 COBOL 概述COBOL 是Common 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---80IDENTIFICATION DIVISION。
PROGRAM-ID。
PSAMPLE1。
ENVIRONMENT DIVISION。
DATA DIVISION。
PROCEURE DIVISION。
DISPLAY …THIS IS A COBOL PROGRAM.‟STOP RUN。
四。
COBOL 源程序的书写格式:第1 至6 列为“标号区”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件学院 代飞 2011.秋
9.1 表的概念
COBOL语言的表(TABLE)相当于C语言中的数 组(ARRAY),但有一些区别。
表处理:
表的建立
——定义数组
表元素的处理——数组元素的处理
多个数据项地位和作用是相同的,是否都需要独 立的数据名?
有一个居民记录,内包含几个
表元素可以是初等项,也可以是组合项
01 PRODUCT-RECORD.
03
PRODUCT OCCURS 20 TIMES.
04 QUANTITY-OF-PRODUCTION PIC 9(6). 04 QUANTITY-OF-SALES PIC 9(6).
04 QUANTITY-OF-HAND PIC 9(6).
9.7.2 位标名的指定方法
对于如下的:
A
(3) or A (S)
S可能是下标,也可能是位标
如何区别呢?
01 A.
03 T OCCURS 5 INDEXED BY I PIC X(2).
I为位标,而且是表T的位标 T (I),系统知道按位标方式处理,即把I的值作为相
对地址来处理。
注意,位标名不需要再专门进行描述,如下面对I再次 声明是错误的: 77 I PIC 99. 不能这么做
下面给出表定义的完整语法图,请大家再次注意
indexed的位置
整数1 T IMES 1 数据名 DEPENDING 层号 OCCURS 整数1 TO 整数2 TIMES FILLER ON 数据名2 ASCENDING 数据名3...... IS KEY DESCENDING INDEXED BY 位标名 ......其他数据描述项子句 1
5.
表元素可以为组合项。在建立一个多维表的同时, 也建立了一维或二维等表。
6.
有的COBOL标准只允许建立三维表。而IBM主机 COBOL无此限制。
7.
只有当OCCURS所说明的数据是初等项,才能在
该数据项的描述中使用PIC子句
8.
不能用VALUE子句对表赋初值
9.
多维表的元素在内存中是以行排列。
三个初等项都是“数量”(生产数量、销售数量、库
存数量)。数据描述都是9(6),它们的地位和描述
又都相同,因此,可以进一步简化:
01 PRODUCT-RECORD.
03
PRODUCT是一维表 QUANTITY是二维表
PRODUCT OCCURS 20 TIMES.
04 QUANTITY OCCURS 3 PIC 9(6).
9.3 可变长表
思考:学生选课,每个学生在每学期选课数量可 能不同。但是有每学期最高选课数限制。如何处 理? C语言:
根据最高选课数建立数组
COBOL
可变长表
我们希望是这样的:
ห้องสมุดไป่ตู้
01 STUDENT-SCORE-RECORD.
03 NAME PIC X(10). 03 QTY-OF-COURSE PIC 9(2). 03 SCORE OCCURS 1 TO 15 DEPENDING ON QTY-OF-COURSE PIC 9(3)
注意:
1.
如果想使用位标,必须在表建立的同时使用 INDEXED BY 短语来指出位标。否则当做一般的 下标。 位标是特殊数据项,不能参与计算;不能用输入 语句(READ)改变其值;也不能将它的值直接打 印或者显示;也不是记录的一部分,不能在文件 节定义,也不必在工作单元节中定义。
多维表的每一维均可以指定位标,按维定义,按 维使用
04
QUANTITY OCCURS 3 TIMES PIC 9(6).
引用:QUANTITY (3,8,2)
示例:有如下程序 01 TABLE.
02
A1 OCCURS 5 TIMES.
03 B1 PIC X(3). 03 B2 OCCURS 10 TIMES PIC 9(4). 03 B3 OCCURS 8 TIMES.
01 UNIT-PRICE-TABLE-R REDEFINES
UNIT-PRICE-TABLE. 02 TABLE-R OCCURS 5. 03 PROD-CODE PIC 9(4). 03 PROD-PRICE PIC 9(6).
9.6 举例
IDENTIFICATION DIVISION. PROGRAM-ID. EXAM2A4. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. DATA DIVISION. WORKING-STORAGE SECTION. 01 UNIT-PRICE-TABLE. 02 FILLER PIC X(10) VALUE '0010000200'. 02 FILLER PIC X(10) VALUE '0020000500'. 02 FILLER PIC X(10) VALUE '0030000300'. 02 FILLER PIC X(10) VALUE '0040000250'. 02 FILLER PIC X(10) VALUE '0050005000'. 01 UNIT-PRICE-TABLE-R REDEFINES UNIT-PRICE-TABLE. 02 TABLE-R OCCURS 5. 03 PROD-CODE PIC 9(4). 03 PROD-PRICE PIC 9(6). 77 I PIC 9. 77 CODE-E PIC ZZZZ. 77 PRICE-E PIC $$$$$$. PROCEDURE DIVISION. S. PERFORM VARYING I FROM 1 BY 1 UNTIL I > 5 MOVE PROD-CODE (I) TO CODE-E MOVE PROD-PRICE (I) TO PRICE-E DISPLAY I DISPLAY 'CODE:', CODE-E, ' IS ', PRICE-E END-PERFORM STOP RUN.
一般格式:
OCCURS 整数1 TO 整数2 TIMES
DEPENDING ON 数据名1
数据名1可以在表所在的记录中描述,也可以不在本
记录中描述,也就是说可以在工作单元节其他部分
描述。但不能是“表”的一部分!
9.4 表元素的引用
表必须在数据部先定义,才能在过程部引用。 使用表名和序号来引用。例如SCORE (2)
OCCURS子句的最简单格式
•
• 1. 2. 3. 4.
OCCURS
说明:
整数 TIMES
OCCURS后面只能是正整数;
不能出现在77层(66,88层也不行); 不能用于01层; 如果OCCURS描述一个初等项,则“重复出现” 的是初等项。如果用OCCURS描述一个组合项, 则“重复出现”的是组合项。
居民的号码、性别、午龄、地
址等数据。需要为每一居民单 独起一名字,并分别描述。见 右图
如果有100个人呢,如果人更
多呢?
01 PRODUCT-RECORD.
02
PRODUCT-1
QUANTITY-OF-PRODUCTION PIC 9(6) 生产数 QUANTITY-OF-SALES PIC 9(6) 销售数
2.
3.
4.
思考,如何将位标值转储到其他数据项?
二维表需要两个下标。例如QUANTITY (3, 2)
例如,有下列示例:
01 TABLE.
02 B OCCURS 8.
03 C1 PIC X(8). 03 C2 PIC X(2). (1)不能直接引用 表名而不加下标
如
MOVE B TO A.
错误
(2)如果表元素是组合项,则引用其下属项也必须使 用下标
只要确定表名和序号(出现号,occurs number), 就可唯一地确定一个表元素。
下标:元素的位置序号 位标:元素的相对地址位置
9.2表的建立
如果一个数据名是表,则必须指出这个“表”包含 多少个元素
01 STUDENT-RECORD
02 02
NAME PIC X(20). COURSE OCCURS 5 TIMES PIC 9(3).
再看个例子
01 T VALUE ‘ABCDEFGHIJ’. 02 Q OCCURS 3 PIC X(3).
T Q(1) A B C D Q(2) E F G Q(3) H I
第二种办法,联合使用OCCURS和REDIFINES子句 来给各个表元素赋初值。 例如:
产品号 0010 0020 单价 000200 000500
初值即可。
第二种方法:联合使用OCCURS子句和REDEFINES子
句来给各个表元素赋初值!
第一种方法:对包括所有表元素的整个表赋给 个初值。这时可以对表的描述体上面一层的数据 项赋一个初值即可。
例加,有个表A:
01 TABLE.
01 TABLE VALUE IS ZERO.
02 A OCCURS 20 PIC 9(3).
9.7 用位标法引用表元素
9.7.1 位标的概念
下标——元素在表中的序号 位标——元素在表中的相对位置
编译系统根据下标号计算出需引用表元素的地址。 每次使用都要进行一次地址的计算。
C语言的类比 int x[10];
for(int i=0;i<10;i++)
{ x[i]=0; … *(x+i)=0; }
A
(B (2) )
(6)带下标的数据名又称为下标数据名
9.5 给表元素赋初值
不能在表的定义中同时用OCCURS子句和VLAUE 子句给表元素赋初值。 运行中,用循环语句,通过MOVE等语句赋值