主機(jī)學(xué)習(xí)-課程第3章cobol程序結(jié)構(gòu)_第1頁
主機(jī)學(xué)習(xí)-課程第3章cobol程序結(jié)構(gòu)_第2頁
主機(jī)學(xué)習(xí)-課程第3章cobol程序結(jié)構(gòu)_第3頁
主機(jī)學(xué)習(xí)-課程第3章cobol程序結(jié)構(gòu)_第4頁
主機(jī)學(xué)習(xí)-課程第3章cobol程序結(jié)構(gòu)_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余51頁可下載查看

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

D

U

T單位:大連理工大學(xué)作者:

,,1大型主機(jī)平臺系統(tǒng)應(yīng)用開發(fā)基礎(chǔ)教育部-IBM精品課程D

U

T2第三章COBOL程序結(jié)構(gòu)3.1標(biāo)識部3.2環(huán)境部3.3數(shù)據(jù)部3.4過程部D

U

T3第一節(jié)標(biāo)識部標(biāo)識部概述標(biāo)識部的必寫部分標(biāo)識部的任選部分標(biāo)識部樣例D

U

T標(biāo)識部是COBOL程序的第一部分,用來為程序設(shè)定標(biāo)志,并加入備忘信息作備忘。如:作者,寫程序的日期,

程度等標(biāo)識部下面不設(shè)置節(jié),只設(shè)置段標(biāo)示部的必寫部分程序標(biāo)識段:PROGRAM-ID.

程序名.書寫格式:IDENTIFICATION

DIVISION.

Or

ID

DIVISION.D

U

TFormatIDENTIFICATION

DIVISION.PROGRAM-ID.

program-name.[AUTHOR. [comment-entry]

…][other

optional

paragraphs]AUTHOR.

記錄編程員

,可增加榮譽(yù)感和責(zé)任感INSTALLATION.

指定設(shè)計(jì)該程序的公司或部門DATE-WRITTEN.

記錄每次程序編寫,修改日期PILED.

記錄程序被編譯的日期SECURITY.

程度,列出誰

該程序,該段只是記錄并不實(shí)際保護(hù)代碼D

U

TIDENTIFICATION

DIVISION.PROGRAM-ID.AUTHOR.INSTALLATION.DATE-WRITTEN.EXAM32.JACK.DLUT-IBMCENTER.2009/5/1.PILED.

2009/5/1.IBMUSER

TE002 CAN

USE

THIS

PROGRAM.SECURITY.D

U

T7第二節(jié)環(huán)境部環(huán)境部概述配置節(jié)輸入輸出節(jié)環(huán)境部樣例D

U

T環(huán)境部用來說明程序運(yùn)行的軟硬件環(huán)境,是COBOL程序一與設(shè)備相關(guān)的部分,將程序中用到的 與外部設(shè)備建立起聯(lián)系,環(huán)境部包括兩個(gè)節(jié):

配置節(jié)(CONFIGURATION)輸入輸出節(jié)(INPUT-OUTPUT)CONFIGURATION

SECTIONDescribes

computer

used

to

compile/execute

programOptional

and

mended

that

you

omit

itINPUT-OUTPUT

SECTIONDescribes

input

and

output

files

and

devices

used

by

programRequired

for

all

programs

using

files都是可選的,當(dāng)使用外部文件時(shí)必寫輸入輸出節(jié)D

U

T配置節(jié)包含三個(gè)段PUTER.computer-name.標(biāo)識對該COBOL程序進(jìn)行編譯的計(jì)算機(jī)PUTER.

computer-name.標(biāo)識運(yùn)行該COBOL程序的計(jì)算機(jī)SPECIAL-NAMES.用來通知系統(tǒng)把原來規(guī)定的設(shè)備名或符號改為用戶自己指定的名字或符號;如:SPECIAL

NAMES.[DECIMAL-POINT

IS

COMMA.][CURRENCY

SIGN

IS

非數(shù)值常量.][

IS

助憶名.]CURRENCY

SIGN

IS

‘$’DECIMAL-POINT

IS

COMMA$是默認(rèn)貨幣符號,可使用非數(shù)值常量用逗號代替小數(shù)點(diǎn)D

U

T程序中如果用到輸入輸出文件,就在該節(jié)把程序中的

文件和外部設(shè)備聯(lián)系起來輸入輸出節(jié)包括兩個(gè)段FILE-CONTROL.(文件控制段)程序中處理的每個(gè)文件在這里都有一個(gè)SELECT語句每個(gè)SELECT語句都定義了文件名和DD名的對應(yīng)關(guān)系I-O-CONTROL.(輸入輸出控制段)I-O-CONTROL段指定目標(biāo)程序運(yùn)行時(shí)多個(gè)文件共用一個(gè)內(nèi)存區(qū)以節(jié)省內(nèi)存D

