在非常简单的COBOL程序中使用时出错

在非常简单的COBOL程序中使用时出错,cobol,gnucobol,Cobol,Gnucobol,这是我的代码,其中iIam使用声明变量 IDENTIFICATION DIVISION. PROGRAM-ID. ARRAYEX. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT StudentFile ASSIGN TO "STUDENTS.DAT" ORGANIZATION IS LINE SEQUENTIAL. DATA DIVI

这是我的代码,其中iIam使用声明变量

   IDENTIFICATION DIVISION.
   PROGRAM-ID. ARRAYEX.

   ENVIRONMENT DIVISION.
   INPUT-OUTPUT SECTION.
   FILE-CONTROL.
        SELECT StudentFile ASSIGN TO "STUDENTS.DAT"
            ORGANIZATION IS LINE SEQUENTIAL.

   DATA DIVISION.
   WORKING-STORAGE SECTION.
   77 WS-FIRSTARR OCCURS 10 TIMES PIC 9(5).

   PROCEDURE DIVISION.

   DISPLAY "HELLO WORLD".
   STOP RUN.
错误:

arrayex.cbl:12:错误:级别77项“WS-FIRSTARR”不能有OCCURS子句

编译失败的原因是什么?

COBOL有几个“神奇”级别的数字

  • 66级项目表示需要重命名子句
  • 77级项目是原子的,不能细分,不能有OCCURS子句
  • 级别88表示条件名称条目
请参阅的第5-4页和第5-5页。

COBOL有几个“神奇”级别编号

  • 66级项目表示需要重命名子句
  • 77级项目是原子的,不能细分,不能有OCCURS子句
  • 级别88表示条件名称条目

参见的第5-4页和第5-5页。

77不可能发生。不能出现01。02-49级可能已发生

忘记66级(用于重命名子句),因为您不应该使用它,而且不太可能看到它

88级别(条件名称)不能有occurs,但如果定义它的字段是occurs的一部分或从属于occurs,则88将需要订阅,就像任何02--49级别一样,它也是occurs的一部分或从属于occurs

01  a-simple-array-structure.
    05  the-data occurs 5 times           pic 9(5).
或者你可以变得更复杂

01  b-structure.
    95  the-key                           pic x(8).
    05  some-data                         pic x(10).
    05  some-more-data                    pic 9(7).
    05  a-simple-array.
        10  a-simple-array-item occurs 5 times       
                                          pic 9(5).
    05  a-more-complex-array.
        10  complex-entry occurs 10 times.
            15  some-complex-data         pic xx.
            15  another-bit-of-complex-data
                                          pic 9(5).
发生也可用于定义多维表

    05  first-occurs occurs 5 times.
        10  second-occurs occurs 5 times.
            15  an-item                   pic xx.
这还远远没有完全实现,所以从简单开始,练习,让它工作起来,变得更加复杂

01  b-structure.
    95  the-key                           pic x(8).
    05  some-data                         pic x(10).
    05  some-more-data                    pic 9(7).
    05  a-simple-array.
        10  a-simple-array-item occurs 5 times       
                                          pic 9(5).
    05  a-more-complex-array.
        10  complex-entry occurs 10 times.
            15  some-complex-data         pic xx.
            15  another-bit-of-complex-data
                                          pic 9(5).
根据不同的长度表,也会出现不同的情况。一次只做一件事。获取一个简单的函数,不仅是定义,还有用法,包括一个用于下标的字段、一个用于下标的索引和一个用于下标的文本


然后变得更复杂。

77不可能发生。不能出现01。02-49级可能已发生

01  b-structure.
    95  the-key                           pic x(8).
    05  some-data                         pic x(10).
    05  some-more-data                    pic 9(7).
    05  a-simple-array.
        10  a-simple-array-item occurs 5 times       
                                          pic 9(5).
    05  a-more-complex-array.
        10  complex-entry occurs 10 times.
            15  some-complex-data         pic xx.
            15  another-bit-of-complex-data
                                          pic 9(5).
忘记66级(用于重命名子句),因为您不应该使用它,而且不太可能看到它

88级别(条件名称)不能有occurs,但如果定义它的字段是occurs的一部分或从属于occurs,则88将需要订阅,就像任何02--49级别一样,它也是occurs的一部分或从属于occurs

01  a-simple-array-structure.
    05  the-data occurs 5 times           pic 9(5).
或者你可以变得更复杂

01  b-structure.
    95  the-key                           pic x(8).
    05  some-data                         pic x(10).
    05  some-more-data                    pic 9(7).
    05  a-simple-array.
        10  a-simple-array-item occurs 5 times       
                                          pic 9(5).
    05  a-more-complex-array.
        10  complex-entry occurs 10 times.
            15  some-complex-data         pic xx.
            15  another-bit-of-complex-data
                                          pic 9(5).
发生也可用于定义多维表

    05  first-occurs occurs 5 times.
        10  second-occurs occurs 5 times.
            15  an-item                   pic xx.
这还远远没有完全实现,所以从简单开始,练习,让它工作起来,变得更加复杂

01  b-structure.
    95  the-key                           pic x(8).
    05  some-data                         pic x(10).
    05  some-more-data                    pic 9(7).
    05  a-simple-array.
        10  a-simple-array-item occurs 5 times       
                                          pic 9(5).
    05  a-more-complex-array.
        10  complex-entry occurs 10 times.
            15  some-complex-data         pic xx.
            15  another-bit-of-complex-data
                                          pic 9(5).
根据不同的长度表,也会出现不同的情况。一次只做一件事。获取一个简单的函数,不仅是定义,还有用法,包括一个用于下标的字段、一个用于下标的索引和一个用于下标的文本

然后变得更复杂

01  b-structure.
    95  the-key                           pic x(8).
    05  some-data                         pic x(10).
    05  some-more-data                    pic 9(7).
    05  a-simple-array.
        10  a-simple-array-item occurs 5 times       
                                          pic 9(5).
    05  a-more-complex-array.
        10  complex-entry occurs 10 times.
            15  some-complex-data         pic xx.
            15  another-bit-of-complex-data
                                          pic 9(5).