基于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位数据即可。
- 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-),男,江苏徐州人,中国 矿业大学计算机科学与技术学院本科生,研究方向为软件工程。