U

TFormatINPUT-OUTPUT

SECTION.FILE-CONTROL.SELECT

file-name-1ASSIGN

TO

implementor-name-1例:INPUT-OUTPUT

SECTION.FILE-CONTROL.SELECT

IND1

ASSIGN

TO

INPUTFILESELECT

OUTD1

ASSIGN

TO

OUTPUTFILE.注:IND1和OUTD1是 名,用于COBOL程序INPUTFILE和OUTPUTFILE是JCL中的DDNAME,用于指定待操作的數(shù)據(jù)集D

U

T12第三節(jié)數(shù)據(jù)部數(shù)據(jù)部的作用和結(jié)構(gòu)數(shù)據(jù)的層次和層號工作單元節(jié)文件節(jié)D

U

T數(shù)據(jù)部是整個(gè)COBOL源程序

一描述數(shù)據(jù)的部分。所有數(shù)據(jù)項(xiàng)都應(yīng)在數(shù)據(jù)部中對其屬性進(jìn)行描述數(shù)據(jù)類型

(數(shù)值/字符)

形式(長度)數(shù)據(jù)項(xiàng)間的關(guān)系(層次和層號)文件與記錄的關(guān)系D

U

T

COBOL中把有從屬關(guān)系的數(shù)據(jù)用層次關(guān)系來描述,數(shù)據(jù)的層次結(jié)構(gòu)是:字段(Field)

如客戶ID,客戶

等記錄

(record)

一組相關(guān)的字段如:一個(gè)客戶的所有字段文件

(file)

→一組相關(guān)的記錄;若干條客戶記錄組成的文件D

U

TFILE

AND

RECORDNameJACKJONESPETERALLICESex

birthday

FolkM

19800110HANF

19830382CHAOM

19781230MENGF

19900462TAI文件:

.datRECORDFIELDD

U

T個(gè)人的基本生年月日年月日01_INF.03

NAME-103

SEX-1PIC

X(8).PIC

X(2).05YEAR-1PIC9999.05MONTH-1PIC99.0305FOLKDAY-1PICPICX(5).99.03

BIRTHDAY-1.民族帶層號的數(shù)據(jù)項(xiàng),分兩類:初等項(xiàng)(Elementary

Item):不能在分,后必須跟PIC子句;組合項(xiàng)(Group

Item):下面包含子數(shù)據(jù)項(xiàng),不跟PIC子句。D

U

T1.

1

to

30

charactersLetters,

digits,

hyphens

(-)

onlyNo

embedded

blanksAt

least

one

alphabetic

characterMay

not

begin

or

end

with

hyphenMay

not

be

COBOL

wordGuidelinesUse

meaningful

data-names

that

describe

contents

of

fieldAmount-Due-Ininstead

of

A1Use

prefixes

or

suffixes

in

data-names

when

appropriate-IN

and

-OUT

for

fields

(Emp-Salary-IN

and

Emp-Salary-OUT)-FILE

and

-RECORD

for

file

and

record

names

(Emp-File

and

Emp-Record)D

U

T1.

Date-Of-BirthAmount$OutSection–

-Name98-6Time

outD

U

T文件節(jié)

(FILE

SECTION)Defines

all

input

and

output

files,

records,

fieldsRequired

for

any

program

that

uses

files,

typically

batch

programs工作單元節(jié)

(WORKING-STORAGE

SECTION)Defines

constants,

end-of-file

indicators

and

work

areasDefines

fields

not

part

of

input

or

output

files聯(lián)接節(jié)(LINKAGE

SECTION)描述程序調(diào)用傳遞的數(shù)據(jù)項(xiàng)報(bào)表節(jié)(REPROT

SECTION):為了完成報(bào)表制表功能,此節(jié)用來規(guī)定欲輸出報(bào)表的“體裁”,設(shè)計(jì)各報(bào)表欄的打印形式和方法等。D

U

TOne

FD

for

each

SELECT

statement

in

ENVIRONMENT

DIVISIONFD

file-nameRECORD

ISLABELOMITTEDRECORDS

ARESTANDARDRECORD

CONTAINS

integer-1CHARACTERSBLOCK

CONTAINSinteger-2

RECORDS

.D

U

TLABEL

RECORD

IS

STANDARD

/

