COBOL初学者(HELLO WORLD)
- 格式:doc
- 大小:247.00 KB
- 文档页数:14
从C语言实战谈编程:hello world(入门)一、学前要思考从今天开始,我会按照我的想法一步一步地谈论如何编程。
可能我的想法和你不太一样,和其他人不太一样,这不奇怪,每个人都有每个人做法和想法嘛。
我从不是照书宣讲,但也不随便乱讲,我还是有系统的、有针对性的、把自己对编程的看法呈现给你们与你们交流。
不要拒绝新的尝试、试试听听别人想法,说不定会有一些收获。
我想问一下读者,当你要学一门新的语言的时候,你应该首先考虑什么?你应该怎么学?你怎么才算学好了?.你会考虑这些问题吗?如果你从不考虑这些问题,不知道怎么去考虑,那我第一课就要告诉你,要学会思考。
一个程序员不善于思考就不会是一个好的程序员,记住要学会思考,不习惯也要习惯。
如何思考?思考什么?学一门语言首先要把学习一门语言当做一个整体来思考。
在学之前就要考虑好,为啥要学?怎么学?学什么?学多长时间?学到什么程度?很多过来的程序员在学习语言的时候,由于没有很好考虑这些问题,急于编程序、急于看到程序运行出来的结果,或者一切顺其自然,没有急迫感,边学边做,若干年后也不知道自己到底学的怎么样。
这些是我最不愿意看到的。
1、为啥要学?我认为这个问题一定要从实用主义出发,一定要学了有用。
比如,工作需要、找工作需要、做自己项目的需要。
总之能够在近期带来经济效益的,可以考虑去学。
那些因好奇、因升级、因流行、因新品、因技术而去学则不要浪费时间去学,最多去了解就行了。
而如果为了兴趣,这个就要考虑了,可以考虑比较一两个有用的程序语言去学习。
人的时间本来不多,而程序员的时间更是不多而且珍贵,所以要珍惜使用。
2、怎么学?我看到大部分人都是找本书,先看,再试,不懂网上去查,是向书学习,向网学习的个人学习。
这种方法一定学出来的是一个平均水平的程序员。
我提倡的是不要看书(这个方法我在《程序员成长路线图:从入门到优秀》一书中专门说过),找人学。
通过向别人学习,可以加快学习的进程、找到学习的重点、避免无谓的自己长时间查出错原因,更重要的是培养程序员团队意识,通过与其他人的交流,取长补短,共同进步。
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的set语句Cobol是一种面向业务的编程语言,广泛用于处理企业级应用程序。
在Cobol中,set语句用于给变量赋值。
下面是一些使用Cobol的set语句的示例,以及它们的功能和用法。
1. 设置变量为固定值:```SET variable-name TO value.```这个语句将变量的值设置为固定的值。
例如:```SET count TO 0.```这将把变量count的值设置为0。
2. 设置变量为另一个变量的值:```SET variable-name-1 TO variable-name-2.```这个语句将变量variable-name-1的值设置为variable-name-2的值。
例如:```SET total TO count.```这将把变量total的值设置为变量count的值。
3. 设置变量为表达式的计算结果:```SET variable-name TO expression.```这个语句将变量的值设置为表达式的计算结果。
例如:```SET total TO count * price.```这将把变量total的值设置为变量count乘以变量price的结果。
4. 设置变量为当前日期或时间:```SET variable-name TO CURRENT-DATE.```这个语句将变量的值设置为当前日期或时间。
例如:```SET today TO CURRENT-DATE.```这将把变量today的值设置为当前的日期。
5. 设置变量为文件中的记录数:```SET variable-name TO NUMBER-OF-RECORDS.```这个语句将变量的值设置为文件中的记录数。
例如:```SET record-count TO NUMBER-OF-RECORDS.```这将把变量record-count的值设置为文件中的记录数。
6. 设置变量为字符串的值:```SET variable-name TO "string".```这个语句将变量的值设置为字符串的值。
Cobol 语法基础作成者审查者承认者丁成远变更履历日期版本作成者备注2005-03-01 1.0 丁成远初版一.COBOL 语言的特点最适于数据处理领域:算数计算量少而逻辑处理量多,输入输出量大,数据间存在着一定的逻辑关系,大量的分类排序;COBOL 比较接近英语,容易懂;通用性强,易植,COBOL结构严谨,层次分明。
二. COBOL的组成部分1.标识部(IDENTIFICATION DIVISION):用于标识程序名。
IDENTIFICATION DIVISION.PROGRAM-ID. 程序名。
[AUTHOR。
作者名。
][INSTALLATION。
计算机设置场所。
][DATE-WRITTEN。
源程序编写日期。
][DATE-COMPILED。
源程序编译日期。
][SECURITY。
保密程度。
]2.环境部(ENVIRONMENT DIVISION):用于说明程序运行的环境。
ENVIRONMENT DIVISION.CONFIGRATION SECTION。
SOURCE-COMPUTER。
源计算机名。
OBJECT-COMPUTER。
目标计算机名。
[SPECIAL-NAMES。
专用名描述项。
][INPUT-OUTPUT SECTION。
FILE-CONTROL。
{文件控制描述体}[I-O-CONTROL。
输入输出控制描述体]] 3.数据部(DATA DIVISION):用于说明程序中涉及的所有数据。
4.过程部(PROCEDURE DIVISION):是程序的核心部分,它决定计算机应进行什么操作。
三. 最简单的COBOL 程序举例1.环境配置说明:(1)安装“Fujitsu NetCOBOL for Windows V7.0”的企业版,安装完成后选择“COBOL Project Manager”打开COBOL主控制台。
(2)选择“Open Project”打开存在的COBOL程序,或者输入新的Project名选择打开,可以建立新的COBOL Project.。
《COBOL商业编程技术》实验报告1学号姓名时间2015年月日成绩上机练习1实验要求:1.编写简单的COBOL程序:HELLO WORLD,通过JCL编译连接并运行,输出“HelloWorld”。
2.将给定的COBOL程序CLAC1000成功编译并运行,输入用SYSIN定义InstreamData或者通过和用户交互来实现数据的输入。
3.编写COBOL程序实现文件的简单复制。
实验步骤及结果:LAB11.编写COBOL源程序,保存在IBMUSER.COBOL.SOURCE(HELLO)中2.创建数据集IBMUSER.COBOL.LOAD,用于保存编译好的的程序3.编写JCL实现COBOL源程序的编译连接。
4.编写JCL以运行编译好的程序5.成功运行,结果输出如下LAB21.COBOL源程序如下IDENTIFICATION DIVISION.PROGRAM-ID. CALC1000.*ENVIRONMENT DIVISION.INPUT-OUTPUT SECTION.*DA TA DIVISION.FILE SECTION.WORKING-STORAGE SECTION.77 END-OF-SESSION-SWITCH PIC X V ALUE "N".77 SALES-AMOUNT PIC 9(5)V99.77 SALES-TAX PIC Z,ZZZ.99.*PROCEDURE DIVISION.000-CALCULATE-SALES-TAX.PERFORM 100-CALCULA TE-ONE-SALES-TAXUNTIL END-OF-SESSION-SWITCH = "Y".DISPLAY "END OF SESSION.".STOP RUN.*100-CALCULATE-ONE-SALES-TAX.DISPLAY "-----------------------------------------------".DISPLAY "TO END PROGRAM, ENTER 0.".DISPLAY "TO CALCULA TE SALES TAX, ENTER THE SALES AMOUNT.".ACCEPT SALES-AMOUNT.IF SALES-AMOUNT = ZEROMOVE "Y" TO END-OF-SESSION-SWITCHELSECOMPUTE SALES-TAX ROUNDED =SALES-AMOUNT * .0785DISPLAY "SALES TAX = " SALES-TAX.2.编译连接3.运行及结果(1)编写JCL运行程序,通过SYSIN定义Instream Data来输入数据。
.编码格式•第1~6列为序号区,用于表示行号。
行号不是必须的,也不必是顺序的,甚至可以是本机字符集中的任意字符,但正确的行号是很重要的。
•第7列为指示区,可以包含如下指示符:"*"指示本行内容为注释。
"-"指示本行代码为上一行的延续。
"D"指示本行代码为调试代码,将在启用DEBUGGING模式时被编译,未启用时将被忽略。
"/"指示编译器为源码列表开始新的一页,并且本行将被视为注释。
•第8~11列为A区。
下列项必须从A区开始:部标题(DIVISION)节标题(SECTION)段名(段标题)层指示符FD和SD,层号01和77DECLARATIVES 和END DECLARATIVESEND PROGRAM•第12~72列为B区。
作为程序主体的条目(entries),句子(sentences),语句(statements),从句(clauses)和续行(/)等都必须从B区开始。
*句法说明:节(SECTIONs)和段(paragraphs)定义了程序,它们又细分为以下部分:条目(entries):以句点(.)结尾的一系列从句。
构造于标识部、环境部和数据部。
从句(clauses):连续的COBOL字符串的有序集合,用于指定条目的某个属性。
构造于标识部、环境部和数据部。
句子(sentences):以句点(.)结尾的一个或多个语句的序列。
构造于过程部。
语句(statements):指定程序要执行的某个动作。
构造于过程部。
短语(phrases):构成从句和语句的更小单元。
2.基本结构----|----1----|----2----|----3----|----4----|----5----|----6----|----7----|----8//标识部000001 IDENTIFICATION DIVISION.000002 PROGRAM-ID. PGMNAME. //指定本程序名。
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 (标识部)主要⽤来指定源程序名字,也可以写⼊其他⽤作备忘的某些信息(如⽇期、作者等)。
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 ARE IN-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 (标识部)主要用来指定源程序名字,也可以写入其他用作备忘的某些信息(如日期、作者等)。