這是最近在學的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.
