這是最近在學的COBOL程式碼

 

平常學都是用OpenCobolIDE的軟體在跑

 

這一支是九九乘法表喔!!!!

 

 --------------------------------------------------------------

 

IDENTIFICATION DIVISION.

PROGRAM-ID. TAB99.

ENVIRONMENT DIVISION.

CONFIGURATION SECTION.

INPUT-OUTPUT SECTION.

 

FILE-CONTROL.

SELECT TABLE-R

ASSIGN TO "C:\Users\gary11204\Downloads\123.txt".

DATA DIVISION.

FILE SECTION.

FD TABLE-R

LABEL RECORD IS OMITTED.

01 TABLE-REC PIC X(50).

 

WORKING-STORAGE SECTION.

01 WORK-AREA.

05 SUB1 PIC 9(02).

05 SUB2 PIC 9(02).

05 TEMP PIC 9(02).

05 ANS1 PIC 9(02) VALUE 0.

05 ANS2 PIC 9(02) VALUE 0.

 

01 MULTI-TABLE.

05 LEFT-TAB.

10 SUB1-OUT PIC Z9.

10 FILLER PIC X(04) VALUE ' X '.

10 TEMP1-OUT PIC Z9.

10 FILLER PIC X(04) VALUE ' = '.

10 ANS1-OUT PIC Z9.

05 RIGHT-TAB.

10 FILLER PIC X(10) VALUE SPACE.

10 SUB2-OUT PIC Z9.

10 FILLER PIC X(04) VALUE ' X '.

10 TEMP2-OUT PIC Z9.

10 FILLER PIC X(04) VALUE ' = '.

10 ANS2-OUT PIC Z9.

 

PROCEDURE DIVISION.

OPEN OUTPUT TABLE-R.

PERFORM 200-TABLE-TITLE.

PERFORM 300-COMPUTE-TABLE THRU 300-DETAIL-LINE

VARYING SUB1 FROM 1 BY 1 UNTIL SUB1 > 5

AFTER TEMP FROM 1 BY 1 UNTIL TEMP > 9.

 

CLOSE TABLE-R.

STOP RUN.

* END.

 

200-TABLE-TITLE.

MOVE ' *** 九九乘法表 *** ' TO TABLE-REC.

WRITE TABLE-REC

AFTER ADVANCING PAGE.

 

 

300-COMPUTE-TABLE.

MOVE SPACES TO TABLE-REC.

MOVE ZEROS TO ANS1 ANS2.

COMPUTE ANS1 = SUB1 * TEMP.

MOVE SUB1 TO SUB1-OUT.

MOVE TEMP TO TEMP1-OUT.

MOVE ANS1 TO ANS1-OUT.

IF SUB1 = 5 THEN

MOVE SPACES TO RIGHT-TAB

GO TO 300-DETAIL-LINE

ELSE

COMPUTE SUB2 = SUB1 + 5

COMPUTE ANS2 = SUB2 * TEMP

MOVE SUB2 TO SUB2-OUT

MOVE TEMP TO TEMP2-OUT

MOVE ANS2 TO ANS2-OUT.

 

 

300-DETAIL-LINE.

 

IF TEMP = 1 THEN

WRITE TABLE-REC FROM MULTI-TABLE

AFTER 2 LINES

ELSE

WRITE TABLE-REC FROM MULTI-TABLE

AFTER 1 LINES.

 

END PROGRAM TAB99.

文章標籤
全站熱搜
創作者介紹
創作者 gary11204 的頭像
gary11204

屬於范光的秘密基地喔~

gary11204 發表在 痞客邦 留言(0) 人氣(1,545)