OMITTED磁盤(帶)文件帶有標(biāo)號記錄,應(yīng)定義為‘標(biāo)準(zhǔn)的標(biāo)號記錄’;打印文件沒有標(biāo)號記錄的,應(yīng)定義為‘標(biāo)號記錄省略’,一般不寫;BLOCKS

CONTAINSclause組塊情況,一般不寫,或?yàn)?,系統(tǒng)自動(dòng)決定;一般不寫;RECORD

CONTAINS

clause定義每個(gè)記錄包含的字符數(shù);可選的;DATA

RECORD

IS

RECORD-NAME指定該文件所使用的記錄的名稱D

U

T每個(gè)FD后,緊跟記錄的描述信息;記錄名在01層定義例如:DATAFILEFDDIVISION.SECTION.ACCOUNTS-RECEIVABLERECORD

CONTAINS

80

CHARACTERS.DATA

RECORD

IS

CUST-REC.01

CUST-REC.02

ACCOUNT

PIC

9(6).02

FILLER

PIC

X(3).02

AMOUNT

PIC

9(6).02

NAME

PIC

X(65).D

U

T層次規(guī)定如下:描述層次結(jié)構(gòu)的層號從01

~

49,層號越大層次越低;層號66、77、88有特殊用途從屬項(xiàng)的層號比其上屬項(xiàng)的層號大,但層號不必連續(xù)如果多個(gè)數(shù)據(jù)項(xiàng)都從屬于同一組合項(xiàng)但互不從屬,則這幾個(gè)數(shù)據(jù)項(xiàng)應(yīng)具有相同的層號如果多個(gè)數(shù)據(jù)項(xiàng)都不屬于同一組合項(xiàng)且互不從屬,則這幾個(gè)數(shù)據(jù)項(xiàng)可以有不同的層號一個(gè)層號為N的組合項(xiàng)包括它下面所有層號比它大的數(shù)據(jù)項(xiàng),直到遇到小于或等于N的層次為止D

U

TSELECT

names

file,

assigns

it

to

hardware

deviceFD

describesfile01

names

record02-49

describesfields

withinrecordItems

defined

with

a

level

number

are

one

of

two

typesElementary

item

-

field

that

is

not

further

subdividedMust

include

a

PICTURE

clauseGroup

item

-

field

that

is

further

subdividedHas

no

PICTURE

clause01

Employee-Rec-In.05

Name-In

…10

-Name-In12

Last-Name-In05

Annual-Salary-In(Picture

clause)(Picture

clause)(Picture

clause)D

U

T指定數(shù)據(jù)的類型指定數(shù)據(jù)的大小D

U

T字母型(Alphabetic)Only

letters

or

blanksFor

name,

item

description,

etc.數(shù)值型(Numeric)Only

digitsFor

fields

used

in

arithmetic

operations混合型,(字符型,Alphanumeric)Any

character

-

letters,

digits,

special

charactersFor

an

address

like

123

N.

Main

St.A

for

alphabeticX

for

alphanumeric9

for

numericD

U

T字段大小的定義方式:通過在PICTURE中A,X,9的數(shù)目來指定:01

Cust-Rec-In.05Cust-ID-InPicture

XXXX.05Amt-InPicture

99999.用A,X

or

9后面括號中的數(shù)值指定

01

Cust-Rec-In.05Cust-ID-InPicture

X(4).05Amt-InPicture

9(5).D

U

T‘9’

描述符:表示該位置可以放入一個(gè)0

~

9之間的數(shù)字描述 數(shù)值

內(nèi)存中表示77XPIC98877YPIC9(5)45600456注意:不能輸入小數(shù)部分,如果輸入則被舍棄不能輸入負(fù)數(shù),如果輸入則負(fù)號被舍棄,即存入絕對值D

U

T‘V’

描述符:

數(shù)據(jù)結(jié)構(gòu)中隱含的小數(shù)點(diǎn)的位置,小數(shù)點(diǎn)不占內(nèi)存單元,例如:描述77

A

PIC

9V977

B

PIC

9(3)V9(2)數(shù)值7.7789內(nèi)存中表示7778900注意:V在描述符最后等價(jià)于無小數(shù)點(diǎn):99V=99傳送數(shù)據(jù)時(shí),按小數(shù)點(diǎn)對齊原則:多余數(shù)值位被截?cái)?,不足位補(bǔ)’0’運(yùn)算時(shí),按小數(shù)點(diǎn)位置對準(zhǔn)進(jìn)行運(yùn)算輸出時(shí),只顯示內(nèi)存中各字節(jié)的內(nèi)容,不顯示小數(shù)點(diǎn)D

U

T‘A’

