您好,欢迎访问三七文档
1/49COBOL简易教程主要内容1.COBOL语言的基本概念及程序的结构一个例子COBOL程序的结构COBOL源程序的书写格式2.COBOL数据表示常量层次的概念PICTURE语句数据在内存中的各种形式3.算术运算变量赋值(MOVE,MOVECORR)算术运算(ADD,SUB,MUL,DIV,COMPUTE等)内部函数4.字符串处理合并、分离、取子串、替换等5.程序逻辑控制条件的分类IF、EVALUATEPERFORM6.表处理定义、赋值、引用、查询7.读、写多格式记录文件8.常用语句小结9.子程序2/491.关于COBOL的初步知识COBOL是CommonBusinessOrientedLanguage(通用商业语言,或称管理语言)的缩写最适用于数据处理比较接近于自然语言(英语)COBOL的结构严谨,层次性强COBOL的缺点是比较烦琐。3/491.1一个例子:*******************************************************************COBOLTRAININGPROGRAM**VERSION2.1.0COPYRIGHT(C)2004**WISTRONDALIANSOFTWARECO.,LTD.**ALLRIGHTSRESERVED.*******************************************************************IDENTIFICATIONDIVISION.PROGRAM-ID.EXERCIS6.AUTHOR.QXLU(WISTRONDALIAN).DATE-WRITTEN.04-06-23.DATE-COMPILED.04-06-23.*----------------------------------------------------------------**COMMENT:****----------------------------------------------------------------*ENVIRONMENTDIVISION.CONFIGURATIONSECTION.SOURCE-COMPUTER.IBM-3084.OBJECT-COMPUTER.IBM-3084.INPUT-OUTPUTSECTION.FILE-CONTROL.SELECTDDI01ASSIGNTODDI01.SELECTDDO01ASSIGNTODDO01.*DATADIVISION.FILESECTION.*FDDDI01LABELRECORDISSTANDARDDATARECORDAREIN-AREA0,IN-AREA1.01IN-AREA0.05IN-YEAR-NUMPIC9(2).05IN-PRINCIPALPIC9(4)V99.05FILLERPICX(07).05RMARKPICX(01)VALUEX0A.01IN-AREA1.05IN-INTEREST-RATEOCCURS5TIMESPICV999.05RMARKPICX(01)VALUEX0A.FDDDO01BLOCK0RECORDSLABELRECORDSTANDARDRECORDINGF.01PRT-REC.05FILLERPICX(79).**===============================================================*WORKING-STORAGESECTION.01IN-FILE-DATA.05YEAR-NUMPIC9(2).4/4905PRINCIPALPIC9(4)V99.05INTEREST-RATE-TABLE.15INTEREST-RATEOCCURS5TIMESPICV999.*01HEADER0PICX(79)VALUE'TABLEOFSIMPLEINTEREST'.01HEADER1PICX(79)VALUE'************************************'.01HEADER2PICX(79)VALUE'PRINCIPAL4,000.00FOR10PERIODS'.01HEADER3PICX(79)VALUESPACE.01HEADER4PICX(79)VALUE'PERIODINTERESTRATE'.01HEADER5.05OUT-I-ROCCURS5TIMESPICBBBBBBBBB.999.01DETAIL0.05OUT-PERIODPICZZZ.05OUT-P-I-S-ITEMOCCURS5TIMES.10FOURSPACESPICX(04)VALUESPACE.10OUT-P-I-SUMPIC9,999.99.01CNT-YEAR-NUMPIC9(2).01I-R-INDEXPIC9.01P-I-SUMPIC9(6)V99.*******************************************************************PROCEDUREDIVISION******************************************************************PROCEDUREDIVISION.*INPUT-DATASECTION.OPENINPUTDDI01.OPENOUTPUTDDO01.READDDI01.MOVEIN-YEAR-NUMTOYEAR-NUM.MOVEIN-PRINCIPALTOPRINCIPAL.READDDI01.MOVEIN-AREA1TOINTEREST-RATE-TABLE.*PROCESS-OUTPUT-DATASECTION.*PRINTHEADERWRITEPRT-RECFROMHEADER0BEFORE1.WRITEPRT-RECFROMHEADER1BEFORE1.WRITEPRT-RECFROMHEADER2BEFORE1.WRITEPRT-RECFROMHEADER3BEFORE1.WRITEPRT-RECFROMHEADER4BEFORE1.*PRINTINTERESTRATEPERFORMTESTBEFOREVARYINGI-R-INDEXFROM1BY1UNTILI-R-INDEX5MOVEINTEREST-RATE(I-R-INDEX)TOOUT-I-R(I-R-INDEX)END-PERFORM.WRITEPRT-RECFROMHEADER5BEFORE1.5/49*PROCESS&PRINTDETAILSPERFORMPRINT-DETAILVARYINGCNT-YEAR-NUMFROM1BY1UNTILCNT-YEAR-NUMYEAR-NUM.*CLOSE-FILESSECTION.CLOSEDDI01.CLOSEDDO01.*STOPRUN.**---------------------------------------------------------------**PRINT-DETAIL**---------------------------------------------------------------*PRINT-DETAILSECTION.*MOVECNT-YEAR-NUMTOOUT-PERIOD.PERFORMPROCESS-DETAILVARYINGI-R-INDEXFROM1BY1UNTILI-R-INDEX5.WRITEPRT-RECFROMDETAIL0BEFORE1.*PRINT-DETAIL-RTN.EXIT.**---------------------------------------------------------------**PROCESS-DETAIL**---------------------------------------------------------------*PROCESS-DETAILSECTION.*COMPUTEP-I-SUM=PRINCIPAL*(INTEREST-RATE(I-R-INDEX)*CNT-YEAR-NUM+1).MOVEP-I-SUMTOOUT-P-I-SUM(I-R-INDEX).*PROCESS-DETAIL-RTN.EXIT.*****ENDOFCODINGEXERCIS6***1.2COBOL程序的结构(1/p4)部(Division)一部可包括若干节节(Section)一节可包含若干段段(Paragraph)一段可包含若干句子句子(Sentence)一个句子可包含若干语句语句(Statement)制定计算机完成一定的操作6/49子句(Clause)制定完成某一方面的功能每个程序应包含四个部IDENTIFICATIONDIVISION(标识部)主要用来指定源程序名字,也可以写入其他用作备忘的某些信息(如日期、作者等)。ENVIROMENTDIVISION(环境部)主要用于指出程序中用到的数据文件名与计算机系统的设备的对应关系,即把某一文件名与一个外部设备联系起来。DATADIVISION(数据部〕程序中所用到的全部数据(包括输入输出的数据和中间数据)都应在数据部中说明它们的类型和所占内存情况。PROCEDUREDIVISION(过程部〕用来给出程序要执行的指令,使计算机产生相应的操作,例如进行数学运算。7/491.3COBOL源程序的书写格式(1/p6)16781112727380*SDAT2000ACALCULATION-CALCULATION-SECTION.MOVE‘2000A’TOWS-CURR-POS.ADDATOB.DISPLAYA,B.1-6标号区7注释区(*)8~11A区部头,节头,段头,层号01,层号77以及文件描述符FD应从A区开写。12-72B区,正文过程部的句子只能从B区开始写,而不能写到A区去。73-80注释区(和C程序一样,编译时注释被舍弃)1.4一个最简单的COBOL源程序IDENTIFICATIONDIVISION.PROGRAM-ID.HLLWRLD.AUTHOR.QXLU(WISTRONDALIAN).DATE-WRITTEN.04-06-21.DATE-COMPILED.04-06-21.*ENVIRONMENTDIVISION.*DATADIVISION.*PROCEDUREDIVISION.DISPLAY'HELLOWORLD!'.STOPRUN.2.COBOL数据表示2.0常量(1/p13)ZERO,ZEROS,ZEROES表示一个或多个零字符(16进制‘F0’)SPACE,SPACES表示一个或多个空格字符(16进制‘40’)HIGH-VALUE,HIGH-VALUES表示一个或多个字符具有最高值(16进制‘FF’,2进制‘11’)LOW-VALUE,LOW-VALUES表示一个或多个字符具有最小值(16进制‘00’,2进制‘00’)QUOTE,QUOTES表示一个或多个引号字符(16进制‘7F’)8/49(MOVEQUOTETOA)ALL常量表示一个或多个该常量组成的字符串APICX(4)A内容MOVEALL‘*’TOA****MOVEALL‘AB’TOAABABMOVEALL‘ABC’TOAABCA2.1层次的概念(1p16)01WORK-STORAGE.05WS-SYS-DATEPIC9(6).05FILLERREDEFINESWS-SYS-DATE.10WS-SYS-YYPIC9(2).10WS-SYS-MMPIC9(2).10WS-SYS-DDPIC9(2).05WS-SYS-TIMEPICX(6).05FILLERREDEFINESWS-SYS-TIME.10WS-SYS-HHPIC9(2).10WS-SYS-MNPIC9(2).结构:记录组合项初等项层次规定如下:
本文标题:COBOL简易教程
链接地址:https://www.777doc.com/doc-1567518 .html