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

Зачем все дергать друг против друга? Он выглядит дрянным и менее легко меняющимся. 'COMPUTE BERN (1) = BERN (1) + 1'. Там. Это будет скомпилировано. Обратите внимание на предложение «ADD». Здесь гораздо более наглядно. Также посмотрите здесь комментарий о полных остановках/периодах в ОТНОШЕНИИ ПРОЦЕДУРЫ с COBOL после 1985 года. Обратите внимание также на комментарий о «работает ли VALUE 1?». Вы никогда не захотите услышать такие комментарии, когда кто-то должен посмотреть руководство, чтобы понять ваш код. Итак, упростите. –

+0

Вы заметили проблему с таблицей по вопросу Бенеулли? –

+0

yes @BillWoodger Я сделал, проблема была: переменная RES и переменные элемента вектора - они, где переполнение с «N» становилось все больше и больше ... Вы хотите, чтобы я восстановил этот вопрос? –

ответ

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

Вы пропустите пробелы. Я проверил с GnuCOBOL по адресу OpenCobolIDE, он работает с пробелами и не компилируется без него.

Это, как говорится, хороший старый ADD 1 TO BERN(1) тоже должен работать.

+0

Ha. Пока я печатал свой комментарий ... почему бы быть избирательным относительно интервала? –

+0

Он был разрешен после того, как я использовал интервал –

+0

@BillWoodger: ну, я сосредоточился на вопросе. Если бы это было в обзоре кода, я был бы гораздо более подробным. Интервал, как вы сказали, но также указывает на избыток. И отсутствие удобочитаемости VALUE после OCCURS (это работает, к моему удивлению) – gazzz0x2z

Смежные вопросы