描述符:指定字母型數(shù)據(jù),只存放字母和空格77APICA(3)VALUE‘ABC’77BPICA(3)VALUE‘123’//錯(cuò)誤77CPICA(3)VALUE‘

***

’//錯(cuò)誤通常所取代D

U

T當(dāng)字符串中包含特殊字符時(shí)使用,例如:‘Thierry

Henry’

‘2006-10-1’‘X’描述符:將任意字符77

S

PIC

X(12)到數(shù)據(jù)項(xiàng)VALUE ‘BEIJING

2008’可以用字母和數(shù)字描述符代替部分字符型數(shù)據(jù),例如:77

S

PIC

A(8)9(4)

VALUE ‘BEIJING

2008’D

U

TNumeri

eralExamples:

.05

5280

199.99Constant

used

for

arithmetic

operations由數(shù)字0

~

9

,正負(fù)號和小數(shù)點(diǎn)組成的序列;數(shù)值長度不超過18位(不包含正負(fù)號和小數(shù)點(diǎn))?

+,-只能出現(xiàn)在最左側(cè),小數(shù)點(diǎn)不能在最右側(cè);主要用于算術(shù)操作小數(shù)點(diǎn);如:123,

45.67,-890,

.125Nonnumeric

(alphanumeric)

literalExamples:

“INVALID” “Enter

your

name”Constant

used

for

all

operations

except

arithmetic用匹配的引號(單,雙)括起來的字符串長度不超過160位’125’和125

不同,‘125’不能參與算術(shù)運(yùn)算,不能MOVE到9’sFigurative

constantSPACES?ZEROSword

for

commonly

used

valuesD

U

T表意常量(Figurative

constant)表意常量代表的值ZERO,

ZEROS,

ZEROES表示一個(gè)或多個(gè)零字符SPACE,

SPACES表示一個(gè)或多個(gè)空格HIGH-VALUE,HIGH-VALUES表示一個(gè)或多個(gè)具有最高值的字符(每個(gè)字符二進(jìn)制為11111111)LOW-VALUE,LOW-VALUES表示具有最低值的字符(每個(gè)字符二進(jìn)制為00000000)ALL表示由該量組成的字符串QUOTE,

QUOTES表示一個(gè)或多個(gè)引號D

U

TD

U

TD

U

T程序中用于非文件輸入輸出的數(shù)據(jù)項(xiàng),類似于其他語言中的變量定義工作單元中描述的數(shù)據(jù)項(xiàng)分為:獨(dú)立的數(shù)據(jù),以層號77開頭組合項(xiàng):以01到49之間的一個(gè)數(shù)字作為開頭工作單元中的數(shù)據(jù)項(xiàng)可以用VALUE子句賦初值D

U

TSECTION.DATA

DIVISION.WORKING-STORAGE77

NAME

PIC9(3)

VALUE‘VAN’.數(shù)據(jù)部頭工作單元節(jié)變量層次數(shù)變量名稱表示要定義一個(gè)變量變量的類型和長度D

U

T定義初值;沒有指定VALUE,則數(shù)據(jù)項(xiàng)初值不定;VALUE只能用于WORKING-STORAGE

SECTION數(shù)字常量和表意常量ZEROS可用于PIC9

字段:01

WS-Tax-Rate PicV99 Value

.06.01

WS-Total

Pic

999 Value

Zeros.非數(shù)字常量和表意常量ZEROS

or

SPACES可用于PIC

X字段:01

WS-EOF01

WS-DescripPic

X(3)

Value

‘YES’.Pic

X(8) Value

Spaces.D

U

TNonnumeri erals

may

be

up

to

160charactersLong

literals

may

not

fit

on

one

typed

lineSubdividing

long

literals

into

separate

fieldsismendedSeparate

this

report

title

into

two

fields"TransactionReport

forXYZ

Corporation"01

Report-Title.05 Pic

X18) Value

'Transaction

Report'.05 Pic

X(20) Value

'

for

XYZ

Corporation'.ExampleD

U

TLong

literals

may

be

continued

from

one

line

to

next,

although

this

isnot

mendedRules

for

continuation

of

literals

from

one

line

to

nextBegin

literal

with

quotation

mark.Continue

literal

to

position

72. Do

not

end

with

quotation

mark.Place

hyphen

on

next

line

in

position

7.Continue

literal

with

quotation

mark

starting

anywhere

in

Area

B.End

literal

with

quotation

mark.D

U

TLong

literalsmay

becontinued

fromone

line

tonext,

althoughthis

is

not

mendedRules

for

continuation

of

literals

from

one

line

tonextBegin

literal

with

