Wednesday, December 15, 2010

Finding the factorial using a subroutine

       IDENTIFICATION DIVISION.
       PROGRAM-ID FACTFIND-MAIN.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 N PIC 99.
       77 FACT PIC 9(6).
       77 EDFACT PIC Z(5)9.
       PROCEDURE DIVISION.
       MAIN-PARA.
           DISPLAY "Enter a number : ".
           ACCEPT N.
           CALL "PRO0102.COB" USING N FACT.
           MOVE FACT TO EDFACT.
           DISPLAY "Factorial of " N "is: " EDFACT.
           STOP RUN.

Subroutine with file name PRO0102.COB
       IDENTIFICATION DIVISION.
       PROGRAM-ID FACTFIND-SUB.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       77 I PIC 99.
       LINKAGE SECTION.
       77 N1 PIC 9(2).
       77 FACT1 PIC 9(6).
       PROCEDURE DIVISION USING N1 FACT1.
       MAIN-PARA.
           MOVE 1 TO FACT1.
           PERFORM FIND VARYING I FROM 2 BY 1 UNTIL I > N1.
           EXIT PROGRAM.
       FIND.
           MULTIPLY I BY FACT1.

2 comments: