2016-08-03 101 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