quotation

mark.Continue

literal

to

position

72. Do

not

end

withquotation

mark.Place

hyphen

on

next

line

in

position7.Continue

literal

with

quotation

mark

starting

anywherein

Area

B.End

literal

with

quotation

mark.D

U

T注意:只有工作單元節(jié)的數(shù)據(jù)項(xiàng)可以賦初值如果在組合項(xiàng)的描述體中使用VALUE子句,初值只能是表意常量或非數(shù)值型常量,例如:01

A

VALUE

‘1234’.

01

A

VALUE

ZERO.02A1PIC99.02A2PIC99.則A1=12,

A2=34

兩者都可以做數(shù)值運(yùn)算c.

當(dāng)用一個(gè)帶符號的數(shù)值作初值時(shí),相應(yīng)的PIC子句中應(yīng)有‘S’描述符否則初值無效例如:

77

B

PIC

S99

VALUE

-22.D

U

Td.

賦初值應(yīng)注意類型的一致性,表意常量既可作為數(shù)值常量又可作為非數(shù)值常量77

C

PIC

X(3)

VALUE 123//錯(cuò)誤,123是數(shù)值型77

D

PIC

X(3)

VALUE

‘123’77

E

PIC

9(3)

VALUE

ZERO77

F

PIC

X(3)

VALUE

ZERO//數(shù)值0,可用于計(jì)算//000e.

初值應(yīng)適合PIC子句描述的范圍,否則會出現(xiàn)截?cái)嗷虍a(chǎn)生錯(cuò)誤77

G

PIC

S99 VALUE

345.677

H

PIC

X(3)

VALUE

‘COBOL’//G=45//H=‘COB’D

U

T45第四節(jié)過程部過程部概述過程部常用語句D

U

T過程部是COBOL程序的

,有以下三個(gè)特點(diǎn):過程部(PROCEDURE

DIVISION)是程序的第四部分,部頭必須從A區(qū)(8-11列)開始書寫過程部的語句必須從B區(qū)(12列之后)開始書寫

過程部的句子都以動(dòng)詞開始,表示計(jì)算機(jī)應(yīng)執(zhí)行的操作;動(dòng)詞后面一般要跟一個(gè)操作的對象,可以是數(shù)據(jù)名或文件名,如:MOVE

X

TO

YD

U

TContainsinstructions

toReaddataProcessdataProduce

outputPerform

end-of-job

operationsD

U

TInteractive

processing

instructionsAccept

input

from

keyboardDisplay

output

onscreenBatch

processing

instructionsAccess

filesand

read

themWrite

output

to

filesD

U

TPROCEDURE

DIVISION

divided

into

paragraphsCoded

in

AreaA,

followed

by

periodFollowrules

for

forming

data-names

except

may

be

alldigits1010,

1020,

1030,

etc.

are

valid

paragraph

namesAll

statements

codedin

AreaBStatement

begins

with

verb

(READ,

MOVE)Last

statement

in

paragraphends

with

periodSentence

-

series

of

statemen ding

with

periodD

U

TDISPLAY

to

prompt

for

inputACCEPT

to

storeinput

inWORKING-STORAGEareasVarious

statements

to

process

inputDISPLAY

to

show

outputDISPLAY

to

ask

if

there

is

moreinputACCEPT

to

get

responseD

U

TThe

Procedure

Division

of

the

interactiveprogramPROCEDURE

DIVISION.*000-CALCULATE-SALES-TAX.*PERFORM

100-CALCULATE-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

CALCULATE

SALES

TAX,

ENTER

THE

SALES

AMOUNT.".ACCEPT

SALES-AMOUNT.IF

SALES-AMOUNT

=

ZEROMOVE

"Y"

TOEND-OF-SESSION-SWITCHELSECOMPUTE

SALES-TAX

ROUNDED

=SALES-AMOUNT

*.0785DISPLAY

"SALES

TAX

=

"

SALES-TAX.D

U

T輸入輸出語句(ACCEPT,DISPLAY)算數(shù)運(yùn)算語句(ADD,SUBTRACT…)傳送語句(MOVE)條件語句(IF,EVALUATE)轉(zhuǎn)移語句(GO

TO)執(zhí)行語句(PERFORM)文件操作語句(OPEN,READ…)D

U

TThe

syntax

of

the

Accept

statementACCEPT

data-nameAn

example

of

an

Accept

statementACCEPT

SALES-AMOUNT.The

operation

of

some

typical

AcceptstatementsPictureUser

entryData

storedNotesS9991010S999787787S999-10-10S9995231231Truncated

on

theleft999-1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論