Прежде всего, у COBOL нет массивов как таковых, у него есть таблицы.Нет возможности сделать двухмерную таблицу.Пример, который вы привели, на самом деле самый близкий к вам (вложенная таблица).Если бы я столкнулся с проблемой, которую вы делаете (поле из 10 учеников с именем, полом и возрастом), я бы структурировал свои данные следующим образом:
01 WS-TABLE.
05 WS-STUDENT OCCURS 10 TIMES.
10 WS-NAME PIC X(10).
10 WS-GENDER PIC X.
10 WS-AGE PIC 9(3).
В этом примере я использовал бы индекс для доступа кполя, которые я создал для студента.Вот как будет выглядеть цикл их отображения:
PERFORM VARYING WS-X
FROM 1 BY 1
UNTIL WS-X > 10
DISPLAY "NAME: " WS-NAME(WS-X) " GENDER: " WS-GENDER(WS-X) " AGE: " WS-AGE(WS-X)
END-PERFORM