基于IBM大型机的COBOL语言的数据类型
cobol 语法
cobol 语法COBOL语法COBOL(Common Business-Oriented Language)是一种面向商业应用的编程语言,特别适用于处理大型数据和事务处理。
本文将介绍COBOL语法的一些关键要点,并展示其在实际应用中的一些特性。
一、程序结构在COBOL中,程序由多个部分组成,包括IDENTIFICATION DIVISION、ENVIRONMENT DIVISION、DATA DIVISION、PROCEDURE DIVISION等。
IDENTIFICATION DIVISION用于声明程序的名称和作者信息,ENVIRONMENT DIVISION用于定义程序的运行环境,DATA DIVISION用于定义数据,PROCEDURE DIVISION用于编写程序逻辑。
二、数据类型COBOL提供了多种数据类型,包括数字、字符、日期等。
数字类型可以是整数或浮点数,字符类型可以是单个字符或字符串。
日期类型可以表示年、月、日或日期和时间。
在使用数据类型时,需要声明变量的名称和类型,并为其分配初始值。
三、变量和常量在COBOL中,变量和常量都需要使用特定的关键字进行声明。
变量用于存储和处理数据,而常量是固定的数值或字符串。
变量和常量的名称必须符合特定的命名规则,并且需要在使用之前进行定义和初始化。
四、条件语句COBOL提供了多种条件语句,用于根据条件执行不同的程序逻辑。
其中最常用的是IF语句,可以根据条件判断是否执行某个程序块。
在条件语句中,可以使用比较运算符(如等于、大于、小于)和逻辑运算符(如AND、OR)进行条件的组合和判断。
五、循环语句COBOL提供了多种循环语句,用于重复执行某个程序块。
最常用的是PERFORM UNTIL和PERFORM VARYING语句。
PERFORM UNTIL语句会在满足条件之前一直执行程序块,而PERFORM VARYING语句会在指定的范围内重复执行程序块,并可以根据循环变量的值进行控制。
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 (标识部)主要用来指定源程序名字,也可以写入其他用作备忘的某些信息(如日期、作者等)。
浅谈cobol的几种数据类型
浅谈cobol的几种数据类型COBOL中使用PICTURE子句来定义数据类型. 主要的数据类型有以下几类, 我将分几篇文章分别讲述他们的使用和注意的地方.类型示例说明字母形 A(2) 只能使用26个字符和空格.字符形 X(2) 可以使用字符集定义的字符和数字数字形 S9V99 数字形有三个类型, binary, packed decimal, zoned decimal.数字编辑 -zz9.99 用于格式化数值输出其他如DBCS类型, 浮点形在COBOL使用很少.对于字符,字母形都比较好理解, 所占字符数, 就是其定义的个数. 对于数字编辑形,仅仅用于格式化数值, 不能进行数值运算和布尔比较. 计算字符数需要如下计算:eg: -zz99.99 所占字符数就是计算所有定义字符数, 1(-)+2(zz)+2(99)+1(.)+2(99)=8. 其中-号表示负数显示-号, 正数不显示+号. zz表示前导0, 就是不显示前面的0.eg:PICTURE Value of Data Edited Result-ZZ99.99 +123.45 123.45-ZZ99.99 -123.456 - 123.45至于详细的各类符合和数值编辑的使用, 将会专门写一章来讲述.我们详细说一下数值形,按照带不带符合,可以区分符合形, 非符合形. 安装存储类型分为binary, packed decimal, zoned decimal.以下举例详细说明,zone decimal 一般称9型. eg 9(4)V99或者s9(4)V99, 每个9占一位,符号和V不占位. 示例就分别是6. 如果这个值是1234.56,在内存存储分别是'F1F2F3F4F5F6','F1F2F3F4F5C6'. 对于无符号,就是123456的EBCDIC码,对于带符号,对于正数,最后的F为C表示正,负数为D表示负.示例就是'C6'.packed decmial 也是COMP-3型. 9(4)V99 COMP-3或者s9(4)v99 comp-3型.存储长度计算为[x/2]+1,[x/2]+1表示9的总个数+1/2的取整, 原因是做了压缩存储,这个示范就是4. 如果这个值是123456, 在内存存储分别是'0123456F'和'0123456C', 对于无符号,最后补个F表示无符合,对于带符合,如果是正数就是C,负数就是D.所有总长度就是[x/2]+1.使用的时候, 数值型之间都可以直接进行各类操作. 但需要注意的是, 如果对于未赋值的COMP-3型, 在赋值前做任何计算操作, 将会导致数据例外, 但对于zoned decimal就会才有缺省值,不会有数据例外.还有, 若是作为db2的hv, 就必须类型与DB2的类型匹配, 如果一个9型的来接受,也会造成错误.COMP型的变量常用于表示半个字或者整个字(主机一个字是4个字节), 比如半个字也就是16BIT, 对于有符合的数来说就是-32767~+32767, 所以可以用S9(5) COMP来表示, 当然也可以用S9(4) COMP来表示(因为S9(4)表示的范围是-9999到+9999, 一个字节存不下, 也需要2个自己存储), 对于一个字就是S9(8)或者S9(9).详细可以自己计算.。
第1章 COBOL简介
第1章 COBOL简介COBOL是Common Business Oriented Language的缩写,即公用面向商业语言的意思。
在系统地学习COBOL程序设计语言之前,有必要首先对COBOL有一个大致的了解。
本章将分别从背景知识、语法格式、以及实际创建COBOL程序3个方面对其进行简要介绍。
1.1 背景知识在介绍COBOL之前,首先需要了解一下大型机的概念。
大型机也叫主机、大机、mainframe等,属于一种商用高端服务器。
目前大型机主要由IBM公司所生产,最新型号为z系列大型机。
COBOL便是用于大型机上应用软件开发的最主要的程序设计语言。
大型机上的工作大体上可以分为两类,分别为系统方向和开发方向。
系统方向的分工很多,包括使用Tivoli监控系统;使用RACF进行安全管理;使用SMS进行存储管理等等。
开发方向的市场需求相对系统方向则要大得多。
对于开发方向,主要需要掌握以下知识。
❑COBOL:最主要的程序设计语言。
❑JCL:作业控制语言,调用由COBOL编写的程序。
❑VSAM:程序中通常用到的文件类型。
❑DB2:大型机上最主要的数据库,通常以COBOL语言为宿主语言。
❑CICS:用于联机交易的中间件,通常也是以COBOL语言为宿主语言。
对于以上知识,在本书中都有详细介绍。
此外,对于大型机底层的开发,还需要掌握大型机上的汇编语言。
对于大型机汇编语言,在本书中也有具体讲解。
COBOL作为大型机上最主要的程序设计语言,迄今已有40多年的历史。
然而,经过40多年的沧桑,COBOL不仅没有被淘汰,反而在当今愈加流行起来。
关于这一点,主要应该是由以下3个因素所决定的。
❑COBOL广泛应用于广泛应用于银行业、信用卡业、保险业、制造业、航空业等等。
这些领域对于稳定性的要求都是十分高的,因此从很大程度上也保证了COBOL的不可取代性。
❑COBOL自身也在不断发展和更新中。
例如,COBOL本身主要属于面向过程的语言。
cobol教程--总结篇
CHAPTER 1 COBOL 概述COBOL 是Common Business Oriented Language 的缩写。
它不仅是商业数据处理的理想语言,而且广泛用于数据管理领域,因此COBOL 语言也被称为“用于管理的语言”。
一。
COBOL 语言的特点最适于数据处理领域:算数计算量少而逻辑处理量多,输入输出量大,数据间存在着一定的逻辑关系,大量的分类排序;COBOL比较接近英语,容易懂;通用性强,易移植,COBOL结构严谨,层次分明。
二。
COBOL的组成部分:1。
标识部(IDENTIFICATION DIVIS ION):用于标识程序名。
2。
环境部(ENVIRONMENT DIVISION):用于说明程序运行的环境。
3。
数据部(DATA DIVISION):用于说明程序中涉及的所有数据。
4。
过程部(PROCEDURE DIVIS ION):是程序的核心部分,它决定计算机应进行什么操作。
三。
最简单的COBOL 程序举例:COL 1 ---6 7 8 12---72 73---80IDENTIFICATION DIVIS ION。
PROGRAM-ID。
PSAMPLE1。
ENVIRONMENT DIVISION。
DATA DIVISION。
PROCEURE DIVIS ION。
DISPLAY …THIS IS A COBOL PROGRAM.‟STOP RUN。
四。
COBOL 源程序的书写格式:第1 至6 列为“标号区”。
第7列为“续行标志区”第8至此11列,称为“A区”。
程序中有些内容如部头,节头,段头,层号01,层号77 及文件描述符FD等应从A区开始写。
第12至此72列,称为“B区”。
写程序中的正文部分。
如过程部中的句子只能从B区开始写。
第73至80列,称为“注释区”。
五。
COBOL字符集包括:数字0 --- 9 ,字母A--- Z ,a --- z , 专用字符:+ - * / = , . ; … ( ) < > $ 及空格。
COBOL语言介绍
COBOL语言介绍相对地,科学计算方面的问题往往原始数据较少,但算法复杂;而数据处理方面的问题却常常需要面对大量的初始数据进行加工,加工过程是一些极其简单的运算(有时甚至不执行计算)或逻辑判断,但需要重复许多次,最后输出大量的结果数据,这些数据还往往是一些表格,这种数据的大量和可组织性及加工过程的简单和重复性构成了这类问题的主要特性。
在数据处理领域中,对数据的加工流程可能是成批的,也可能是零星或随机的,数据通常以记录为处理单位和以块为传输单位构成,文件和记录在数据处理中具有很重要的地位。
COBOL(COmmon Business Oriented Language)——是数据处理领域最为广泛的程序设计语言。
COBOL历史COBOL(COmmon Business Oriented Language)是第一个广泛使用的高级编程语言。
在企业管理中,数值计算并不复杂,但数据处理信息量却很大。
为专门解决经企管理问题,于1959年,由美国的一些计算机用户组织设计了专用于商务处理的计算机语言COBOL,并于1961年美国数据系统语言协会公布。
经不断修改、丰富完善和标准化,已发展为多种版本。
COBOL重视数据项合输入/输出记录的处理,对具有大量数据的文件提供了简单的处理方式。
从名字可以看出,它主要用于解决商业和企业管理等领域的大量数据处理问题,又称为企业管理语言、数据处理语言等。
Cobol语言的研制始于50年代末,当时计算机的生产已进入第二代,计算机应用领域开始从数值计算扩大到数据处理。
商业和企业事务管理中需要进行处理的数据量急剧增加,迫切需要有适用于这个领域的程序设计语言,以提高编制程序的质量和速度。
Cobol语言就是在这种社会背景下应运而生的。
也就是说,Cobol已经年过半百了。
Cobol正式发布于1960年4月,称为Cobol-60。
现在最新的版本应该是Cobol -2002了,而且还在不断改进中,未来的Cobol将支持XML等Web时代的新技术。
1-COBOL简介
123456
72 73 80 (标识部) (程序名) (环境部) (数据部) (过程部)
DISPLAY ‘HELLO,COBOL!’ STOP RUN.
COBOL程序的书写格式
ANSI格式 标准COBOL程序每行80列,被分为五个区域 第1-6列为 “标号区” ▪标号是6位数字,应从小到大,但不一定连续 ▪标号只是方便查阅程序,可以省略 第7列为 “注释标志区” , “续行区” ▪使用 “*” 表示本行是注释 ▪使用 “-” 表示本行是紧接在上一行后面 续行第12列用单引号,续行内容接着书写
创建运行JCL
运行LOAD数据集中指定的可执行模块HELLO
查看运行结果
在H队列中可以查看运行结果
第三节 简单COBOL样本程序
例1: 了解COBOL程序的基本结构 例2: 变量定义,赋值,运算及输出
29
了解COBOL程序的基本结构
变量定义,赋值,运算及输出
The system flowchart for a COBOL compilelink-and-go procedure
Figure 17-01
编译链接COBOL程序的标准JCL
***************************** Top of Data *********************************** //UTE21A JOB ,'LU KUN',CLASS=A, // MSGCLASS=X,MSGLEVEL=(1,1), // NOTIFY=&SYSUID //JOBPROC JCLLIB ORDER=IGY330.SIGYPROC //*JCLLIB一般不用指定,默认从系统库中找,如SYS1.PROCLIB, ADCD.ZOSV1R5.PROCLIB //STEP1 EXEC IGYWCLG //COBOL.SYSIN DD DSN=UTE21.COBOL.SOURCE(COB1),DISP=SHR //*Source program input for the COBOL compiler. //*COBOL.SYSLIB DD DSN=UTE21.COBOL.COPYLIB,DISP=SHR //*The copy library or libraries. //*--------------------------------------------------------------------* //LKED.SYSLMOD DD DSN=UTE21.COBOL.LOAD(COB1),DISP=SHR //*LOAD Module output //*LKED.SYSLIB DD //* DD DSN=UTE21.COBOL.OBJLIB,DISP=SHR //*the SYSLIB statement concatenates a user library with the library that’s provided by the IBM //*procedure because the COBOL program uses object modules from both libraries
COBOL语言数据类型转换方法
等。
目前,这些工作大多数是在IBM ES9000主机的SAFE应用系统平台上进行,该系统联机程序和联机计息程序是用IBM 370汇编语言实现的。
为方便汇编语言读写,在VSAM文件存储的数据中,数据存放格式进行了特殊的定义。
如日期存放采用X(3)型,01年03月15日,存入EBCD码为X‘010315’。
在进行年度计息时,为了实现各种复杂的运算工作,一般采用COBOL语言来实现各种运算。
而采用COBOL语言读取X(3)型数据时,读出的是字符型数据,不能直接进行运算,必须转换为COBOL数据类型的数据后才能进行相应处理。
如刚才的X‘010315’,需要转换为内部十进制数据X‘0010315C’。
本文介绍一种用COBOL语言实现字符型X(3)与内部十进制数据相互转换的方法。
由X(3)型转换为内部十进制由于日期数据总是大于零,在COBOL语言的工作单元节定义变量DATE-FIRST 后,再追加定义COBOL语言的最小数据单元X‘000C’,即十进制12。
由于重定义DATE-CASE为DATE-CHANGE后,DATE-CHANGE是原日期数据的1000倍,于是要在过程部将DATE-CHANGE除以1000。
首先,在COBOL程序WORKING-STORAGE SECTION. 中定义如下内容:WORKING-STORAGE SECTION.01 DATE-CASE.02 DATE-FIRST PIC X(3).02 DATE-SIGN PIC 9(4) COMP VALUE 12.;定点二进制数01 DATE-CHANGE REDEFINES DATE-CASE PIC 9(9) COMP-3. ;内部十进制数据01 DATE-HEX PIC X(3). ;转换前数据01 DATE-DEC PIC S9(7)COMP-3 . ;转换后数据然后,在过程部PROCEDURE DEVISION.中加入如下语句:PROCEDURE DEVISION.MOVE DATE-HEX TO DATE-FIRST .COMPUTE DATE-CHANGE = DATE-CHANGE / 1000.MOVE DATE-CHANGE TO DATE-DEC.由内部十进制转换为X(3)型在进行相反的转换时,要消除因COBOL语言数据类型标志“C”引起的原日期数据前多加的一个0,所以需要将转换数据乘以10,再取出前6位数据即可。
COBOL培训教程-11
COBOL培训教程-11COBOL是一种过程型编程语言,最初由美国联邦政府财政部和IBM公司共同开发,主要应用于商业和金融领域。
随着计算机技术的不断发展和商业需求的变化,COBOL确立了其在企业信息系统中的重要地位。
而为了满足企业对COBOL程序员的需求,也为有志成为COBOL开发人员的IT专业人士提供了学习机会,许多培训机构开始提供COBOL培训教程,其中包括“COBOL培训教程-11”。
一、“COBOL培训教程-11”是什么?“COBOL培训教程-11”是一个专门为COBOL初学者或想深入学习COBOL的人提供的培训教程。
本教程涵盖了COBOL的基本语法、程序结构、数据类型、数据处理、文件处理、子程序等内容,同时还涉及到企业级COBOL程序的编写和调试。
本教程注重实践操作,通过编写实际的程序来帮助学习者更好地理解和掌握COBOL编程。
二、为什么要学习COBOL?COBOL是一种非常稳定、安全、高效的编程语言,被广泛应用于金融、制造、保险、医疗等行业的业务处理和管理系统。
许多企业的信息系统至今仍在使用COBOL编写的程序,需要维护和升级。
因此,学习COBOL开发有非常广阔的就业前景。
除此之外,COBOL还有以下优点:1. 语法简单易懂,学习门槛不高。
2. 可以处理大型数据,并有效地组织和管理数据。
3. 可以与其他编程语言或工具集成,提供灵活性。
4. 可以从源代码的角度审计系统,保证信息安全。
三、“COBOL培训教程-11”的学习流程1. 熟悉COBOL开发环境学习COBOL之前,需要熟悉COBOL开发环境。
现有的主流开发环境包括微软Windows、Linux、UNIX等,还需要安装COBOL编译器和调试器等开发工具。
在学习过程中需要熟练掌握开发环境的基本使用方法。
2. 学习COBOL基本语法COBOL的基本语法包括程序结构、基本语句、数据类型、运算符等。
学习者需要熟悉这些基本语法,从而能够编写简单的COBOL程序。
大型机面试,COBOL面试试题
大型机面试,COBOL面试试题经过IBM大型机培训,IBM大型机学习后,我们将面临着面试,面临着企业选择。
下面我们推出大型机面试试题供大家学习训练:Q1) Name the divisions in a COBOL program ?.A1) IDENTIFICATION DIVISION, ENVIRONMENT DIVISION, DATA DIVISION, PROCEDURE DIVISION. Q:列举COBOL的DEVISIONA:标识部,环境部,数据部,过程部Q2) What is the LINKAGE SECTION used for?A2) The linkage section is used to pass data from one program to another program or to pass data from a PROC to a program.Q:LINKAGE SECTION有什么用A:LINKAGE SECTION是用来将数据从一个程序传到另一个程序或者从一个过程(PROCEDURE)传到一个程序Q3) How do you define a sort file in JCL that runs the COBOL program?A3) Use the SORTWK01, SORTWK02,….. dd names in the step. Number of sort datasets depends on the volume of databeing sorted, but a minimum of 3 is required.Q:怎么在JCL中定义一个排序文件来跑这个COBOL程序A:用SORTWK01, SORTWK02,…..作为DATA SET NAME。
用多少取决于你要排序的数量,但是至少3个。
Q4) What is 77 level used for ?A4) Elementary level item. Cannot be subdivisions of other items (cannot be qualified), nor can they be subdivided themselves.Q:77层有什么作用A:基本层数据项,不能用做细分别的层,也不能被细分Q5) What is the difference between performing a SECTION and a PARAGRAPH? - GSA5) Performing a SECTION will cause all the paragraphs that are part of the section, to be performed. Performing a PARAGRAPH will cause only that paragraph to be performed.Q:执行一个区和一个段有什么区别A:简单来说的话就是区的概念比段大,执行一个区就要执行其内部所有段,执行段的话只执行该段。
COBOL DB2 数据类型对应关系
COBOL DB2 数据类型对应关系在COBOL内嵌入SQL语句,SELECT ... FROM ... INTO ...。
FETCH ... INTO...。
要注意DB2内的数据类型与COBOL内定义的HOST变量的数据类型的对应关系,否则会出SQL ERROR CODE -303。
++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++ DB2 | COBOL-----------------------------DECIMAL() | S9() COMP-3DATE() | X()TIMESTAMP | X()SMALLINT | X()GRAPHIC | X() 或N()++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++SQL0303N A value cannot be assigned to a host variable in theSELECT, VALUES, or FETCH statement because the datatypes are not compatible.Explanation:An imbedded SELECT or VALUES statement selects into a host variable, but the data type of the variable is not compatiblewith the data type of the corresponding SELECT-list or VALUES-list element. Both must be numeric, character, or graphic. For a user-defined data type, the host variable might be defined with an associated built-in data type that is not compatible with the result type of the FROM SQL transform function defined in the transform group for the statement. For example, if the data type of the column is date or time, the data type of the variable must be character with an appropriate minimum length.The statement cannot be processed.User Response:Verify that the table definitions are current and that the host variable has the correct data type. For a user-defined data type, verify that the associated built-in type of the host variable is compatible with the result type of the FROM SQL transform function defined in the transform group for the statement.sqlcode : -303sqlstate : 42806SQL0303N 不可将值赋给SELECT、VALUES 或FETCH语句中的主变量,因为数据类型不兼容。
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 z类型
cobol z类型COBOL Z类型是COBOL语言中的一种数据类型,用于存储整数值。
在本文中,我们将探讨COBOL Z类型的特点、用法以及一些示例。
COBOL是一种面向商业应用的编程语言,广泛用于金融、保险、银行等领域。
Z类型是COBOL语言中的一种基本数据类型,用于存储整数值。
与其他编程语言不同,COBOL中的整数类型具有一些独特的特点。
COBOL Z类型的取值范围相对较大,可以存储的整数范围通常为-9,999,999,999到9,999,999,999。
这使得COBOL Z类型非常适合处理大型数值计算和金融数据。
COBOL Z类型可以进行基本的算术运算,如加法、减法、乘法和除法。
这使得开发人员可以方便地进行数值计算和数据处理。
除了基本的算术运算,COBOL Z类型还支持一些特殊的运算。
例如,可以使用DIVIDE语句进行除法运算,并将结果存储在COBOL Z类型的变量中。
还可以使用MULTIPLY语句进行乘法运算,并将结果存储在COBOL Z类型的变量中。
COBOL Z类型还支持一些逻辑运算,如等于、大于、小于等比较运算符。
开发人员可以使用这些运算符来比较COBOL Z类型的变量,并根据比较结果来控制程序的流程。
下面是一些COBOL Z类型的示例代码:```01 WS-Z-VAR1 PIC S9(9) VALUE -123456789.01 WS-Z-VAR2 PIC S9(9) VALUE 987654321.01 WS-Z-RESULT PIC S9(9).ADD WS-Z-VAR1 WS-Z-VAR2 GIVING WS-Z-RESULT. DISPLAY "The result is: " WS-Z-RESULT.SUBTRACT WS-Z-VAR2 WS-Z-VAR1 GIVING WS-Z-RESULT. DISPLAY "The result is: " WS-Z-RESULT.MULTIPLY WS-Z-VAR1 BY WS-Z-VAR2 GIVING WS-Z-RESULT. DISPLAY "The result is: " WS-Z-RESULT.DIVIDE WS-Z-VAR2 BY WS-Z-VAR1 GIVING WS-Z-RESULT. DISPLAY "The result is: " WS-Z-RESULT.IF WS-Z-VAR1 > WS-Z-VAR2DISPLAY "WS-Z-VAR1 is greater than WS-Z-VAR2" ELSE IF WS-Z-VAR1 < WS-Z-VAR2DISPLAY "WS-Z-VAR1 is less than WS-Z-VAR2" ELSEDISPLAY "WS-Z-VAR1 is equal to WS-Z-VAR2"END-IF.```通过以上示例代码,我们可以看到COBOL Z类型在进行数值计算和逻辑比较方面的灵活性和强大功能。
基于IBM大型机的COBOL语言的数据类型
[1] CAROL BAROUDI.COBOL 从 入 门 到 精 通 [M].邱 仲 潘 ,译.北 京 : 电 子 工 业 出 版 社 ,2000.
[2] 郭彩 虹,李 伟.程 序 设 计 类 课 程 教 学 改 革 之 我 见 [J].浙 江 树 人 大 学 学 报 ,2005(5). (责任编辑:杜能钢)
9 占一位,符号和 V 不占位。 示例就分别是 6。 如果这个值是
1234.56,在 内 存 存 储 分 别 是 ‘F1F2F3F4F5F6 ’,‘F1F2F3F4F5C-
6’。 对于无符号,就是 123456 的 EBCDIC 码,对于带符号,对于
正数,最后的 F 为 C 表示正,负数为 D 表示负。 示例就是‘C6’。
虽然传统程序设计语言的讲授经常会受到诟病cobol语言中比较独特之处如固定格式各种繁多的编辑型数据类型以及独特的表处理方法等必须进行具体的钻研同时也应该意识到cobol一门既古老又充满活力的语言它必将伴随ibm主机的辉煌而继续辉煌
第8卷%第11期 2009年 11月
软件导刊 Software Guide
2 结束语
本文源于多年的基于主机的 COBOL 教学积累, 实际开发 中编程者要多注 意 COBOL 特 有的 数 据 类 型 ,在 IT 业,没 有 哪
一款产品能够像 IBM 的大型主机那样拥有 40 年的历史 ,同时 又在今天竞争激烈的市场中仍然获得用户的青睐。 目前,全世 界绝大部分重要数据仍然存储于 IBM 大型主机之上 , 全世界 大部分关键程序仍然在 IBM 大型主机上运行 。 虽然传统程序 设计语言的讲授经常会受到诟病, 但 COBOL 语言中比较独特 之处如固定格式、各种繁多的编辑型数据类型以及独特的表处 理方法等,必须进行具体的钻研,同时也应该意识到 COBOL 是 一门既古老又充满活力的语言 , 它必将伴随 IBM 主机的辉煌 而继续辉煌。 如何根据市场经济发展的需要,从推动我国软件 业建设的角度出发,在软件开发及外包产业上走出一条自主创 新之路,为社会培养出一批能与世界接轨、具有竞争力的高素 质软件人才,还需要不断地探索。
大型机学习002--大型机介绍及COBOL(1)
大型机是一种计算机(personal computer/minicomputer/mainframe/supercomputer)大型机的优点:高速(皮秒级,10^-12 )专注于大型数据的处理和数据存储高度的安全性批处理(BA TCH PROCESS)我们要学的:/COBOL(Common Business-Oriented Language 面向商业的通用语言)/JCL (Job Control Language工作控制语言)/VSAM (VIRTUAL STORAGE ACCESS METHOD 虚拟数据存取方法)/DB2 (IBM Database II IBM 数据库)/CICS (CUSTOMER INFORMA TION CONTROL SYSTEM 客户信息控制系统)COBOL(1)历史1957---ANSI-COBOL-----COBOL68-----74----85------98(面向对象的)特性高级语言(high level)、用户友好性(user friendly)、移植性(translation)、结构化语言(structered language)编程过程一般过程:程序开始(类似于头文件)、变量定义、写处理指令(输入、计算、输出)、结束编程COBOL:IDENTIFICATION DIVISION(识别部)、ENVIRONMENT DIVISION环境部、DA TA DIVISION数据部、PROCEDURE DIVISION过程部部的细分:divisions→sections→ paragraphs→sentences→statements编程格式:1-6 序列列:为“标号区”(sequence area)。
可以填写6个数字。
标号由程序编写者自定,标号应按由小到大的顺序,但不一定连续。
标号区内可以写标号也可以不写标号(标号区空白)。
标号对源程序的执行结果没有任何影响。
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语言知识点
1.DATA ITEM NAMING RULES:长度为30个字节;字符包括A-Z,a-z,0-9和‘-’;横线不能出现在第一个或最后一个;COBOL 关键字用;至少包含一个字符。
2.DATA STRUCTER LEVEL NUMBER77定义一个独立的变量66重命名88定义条件名3.DATA TYPEAlphabetic, Alphanumeric, Alphanumeric-edited, Numeric, Numeric-editedP-1,COMP-2,COMP-3,COMP,COMP-5COMP-1:指定内部浮点项目(双精度),8个字节长COMP-2:指定内部浮点项目(单精度),4个字节长COMP-3:压缩十进制(1个字节有两位)COMP-4(COMP):二进制存储COMP-3是IBM Mainframe特有,特意将一下:COMP-3 数据类型同样以二进制的形式保存在文件中,其占位数计算方法如下:占位数 =[ 定义长度 /2+1] [] 表示整COMP-3 数据在文件中存储形式如下例:例如:定义形式 -- 9(4) COMP-3, 占位数 =[ 定义长度 /2+1]=3赋值: 1521 存储结果: 01 52 1F(F表示正数)赋值: 0 存储结果: 00 00 0F COMP-3 带有符号位时,赋值为正时,最后半个字节为 16 进制 C ;赋值为负时,最后半个字节为 16 进制D例如:定义形式 -- S9(4) COMP-3, 占位数 =[ 定义长度 /2+1]=3赋值: -1521 存储结果: 01 52 1D (D 表示负数 )赋值: 1521 存储结果: 01 52 1C注意:当 COMP-3 的数据定义无 S ,赋予负值时,最后半个字节仍为 F ,即无法显示负数5.COBOL中常量ZERO(ZEROS,ZEROES):数字令或者字符“0”SPACE(SPACES):空格HIG-VALUE(HIGH-VALUES):将对应的二进制码全部置为1LOW-VALUE(LOW-VALUES):将对应的二进制码全部署为0QUOTO(QUOTOS):引号ALL:相应字符连接而成的字符串6.Arithmetic FunctionFUNCTION SUM(17,21,4.5,-6):计算总和FUNCTION SQRT(11):开平方FUNCTION INTEGER(4.5):取整FUNCTION INTEGER-PART(4.5):四舍五入7.Alphabetic FunctionFUNCTION CHAR(65):ACISS码转换FUNCTION LENGTH('KKKKK'):判断字符长度FUNCTION NUMVAL('+109'):字符转换成数字FUNCTION REVERSE('ABCD'):逆序排列FUNCTION ORD('A'):ACISS码转换8.Range FunctionsFUNCTION MAX(-21,15,2.4):选取最大值FUNCTION MIN(-21,15,2.4):选最小值FUNCTION ORD-MAX:最大值的位置FUNCTION ORD-MIN:最小值的位置FUNCTION RANGE1、COBOL简介COBOL是Common Business-Oriented Language(公用面向商业的语言)的缩写。
cobol语法
COBOL语言第一章COBOL语言的概述COBOL是Common Business Oriented Language (通用商业语言)缩写。
COBOL程序的结构每一个程序都应包括四个部分:IDENTIFICATION DIVISION (标识部)用来指定源程序名和作为备忘的某些信息。
ENVIRONMENT DIVISION (环境部)指出程序中用到的数据文件名与计算机系统的设备对应关系指定程序所用内存区大小等。
DATA DIVISION (数据部)程序中所用到的全部数据包括输入输出和中间数据。
PROCEDURE DIVISION (过程部)程序要执行的指令,即主处理部分。
程序中四大部分缺一不可。
节和段除标识部没有节,每个部下面有若干个节(SECTION)。
每一节下面可包括若干段。
数据部下面有一个WORKING-STORAGE SECTION作单元节。
程序结构示意如下:IDENTIFICATION DIVISION段┇┇ENVIRONMENT DIVISION节段┇节┇DATA DIVISION节描述体┇┇┇PROCEDURE DIVISION(节)段┇┇书写格式COBOL 程序纸每行有80列,一行分为几个区COBOL 每个句子后要加句号“.” 象 IF ELSEEND-IF. 要在END-IF 后面加句号,中间不加。
不区分大小写运算符和等号左右两边留空格。
( )左右两边留空格。
表意常量(又称字义常量,象征常数或赋形常数。
Figurative Constant )它用某些英文字(保留字)来代表某些特定的常值。
如用ZERO 代表数值0,用SPACE 代表空格。
从这些字的意思可以知道它们所代表的是什么值,因此叫表意常量或字义常量。
MOVE ZERO TO AMOVE 0 TO A表意常量可以出现在程序中使用数值常量或非数值常量的地方。
读者仔细阅读表1.2所列举的用法举例,就可清楚表意常量的作用。
COBOL编程语言的特点与应用
COBOL编程语言的特点与应用COBOL编程语言是一种面向企业应用的高级编程语言,其名字是Common Business Oriented Language的首字母缩写,可以用于处理大量的数据。
COBOL作为一种古老的编程语言,至今仍然有着广泛的应用,尤其是在金融、保险、银行、会计等行业中,成为了不可替代的一种技术。
一、COBOL的特点1. 适合处理大规模数据COBOL最主要的特点就是适合处理大规模数据,其设计初衷就是为了处理大型商务应用程序。
COBOL在设计上非常灵活,可以处理大范围的数据类型,支持使用变量、数组等数据结构,可以处理几百万行的代码。
2. 面向过程的编程方式COBOL是一种面向过程的编程语言,它支持结构化编程,并采用分层分级的思路将代码模块化,提高了程序的可维护性和可扩展性。
COBOL通过使用条件语句和循环结构等语句来实现程序的逻辑处理和流程控制。
3. 易于阅读和可维护性强COBOL的语法结构非常简单,其代码具有很强的可读性,程序员可以轻松理解代码的结构和逻辑。
此外,COBOL的代码规范性也很高,它有着许多的规则和规范,程序员需要遵循这些规范编写代码。
这使得COBOL程序的可维护性非常高,即使在软件开发周期长的情况下,程序员也可以轻松维护COBOL代码。
4. 操作系统兼容性好COBOL具有很高的兼容性,可以在不同的操作系统下运行,包括Windows、Linux、IBM、UNIX等操作系统,其虚拟机的可移植性很强。
这意味着程序员可以在不同的操作系统下编写COBOL程序,并对程序进行测试和部署。
二、COBOL的应用COBOL在过去的几十年里已经广泛应用于许多商业领域,其中包括金融服务、保险、银行、零售和对大规模交通系统的管理等。
以下是COBOL的应用领域的一些例子。
1. 银行和金融COBOL最初是为了银行和金融服务的应用程序而设计的,因此在银行领域有着广泛的应用。
银行和金融机构使用COBOL编写程序来管理账户、贷款、交易记录等,它可以很容易地处理大量数据以及需要高效的事务处理。
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区”程序正⽂部分,过程部语句必须从该区开始书写。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字 符 数 就 是 计 算 所 有 定 义 字 符 数 ,1(-)+2(zz)+2(99)+1(.)+2
(99)=8。 其中-号表示负数显示-号,正数不显示+号。 zz 表示前
导 0,就是不显示前面的 0。
举例来说:
PICTURE
Value of Data
Edited Result
-ZZ99.99
+123.45
0 引言
进入 21 世纪, 信息技术将整个世界经济的发展带入了一 个前所未有的高速增长时期,与此同时,由于各地区软件开发 效率及劳动力成本的不同,软件服务外包行业快速成长,已成 为我国不少城市的支柱产业。
笔者从事多年金融证券业软件外包工作,深刻感受到研究 外国已广泛应用但国内研究相对较薄弱的在 IBM 大型机上的 COBOL 开发是很有意义的一件事情。 几年来,笔者对公司新进 员工培训了基于 LINUX 上的各种语言开发培训, 多年的培训 经历让我体会到 ,由于 COBOL 自身具有向自然语言靠近的 特 点,因此 COBOL 语法教学并不难,比较难的环节是如何让初学 者学以致用。 原因有三:其一,大型主机是一个全新的系统环 境 ,初 学 者 平 时并 没 有 机 会 接 触 ;其 二 ,COBOL 源 程 序 的 编 写 格式、程序布局特别是其特有的数据类型有它历史遗留的独特 性, 与初学者平时接触的 C 等语言有较大的区别; 其三, COBOL 是面向商业的开发语言, 离开了具体的应用就失去了 价值。 因此基于主机的 COBOL 实验首先应该消除初学者对编 程语言数据类型的陌生感, 其次要抓住 COBOL 语言的语法特 点,最后,开发练习不能以普通的计算为主设计,而应该尽量模 拟一些商业案例。
ecimal,zoned decimal.
数字编辑 -zz9.99 用于格式化数值输出
其他如 DBCS 类型,浮点形在 COBOL 使用很少。
对于字符,字母形都比较好理解,所占字符数,就是其定义
的个数。对于数字编辑形,仅仅用于格式化数值,不能进行数值
运算和布尔比较。 计算字符数需要计算。 比方说:-zz99.99 所占
123.45
-ZZ99.99
-123.456
-123.45
我们再详细说一下数值形,按照带不带符合,可以区分符
合 形 , 非 符 合 形 。 安 装 存 储 类 型 分 为 binary,packed decimal,
zoned decimal。
zone decimal 一般 称 9 型.eg9(4)V99 或 者 s9(4)V99,每 个
(中国矿业大学 计算机科学与技术学院,江苏 徐州 221116)
摘 要:旅行商问题作为 NP 难题的典型代表,从诞生以来一直都是计算机算法理论研究的热点话题 ,各种针对该问
题的算法层出不穷。 对相关的代表性算法进行了介绍与总结,在分析各种算法的特点之后,提出了各类算法的改进
方向,对旅行商问题的研究进行了展望。
参考文献:
[1] CAROL BAROUDI.COBOL 从 入 门 到 精 通 [M].邱 仲 潘 ,译.北 京 : 电 子 工 业 出 版 社 ,2000.
[2] 郭彩 虹,李 伟.程 序 设 计 类 课 程 教 学 改 革 之 我 见 [J].浙 江 树 人 大 学 学 报 ,2005(5). (责任编辑:杜能钢)
者对主机平台的陌生感,接受 COBOL 语言的编程风格和体会 COBOL 在商业应用开发方面的优势。 分析了基于主机
的 COBOL 语言的数据类型分析,并给出了相应的实验大纲以供参考。
关 键 词 :COBOL;数 据 类 型
中 图 分 类 号 :TP312
文 献 标 识 码 :A
文 章 编 号 :1672-7800 (2009)11-0066-01
9 占一位,符号和 V 不占位。 示例就分别是 6。 如果这个值是
1234.56,在 内 存 存 储 分 别 是 ‘F1F2F3F4F5F6 ’,‘F1F2F3F4F5C-
6’。 对于无符号,就是 123456 的 EBCDIC 码,对于带符号,对于
正数,最后的 F 为 C 表示正,负数为 D 表示负。 示例就是‘C6’。
城市且仅一次,如何规划一条路径,使该旅行商的花费最少。 TSP 还是一个典型的组合优化问题,是诸多领域内出现的多种 复杂问题的集中概括和简化形式, 并且已成为各种启发式的 搜索、优化算法的间接比较标准。 因此,快速、有效地解决 TSP 有着重要的理论价值和极高的实际应用价值。
1 求解TSP的算法介绍
还有, 若是作为 db2 的 hv, 就必须类型与 DB2 的类型匹 配,如果一个 9 型的来接受,也会造成错误。 COMP 型的变量常 用于表示半个字或者整个字(主机一个字是 4 个字节),比如半 个字也就是 16BIT,对于有符合的数来说就是-32767-+32767, 所以可以用 S9(5)COMP 来表示,当然也可以用 S9(4)COMP 来 表示(因为 S9(4)表 示 的 范围 是-9999 到+9999,一 个 字 节存 不 下,也需要 2 个自己存储),对于一个字就是 S9(8)或者 S9(9)。 详细可以自己计算。
1.1 穷举法 TSP 的描述虽然简 单 ,解决 起 来 却 很 困 难 ,最 简 单 思 路 是
6C’,对于 无 符 号 ,最 后 补 个 F 表 示 无 符 合 ,对 于 带 符 合 ,如 果 是正数就是 C,负数就是 D。 所有总长度就是[x / 2]+1。
使用的时候,数值型之间都可以直接进行各类操作。 但需 要注意的是 ,如果对于未赋值的 COMP-3 型,在赋值前做任何 计算操作,将会导致数据例外 ,但对于 zoned decimal 就会才有 缺省值,不会有数据例外。
2 结束语
本文源于多年的基于主机的 COBOL 教学积累, 实际开发 中编程者要多注 意 COBOL 特 有的 数 据 类 型 ,在 IT 业,没 有 哪
一款产品能够像 IBM 的大型主机那样拥有 40 年的历史 ,同时 又在今天竞争激烈的市场中仍然获得用户的青睐。 目前,全世 界绝大部分重要数据仍然存储于 IBM 大型主机之上 , 全世界 大部分关键程序仍然在 IBM 大型主机上运行 。 虽然传统程序 设计语言的讲授经常会受到诟病, 但 COBOL 语言中比较独特 之处如固定格式、各种繁多的编辑型数据类型以及独特的表处 理方法等,必须进行具体的钻研,同时也应该意识到 COBOL 是 一门既古老又充满活力的语言 , 它必将伴随 IBM 主机的辉煌 而继续辉煌。 如何根据市场经济发展的需要,从推动我国软件 业建设的角度出发,在软件开发及外包产业上走出一条自主创 新之路,为社会培养出一批能与世界接轨、具有竞争力的高素 质软件人才,还需要不断地探索。
第8卷%第11期 2009年 11月
软件导刊 Software Guide
Vol.8 No.11 Nov. 2009
基于 IBM 大型机的 COBOL 语言的数据类型
喻旸
(重庆正大软件集团 华日软件公司,重庆 401121)
摘 要:在 IBM 大型机上学习 COBOL 语言就是为了应用开发 ,COBOL 语法教学本身不难 ,难点在于如何消除初学
作者简介:喻旸(1981-),男,重庆人,硕士,重庆正大软件集团华日软件有限公司对日事业部副部长 ,研究方向为对日软件 外包 行业 发 展 、软 件工 程。
第8卷%第7期 2009年 7月
软件导刊 Software Guide
Vol.8 No.7 Jul. 2009
旅行商问题求解算法综述
高 珩,鲍 鹏
packed decmial 也是 COMP-3 型。9(4)V99COMP-3 或者 s9
(4)v99comp-3 型。 存储长度计算为[x / 2]+1,[x / 2]+1 表示 9 的
总个数+1 / 2 的取整,原因是做了压缩存储,这个示范就是 4。 如
果这个值是 123456,在内存存储分别是‘01BOL 中使用 PICTURE 子句来定义数据类型。 主要的数 据类型有以下几类,下面将具体分类讲述它们的使用和注意的 地方。
类型
示例
说明
字母形 A(2) 只能使用 26 个字符和空格。
字符形 X(2) 可以使用字符集定义的字符和数字
数字形 S9V99 数字形有三个类型,binary,packed d
关键词:旅行商问题;NP 难题;算法综述;改进方向
中 图 分 类 号 :TP301.6
文 献 标 识 码 :A
文 章 编 号 :1672-7800 (2009)11-0067-02
0 引言
旅行 商 问 题 (TSP)又 称 为 旅 行 推 销 员 问 题 、货 郎 担 问 题 , 简称为 TSP 问题。 Gaery 已经证明 TSP 问题是 NP 难题, 它是 VRP 的特例,是最基本的路线问题,该问题可以归结为单一旅 行者由起点出发,通过所有给定的需求点之后,最后再回到原 点的最小路径成本求解问题,可以这样来描述旅行商问题:有 N 个城市由公路相互连通,从任一城市到另外城市都要支付 相应的费用,一个销售商从其中一城市出发,访问其他 N-1 个
作者简介:高珩(1987-),男,山东莱阳人,中国矿业大学计算机科学与技术学院本科生,研究方向为软件工程 ;鲍鹏(1987-),男,江苏徐州人,中国 矿业大学计算机科学与技术学院本科生,研究方向为软件工程。