gpt4 book ai didi

multidimensional-array - cobol 中的银行家算法

转载 作者:行者123 更新时间:2023-12-02 04:32:19 25 4
gpt4 key购买 nike

我遇到的问题是我在工作存储中定义的行 COLUMNS部分以及当它在 200-BANKER-FILL 部分中使用时给了我一个COLUMNS 是意外的语法错误。实际错误是

'error: syntax error, unexpected COLUMNS'

我似乎无法理解工作存储部分中 COLUMNS 的声明如何被认为是意外的,任何帮助都会很棒

   IDENTIFICATION DIVISION.
PROGRAM-ID.BankerAlgoritm.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT BANKER-FILE-IN ASSIGN TO 's1.txt'
ORGANIZATION IS LINE SEQUENTIAL.

*> FUNCTION NUMVAL (STRING)

DATA DIVISION.
FILE SECTION.
FD BANKER-FILE-IN.
01 BANKER-LINE PIC X(9).
WORKING-STORAGE SECTION.
01 ARE-THERE-MORE-RECORDS PIC X(3) VALUE 'YES'.
88 NO-MORE-RECORDS VALUE 'NO '.
01 ROWS PIC 9.
01 COLUMNS PIC 9.
01 BANKER-TABLE-ASSIGN.
05 ASSIGN-ROW OCCURS 5 TIMES INDEXED BY X.
10 ASSIGN-COLUMN OCCURS 4 TIMES INDEXED BY Y.
20 ASSIGN-RESOURCE PIC 9.
01 BANKER-TABLE-MAX.
05 MAX-ROW OCCURS 5 TIMES INDEXED BY X.
10 MAX-COLUMN OCCURS 4 TIMES INDEXED BY Y.
20 MAX-RESOURCE PIC 9.
01 BANKER-TABLE-AVAL.
05 AVAL-COLUMN OCCURS 4 TIMES INDEXED BY Y.
10 AVAL-RESOURCE PIC 9.
01 BANKER-TABLE-REQUEST.
05 REQUEST-COLUMN OCCURS 4 TIMES INDEXED BY Y.
10 REQUEST-RESOURCE PIC 9.
01 BANKER-REQUEST-LINE.
05 REQUEST-LINE PIC 9.
05 SPACER PIC X.
05 REQUEST-ONE PIC 9.
05 PIC X.
05 REQUEST-TWO PIC 9.
05 PIC X.
05 REQUEST-THREE PIC 9.
05 PIC X.
05 REQUEST-FOUR PIC 9.
01 MATRIX.
05 ONE PIC 9.
05 PIC X.
05 TWO PIC 9.
05 PIC X.
05 THREE PIC 9.
05 PIC X.
05 FOUR PIC 9.
01 HOLDING-VAL-SINGLE PIC 9.
01 LINE-COUNT PIC 99 VALUE 0.
01 SAFE-STATE PIC XXXXX VALUE 'FALSE'.
PROCEDURE DIVISION.
*>****************************************
*> Controls direction of program logic *
*> and reads the first record. *
*>****************************************
100-MAIN-MODULE.
PERFORM UNTIL NO-MORE-RECORDS
READ BANKER-FILE-IN
AT END
MOVE 'NO ' TO ARE-THERE-MORE-RECORDS
NOT AT END
PERFORM 200-BANKER-FILL
END-READ
END-PERFORM
*> PERFORM 300-FILL-NEED
*> PERFORM 400-SAFE-STATE
*>IF SAFE-STATE = 'TRUE'
*> PERFORM 500-REQUEST
*> PERFORM 600-END-OF-JOB-RTN
STOP RUN.
200-BANKER-FILL.
ADD 1 TO LINE-COUNT
IF LINE-COUNT IS EQUAL TO 1
MOVE BANKER-LINE TO ROWS
END-IF
IF LINE-COUNT IS EQUAL TO 3
MOVE BANKER-LINE TO COLUMNS
END-IF
IF LINE-COUNT >= 5 AND <= 10
*>FILL ASSIGNED MATRIX
MOVE BANKER-LINE TO MATRIX
MOVE ONE TO ASSIGN-COLUMN(LINE-COUNT - 4, 1)
MOVE TWO TO ASSIGN-COLUMN(LINE-COUNT - 4, 2)
MOVE THREE TO ASSIGN-COLUMN(LINE-COUNT - 4, 3)
MOVE FOUR TO ASSIGN-COLUMN(LINE-COUNT - 4, 4)
END-IF
IF LINE-COUNT >= 12 AND <= 17
*>FILL IN MAX MATRIX
MOVE BANKER-LINE TO MATRIX
MOVE ONE TO MAX-COLUMN(LINE-COUNT - 11, 1)
MOVE TWO TO MAX-COLUMN(LINE-COUNT - 11, 2)
MOVE THREE TO MAX-COLUMN(LINE-COUNT - 11, 3)
MOVE FOUR TO MAX-COLUMN(LINE-COUNT - 11, 4)
END-IF
IF LINE-COUNT = 19
*> FILL IN AVAILIBLE MATRIX
MOVE BANKER-LINE TO MATRIX
MOVE ONE TO AVAL-COLUMN(1)
MOVE TWO TO AVAL-COLUMN(2)
MOVE THREE TO AVAL-COLUMN(3)
MOVE FOUR TO AVAL-COLUMN(4)
END-IF
IF LINE-COUNT = 21
*> FILL IN REQUEST
MOVE BANKER-LINE TO BANKER-REQUEST-LINE
END-IF.
*>*************************************************
*> Performed from 100-MAIN-MODULE. Closes files *
*>*************************************************
600-END-OF-JOB-RTN.
CLOSE BANKER-FILE-IN.

接下来是输入文件

5

4

0 0 1 2
1 0 0 0
1 3 5 4
0 6 3 2
0 0 1 4

0 0 1 2
1 7 5 0
2 3 5 6
0 6 5 2
0 6 5 6

1 5 2 0

1:0 4 2 0

最佳答案

COLUMN 是 COBOL 中的保留字。 Here是供将来引用的保留字列表。

关于multidimensional-array - cobol 中的银行家算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47540632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com