]]> ]]>

Числа Фибоначчи в COBOL

Пример для версий OpenCOBOL 1.0, TinyCOBOL 0.65.9

Используется итеративное вычисление чисел Фибоначчи. Сложение чисел Фибоначчи выполняется командой ADD, которая суммирует два аргумента и сохраняет результат в третий. Из-за того, что команда DISPLAY делает перевод строки после каждого вызова, найденные числа приходится сохранять в строку-результат, которая выводится уже после цикла. Для конкатенации нового числа с предыдущими используется команда STRING; для каждой переменной из тех, которые объединяются в строку, указывается опция DELIMITED BY: SIZE — используется вся переменная, SPACE — часть переменной до первого пробела. Из-за этого числа выводятся без пробелов после запятых:

001,001,002,003,005,008,013,021,034,055,089,144,233,377,610,987,...
       IDENTIFICATION DIVISION.
       PROGRAM-ID. SAMPLE.

       DATA DIVISION.
       WORKING-STORAGE SECTION.

         77 fib1 pic 999.
         77 fib2 pic 999.
         77 fib3 pic 999.
         77 i pic 99.
         77 fibst pic XXX.
         77 res pic X(64).

       PROCEDURE DIVISION.
         move 0 to i
         move 0 to fib1
         move 1 to fib2
         move "" to res
         perform until i greater than 15
           add fib1 to fib2 giving fib3
           move fib2 to fib1
           move fib3 to fib2
           move fib1 to fibst
           string res   DELIMITED BY SPACE
                  fibst DELIMITED BY SIZE
                  ","   DELIMITED BY SIZE into res
           add 1 to i
         end-perform.
         display res "..."
         stop run.

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам