2016-08-03 57 views
2

在这种情况下,我想要更改我的向量(它被设置为1)中的第一个元素的值,方法是在其中添加1(也包含其他更复杂的算术)。这里是代码:更改向量元素的值

************************************************************* 
      IDENTIFICATION DIVISION. 
      PROGRAM-ID. YOUR-PROGRAM-NAME. 
      DATA DIVISION. 
      FILE SECTION. 
       WORKING-STORAGE SECTION. 
       01 TABLE1. 
        05 BERN PIC 9(1) OCCURS 10 TIMES VALUE 1. 
      PROCEDURE DIVISION. 
      MAIN-PROCEDURE. 
       COMPUTE BERN(1) = BERN(1)+1. 
       DISPLAY TABLE1. 
       STOP RUN. 
      END PROGRAM YOUR-PROGRAM-NAME. 

的问题是,它不接受

COMPUTE BERN(1) = BERN(1)+1. 

什么是做正确的方式?

+2

为什么卡在一起对彼此?它看起来以次充好,不太容易改变。 '计算BERN(1)= BERN(1)+ 1'。那里。这将编译。注意关于“ADD”的建议。这里有更多的描述。也可以在这里查看有关1985年以后的COBOL在PROCEDURE DIVISION中的全站/句点的评论。还要注意关于“VALUE 1在那里工作?”的评论。你永远不想听到这些类型的评论,有人必须查看手册来了解你的代码。所以,简化。 –

+0

你在Benoulli问题上发现了你的问题? –

+0

是的@BillWoodger我做了,问题是:变量RES和向量元素变量 - 他们在哪里越来越与“N”变得越来越大......你想让我取消删除这个问题? –

回答

3
COMPUTE BERN(1) = BERN(1) + 1 

你想念空间。我使用GnuCOBOLOpenCobolIDE上进行了检查,它与空格一起工作,并且没有编译。

这就是说,一个好的旧ADD 1 TO BERN(1)也应该工作。

+0

哈。虽然我在输入我的评论...为什么选择关于间距? –

+0

一旦我使用了空格 –

+0

@BillWoodger,我就解决了问题:好吧,我专注于这个问题。如果是在代码审查,我会更详细。正如你所说,间距,但也过分点。并且在OCCURS之后VALUE的可读性不好(令我惊讶) – gazzz0x2z