Monday, June 6, 2011

P7: Write a program for creation of an Indexed file.


 IDENTIFICATION DIVISION.
        PROGRAM-ID. INDEX-FILE.
        ENVIRONMENT DIVISION.
        CONFIGURATION SECTION.
        INPUT-OUTPUT SECTION.
        FILE-CONTROL.
                SELECT IN-FILE ASSIGN TO DISK
                ORGANIZATION IS INDEXED
                ACCESS MODE IS RANDOM
                RECORD KEY IS NUM.
        DATA DIVISION.
        FILE SECTION.
        FD IN-FILE
              LABEL RECORDS ARE STANDARD
              VALUE OF FILE-ID IS "INDEX.DAT"
              DATA RECORDS ARE IN-REC.
        01 IN-REC.
            02 NAME     PIC X(25).
            02 SALARY   PIC 9(8)V99.
            02 ADDRESS  PIC X(40).
            02 NUM      PIC 9(5).
        WORKING-STORAGE SECTION.
        77 N    PIC ZZZZ9.
        77 SAL  PIC ZZZZ9.99.
        77 CH   PIC X.
        PROCEDURE DIVISION.
        MAIN-PARA.
            OPEN OUTPUT IN-FILE.
            MOVE "Y" TO CH.
            PERFORM ACCEPT-PARA UNTIL (( CH = "N" ) OR  (CH = "n" )).
            CLOSE IN-FILE.
        STOP-PARA.
            OPEN INPUT IN-FILE.
            DISPLAY (1 , 1) ERASE.
            DISPLAY (6 , 2) "DO YOU WANT TO RETRIEVE THE RECORDS [Y/N]?  : ".
            ACCEPT (6, 48) CH.
            IF (( CH = "Y" ) OR ( CH = "y" ))
            PERFORM DISPLAY-PARA UNTIL (( CH = "N" ) OR ( CH = "n" ))
            ELSE
            GO TO CLOSING-PARA.

        CLOSING-PARA.
                CLOSE IN-FILE.
        LAST-PARA.
                STOP RUN.
        ACCEPT-PARA.
                DISPLAY (1, 1) ERASE.
                DISPLAY (1, 10) "ENTER THE RECORD DETAILS ".
                DISPLAY (2, 10) "************************".
                DISPLAY (6, 10) "ENTER NAME    :".
                ACCEPT (6, 45) NAME.
                DISPLAY (8, 10) "ENTER SALARY  :".
                ACCEPT (8, 45) SALARY.
                DISPLAY (10 10) "ENTER ADDRESS :".
                ACCEPT (10, 45) ADDRESS.
                DISPLAY (12, 10) "ENTER NUMBER :".
                ACCEPT (12, 45) NUM.
                WRITE IN-REC INVALID KEY GO TO ERROR-PARA.
                DISPLAY (14, 1) "DO YOU WANT TO ENTER ONE MORE RECORD [Y/N]? : ".
                ACCEPT (14, 48) CH.

        ERROR-PARA.
                DISPLAY "ERROR IN EMPLOYEE'S NUMBER".
                DISPLAY "IT MAY BE SAME OR LESS THAN THE PREVIOUS NUMBER".
                DISPLAY "THIS RECORD ID NOT WRITTEN IN TO THE FILE.".
                GO TO ACCEPT-PARA.

        DISPLAY-PARA.
                DISPLAY (1, 1) ERASE.
                DISPLAY (8, 10) "ENTER THE NUMBER :".
                ACCEPT (8, 45) NUM.
                READ IN-FILE INVALID KEY GO TO E-PARA.
                DISPLAY (10, 10) "NAME             :" NAME.
                MOVE NUM TO N.
                DISPLAY (12, 10) "NUMBER           :" N.
                MOVE SALARY TO SAL.
                DISPLAY (14, 10) "SALARY           :" SAL.
                DISPLAY (16, 10) "ADDRESS          :" ADDRESS.
                DISPLAY (18, 1) "DO YOU WANT TO SEE ONE MORE RECORD [Y/N]? : ".
                ACCEPT (18, 48) CH.
        E-PARA.
                DISPLAY (1, 1) ERASE.
                DISPLAY (10, 10) "GIVEN EMPLOYEE NUMBER MAY NOT BE FOUND".
                DISPLAY (12, 10) "TRY ONCE AGAIN.".
                DISPLAY " ".
                GO TO DISPLAY-PARA.

P6: Write a program for sorting and merging of files.


IDENTIFICATION DIVISION.
        PROGRAM-ID. SORT-MERGE.
        ENVIRONMENT DIVISION.
        CONFIGURATION SECTION.
        INPUT-OUTPUT SECTION.
        FILE-CONTROL.
             SELECT IN-FILE1 ASSIGN TO DISK
             ORGANIZATION IS LINE SEQUENTIAL.
             SELECT IN-FILE2 ASSIGN TO DISK
             ORGANIZATION IS LINE SEQUENTIAL.
             SELECT OUT-FILE1 ASSIGN TO DISK
             ORGANIZATION IS LINE SEQUENTIAL.
             SELECT OUT-FILE2 ASSIGN TO DISK
             ORGANIZATION IS LINE SEQUENTIAL.
             SELECT OUT-FILE3 ASSIGN TO DISK
             ORGANIZATION IS LINE SEQUENTIAL.
             SELECT SORT-FILE ASSIGN TO DISK
             ORGANIZATION IS LINE SEQUENTIAL.
        DATA DIVISION.
        FILE SECTION.
        FD   IN-FILE1
               LABEL RECORDS ARE STANDARD
               VALUE OF FILE-ID IS "INP1.DAT".
        01   IN-RECORD.
               02 NAME         PIC     X(30).
               02 ROLL-NO      PIC     9(5).
               02 MARKS        PIC     9(3).
        FD   IN-FILE2
               LABEL RECORDS ARE STANDARD
               VALUE OF FILE-ID IS "INP2.DAT".
        01   IN-RECORD.
               02 NAME         PIC     X(30).
               02 ROLL-NO      PIC     9(5).
               02 MARKS        PIC     9(3).
        FD   OUT-FILE1
               LABEL RECORDS ARE STANDARD
               VALUE OF FILE-ID IS "OUT1.DAT".
        01   OUT-RECORD    PIC     X(40).
        FD   OUT-FILE2
               LABEL RECORDS ARE STANDARD
               VALUE OF FILE-ID IS "OUT2.DAT".
        01   OUT-RECORD    PIC     X(40).
        FD   OUT-FILE3
               LABEL RECORDS ARE STANDARD
               VALUE OF FILE-ID IS "OUT3.DAT".
        01   OUT-RECORD    PIC     X(40).
        SD   SORT-FILE.
        01   SORT-RECORD.
               02 SNAME        PIC     X(30).
               02 SROLL-NO     PIC     9(5).
               02 SMARKS       PIC     999.
        PROCEDURE DIVISION.
        MAIN-PARA.
            SORT SORT-FILE ON ASCENDING KEY SNAME USING
            IN-FILE1 GIVING OUT-FILE1.
            SORT SORT-FILE ON ASCENDING KEY SNAME USING
            IN-FILE2 GIVING OUT-FILE2.
            MERGE SORT-FILE ON ASCENDING KEY SNAME USING
            OUT-FILE1 OUT-FILE2 GIVING OUT-FILE3.
            STOP RUN.







P5:Write a program using Control Break.


IDENTIFICATION DIVISION.
        PROGRAM-ID. CON-BREAK.
        ENVIRONMENT DIVISION.
        CONFIGURATION SECTION.
        INPUT-OUTPUT SECTION.
        FILE-CONTROL.
             SELECT EMP-FILE ASSIGN TO DISK
             ORGANIZATION IS LINE SEQUENTIAL.
             SELECT REP-FILE ASSIGN TO DISK
             ORGANIZATION IS LINE SEQUENTIAL.
        DATA DIVISION.
        FILE SECTION.
        FD   EMP-FILE
             LABEL RECORDS ARE STANDARD
             VALUE OF FILE-ID IS "EMP.INP".
        01   EMP-REC.
             02 SALESMAN-NO       PIC     9999.
             02 AMOUNT-OF-SALES    PIC     99999.
        FD   REP-FILE
             LABEL RECORDS ARE STANDARD
             VALUE OF FILE-ID IS "EMP.OUT".
        01   REP-REC    PIC  X(80).
        WORKING-STORAGE SECTION.
        77   TOT-SALE   PIC     9(6).
        77   TOT-COMM   PIC     9(6)V9(2).
        77   COM        PIC     9(6)V9(2).
        77   TSNO       PIC     9(4).
        01   HEADING-1.
             02 FILLER PIC X(11) VALUE "SALESMAN-NO".
             02 FILLER PIC X(13) VALUE SPACES.
             02 FILLER PIC X(16) VALUE "AMOUNT OF-SALES".
             02 FILLER PIC X(18) VALUE SPACES.
             02 FILLER PIC X(10) VALUE "COMMISSION".
        01   DETAIL-LINE.
             02 SALESMAN      PIC  B(3)ZZZZ.
             02 AMT-OF-SALE   PIC  B(20)ZZZZ9.
             02 COMMISSION    PIC  B(24)ZZZZ9.99.
        01   TOTAL-LINE.
             02 FILLER PIC X(13) VALUE SPACES.
             02 FILLER PIC X(12) VALUE "TOTAL-SALE".
             02 A      PIC Z(5)9.99.
             02 FILLER PIC X(2) VALUE SPACES.
             02 FILLER PIC X(18) VALUE "TOTAL-COMMISSION".
             02 B      PIC Z(5)9.99.
        01  ASTERISK-LINE       PIC X(70) VALUE ALL "-".
        PROCEDURE DIVISION.
        PARA-START.
             OPEN INPUT EMP-FILE OUTPUT REP-FILE.
             WRITE REP-REC FROM ASTERISK-LINE.
             WRITE REP-REC FROM HEADING-1.
             WRITE REP-REC FROM ASTERISK-LINE.
             READ EMP-FILE AT END GO TO LAST-PARA.
        PARA-READ-FIRST.
             MOVE SALESMAN-NO TO SALESMAN TSNO.
             MOVE AMOUNT-OF-SALES TO AMT-OF-SALE TOT-SALE.
             COMPUTE COM = (1 / 10) * AMOUNT-OF-SALES.
             MOVE COM TO TOT-COMM.
             MOVE COM TO COMMISSION.
             GO TO PARA-PRINT.
        PARA-READ.
             READ EMP-FILE AT END GO TO LAST-PARA.
             IF SALESMAN-NO NOT EQUAL TO TSNO GO TO PARA-TOTAL.
             MOVE AMOUNT-OF-SALES TO AMT-OF-SALE.
             COMPUTE COM = (1 / 10) * AMOUNT-OF-SALES.
             MOVE COM TO COMMISSION.
             ADD AMOUNT-OF-SALES TO TOT-SALE.
             ADD COM TO TOT-COMM.
             MOVE 0 TO SALESMAN.
        PARA-PRINT.
             WRITE REP-REC FROM DETAIL-LINE.
             GO TO PARA-READ.
        PARA-TOTAL.
             MOVE TOT-SALE TO A.
             MOVE TOT-COMM TO B.
             WRITE REP-REC FROM TOTAL-LINE.
             GO TO PARA-READ-FIRST.
        LAST-PARA.
             MOVE TOT-SALE TO A.
             MOVE TOT-COMM TO B.
             WRITE REP-REC FROM TOTAL-LINE.
             WRITE REP-REC FROM ASTERISK-LINE.
             CLOSE EMP-FILE REP-FILE.
             STOP RUN.

P4:Write a program for retrieval from a sequential file.


IDENTIFICATION DIVISION.
        PROGRAM-ID. SEQ-RET.
        ENVIRONMENT DIVISION.
        CONFIGURATION SECTION.
        INPUT-OUTPUT SECTION.
        FILE-CONTROL.
                SELECT STUD-FILE ASSIGN TO DISK
                ORGANIZATION IS LINE SEQUENTIAL.
                SELECT STUD-REPORT ASSIGN TO DISK
                ORGANIZATION IS LINE SEQUENTIAL.
        DATA DIVISION.
        FILE SECTION.
        FD  STUD-FILE
            LABEL RECORDS ARE STANDARD
            VALUE OF FILE-ID IS "STUD1.DAT".
        01  STUD-REC.
            02 ROLL-NO  PIC     9(5).
            02 NAME     PIC     X(20).
            02 SUBJECT  PIC     X(10).
            02  MARKS   PIC     99.
        FD  STUD-REPORT
            LABEL RECORDS ARE STANDARD
            VALUE OF FILE-ID IS "STUD2.DAT".
        01  STUD-OUT-REC        PIC     X(80).
        WORKING-STORAGE SECTION.
        77  TMARKS      PIC     999.
        77  R-NUM       PIC     9(5).
        77  NOS         PIC     X(20).
        77  A           PIC     999.
        01  MAIN-HEADING.
            02 FILLER   PIC X(7)  VALUE "ROLL-NO".
            02 FILLER   PIC X(4)  VALUE SPACES.
            02 FILLER   PIC X(20) VALUE "NAME".
            02 FILLER   PIC X     VALUE SPACES.
            02 FILLER   PIC X(7)  VALUE "SUBJECT".
            02 FILLER   PIC X(12) VALUE SPACES.
            02 FILLER   PIC X(5)  VALUE "MARKS".
         01 ASTERISK2.
            02 FILLER   PIC X(55) VALUE ALL SPACES.
            02 HASH1    PIC X(15) VALUE ALL "-".
         01 ASTERISK1   PIC X(70) VALUE ALL "*".
         01 DETAIL.
            02 ROLL-NUM  PIC Z(5).
            02 NAME-STUD PIC B(6)X(21).
            02 SUB-NAME  PIC X(20).
            02 AGRMARKS1 PIC Z9.
         01 TOTAL-MARK.
            02 FILLER    PIC X(55) VALUE SPACES.
            02 FILLER    PIC X(11) VALUE "TOTAL-MARK:".
            02 AGRMARKS2 PIC ZZZ.
         PROCEDURE DIVISION.
         START-PARA.
                OPEN INPUT STUD-FILE OUTPUT STUD-REPORT.
                WRITE STUD-OUT-REC FROM MAIN-HEADING
                WRITE STUD-OUT-REC FROM ASTERISK1.
                READ STUD-FILE AT END GO TO LAST-PARA.
          READ1.
                MOVE ROLL-NO TO ROLL-NUM.
                MOVE ROLL-NO TO R-NUM.
                MOVE NAME TO NAME-STUD NOS.
                MOVE SUBJECT TO SUB-NAME.
                MOVE MARKS TO AGRMARKS1.
                MOVE MARKS TO A.
                WRITE STUD-OUT-REC FROM DETAIL.
          READ2.
                READ STUD-FILE AT END GO TO LAST-PARA.
                IF (ROLL-NO = R-NUM)
                   MOVE SUBJECT TO SUB-NAME
                   MOVE MARKS TO TMARKS AGRMARKS1
                   ADD TMARKS TO A
                   MOVE 0 TO ROLL-NUM
                   MOVE SPACES TO NAME-STUD
                   WRITE STUD-OUT-REC FROM DETAIL
                   GO TO READ2.
          TOTAL.
                MOVE A TO AGRMARKS2.
                WRITE STUD-OUT-REC FROM ASTERISK2.
                WRITE STUD-OUT-REC FROM TOTAL-MARK.
                WRITE STUD-OUT-REC FROM ASTERISK2.
                GO TO READ1.
          LAST-PARA.
                MOVE A TO AGRMARKS2.
                WRITE STUD-OUT-REC FROM ASTERISK2.
                WRITE STUD-OUT-REC FROM TOTAL-MARK.
                WRITE STUD-OUT-REC FROM ASTERISK2.
                CLOSE STUD-FILE STUD-REPORT
                STOP RUN.

Write a program for creation of a sequential file.


 IDENTIFICATION DIVISION.
        PROGRAM-ID. SEQFILE.
        ENVIRONMENT DIVISION.
        INPUT-OUTPUT SECTION.
        FILE-CONTROL.
             SELECT OUT-FILE ASSIGN TO DISK
             ORGANIZATION IS LINE SEQUENTIAL.
        DATA DIVISION.
        FILE SECTION.
        FD OUT-FILE
             LABEL RECORDS ARE STANDARD
             VALUE OF FILE-ID IS "STUD1.DAT".
        01 OUT-REC.
           02 ROLL-NO   PIC 9(5).
           02 NAME      PIC X(20).
           02 SUBJECT   PIC X(10).
           02 MARKS     PIC 99.
        WORKING-STORAGE SECTION.
        77 NUMR         PIC 99.
        PROCEDURE DIVISION.
        MAIN-PARA.
           OPEN OUTPUT OUT-FILE.
           DISPLAY "ENTER THE NO. OF STUDENTS: ".
           ACCEPT NUMR.
           PERFORM READ-WRITE-PARA UNTIL NUMR EQUAL TO 0.
           CLOSE OUT-FILE.
           STOP RUN.
        READ-WRITE-PARA.
           DISPLAY " ENTER THE ROLL NO.: ".
           ACCEPT ROLL-NO.
           DISPLAY "ENTER THE NAME OF STUDENT: ".
           ACCEPT NAME.
           DISPLAY "ENTER NAME OF SUBJECT: ".
           ACCEPT SUBJECT.
           DISPLAY "ENTER THE MARKS: ".
           ACCEPT MARKS.
           WRITE OUT-REC
           COMPUTE NUMR = NUMR - 1.

P3: Write a program using STRING and UNSTRING clause.


IDENTIFICATION DIVISION.
        PROGRAM-ID. STRING-UNSTRING.
        ENVIRONMENT DIVISION.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        77 FIRST-NAME   PIC X(10).
        77 MIDDLE-NAME  PIC X(10).
        77 LAST-NAME    PIC X(10).
        77 NAME         PIC X(30).
        77 M            PIC X VALUE SPACES.
        PROCEDURE DIVISION.
        MAIN-PARA.
                DISPLAY "ENTER YOUR FIRST NAME  :".
                ACCEPT FIRST-NAME.
                DISPLAY FIRST-NAME.
                DISPLAY "ENTER YOUR MIDDLE NAME  :".
                ACCEPT MIDDLE-NAME.
                DISPLAY MIDDLE-NAME.
                DISPLAY "ENTER YOUR LAST NAME  :".
                ACCEPT LAST-NAME.
                DISPLAY LAST-NAME.
                STRING FIRST-NAME DELIMITED BY SPACES,
                       M DELIMITED BY SIZE,
                       MIDDLE-NAME DELIMITED BY SPACES,
                       M DELIMITED BY SIZE,
                       LAST-NAME DELIMITED BY SPACES,
                       INTO NAME.
                DISPLAY " THE GIVEN STRINGS AFTER STRING OPERATION IS : ".
                DISPLAY NAME.
                UNSTRING NAME DELIMITED BY M,
                         INTO FIRST-NAME,
                         MIDDLE-NAME,
                         LAST-NAME.
                DISPLAY "THE VARIOUS STRINGS AFTER UNSTRING OPERATION ARE  :".
                DISPLAY FIRST-NAME
                DISPLAY MIDDLE-NAME.
                DISPLAY LAST-NAME.
                STOP RUN.


P2: Write a program for converting a numerical value to text.


* PROGRAM TO CONVERT NUMBER TO IT'S
      * EQUIVALENT ENGLISH TRASLATION
      *   PROGRAM CODE :
        IDENTIFICATION DIVISION.
        PROGRAM-ID. NUM-TO-TEXT.
        ENVIRONMENT DIVISION.
        DATA DIVISION.
        WORKING-STORAGE SECTION.
        77 NUM PIC 9(9).
        77 NUM1 PIC 9(9).
        77 I   PIC 99.
        77 J   PIC 99.
        77 K   PIC 99.
        77 Q   PIC 99.
        01 NUM-TABLE1.
           02 ONE       PIC X(9) VALUE "ONE ".
           02 TWO       PIC X(9) VALUE "TWO ".
           02 THREE     PIC X(9) VALUE "THREE ".
           02 FOUR      PIC X(9) VALUE "FOUR ".
           02 FIVE      PIC X(9) VALUE "FIVE ".
           02 SIX       PIC X(9) VALUE "SIX ".
           02 SEVEN     PIC X(9) VALUE "SEVEN ".
           02 EIGHT     PIC X(9) VALUE "EIGHT ".
           02 NINE      PIC X(9) VALUE "NINE ".
           02 TEN       PIC X(9) VALUE "TEN ".
           02 ELEVEN    PIC X(9) VALUE "ELEVEN ".
           02 TWELVE    PIC X(9) VALUE "TWELVE ".
           02 THIRTEEN  PIC X(9) VALUE "THIRTEEN ".
           02 FOURTEEN  PIC X(9) VALUE "FOURTEEN " .
           02 FIFTEEN   PIC X(9) VALUE "FIFTEEN ".
           02 SIXTEEN   PIC X(9) VALUE "SIXTEEN ".
           02 SEVENTEEN PIC X(9) VALUE "SEVENTEEN".
           02 EIGHTEEN  PIC X(9) VALUE "EIGHTEEN ".
           02 NINETEEN  PIC X(9) VALUE "NINETEEN ".
        01 TABLE1 REDEFINES NUM-TABLE1.
           02 TAB11     PIC X(9) OCCURS 19 TIMES.
        01 NUM-TABLE2.
           02 TWENTY    PIC X(9) VALUE "TWENTY ".
           02 THIRTY    PIC X(9) VALUE "THIRTY ".
           02 FORTY     PIC X(9) VALUE "FORTY ".
           02 FIRTY     PIC X(9) VALUE "FIFTY ".
           02 SIXTY     PIC X(9) VALUE "SIXTY ".
           02 SEVENTY   PIC X(9) VALUE "SEVENTY ".
           02 EIGHTY    PIC X(9) VALUE "EIGHTY ".
           02 NINETY    PIC X(9) VALUE "NINETY ".
        01 TABLE2 REDEFINES NUM-TABLE2.
           02 TAB22     PIC X(9) OCCURS 8 TIMES.
        PROCEDURE DIVISION.
        START-PARA.
                DISPLAY (1 1) ERASE.
                DISPLAY "ENTER ANY 9 DIGIT NUMBER : ".
                ACCEPT NUM.
                MOVE NUM TO NUM1.
                IF ( NUM = 0) DISPLAY "ZERO ".
                IF ( NUM = 1) DISPLAY TAB11 (NUM) .
                IF ( NUM = 2) DISPLAY TAB11 (NUM) .
                IF ( NUM = 3) DISPLAY TAB11 (NUM) .
                IF ( NUM = 4) DISPLAY TAB11 (NUM) .
                IF ( NUM = 5) DISPLAY TAB11 (NUM) .
                IF ( NUM = 6) DISPLAY TAB11 (NUM) .
                IF ( NUM = 7) DISPLAY TAB11 (NUM) .
                IF ( NUM = 8) DISPLAY TAB11 (NUM) .
                IF ( NUM = 9) DISPLAY TAB11 (NUM) .
                IF ( NUM = 10) DISPLAY TAB11 (NUM) .
                IF ( NUM = 11) DISPLAY TAB11 (NUM) .
                IF ( NUM = 12) DISPLAY TAB11 (NUM) .
                IF ( NUM = 13) DISPLAY TAB11 (NUM) .
                IF ( NUM = 14) DISPLAY TAB11 (NUM) .
                IF ( NUM = 15) DISPLAY TAB11 (NUM) .
                IF ( NUM = 16) DISPLAY TAB11 (NUM) .
                IF ( NUM = 17) DISPLAY TAB11 (NUM) .
                IF ( NUM = 18) DISPLAY TAB11 (NUM) .
                IF ( NUM = 19) DISPLAY TAB11 (NUM) .
                IF (NUM1 NOT > 19) STOP RUN.
                DIVIDE 10000000 INTO NUM GIVING Q REMAINDER NUM.
                IF (Q > 0)
                   IF (Q NOT > 19)
                       DISPLAY TAB11 (Q), " CRORE "
                   ELSE
                       DIVIDE 10 INTO Q GIVING Q REMAINDER J
                       COMPUTE Q = Q - 1
                       DISPLAY TAB22 (Q) TAB11 (J), "CRORE ".
                DIVIDE 100000 INTO NUM GIVING Q REMAINDER NUM.
                IF (Q > 0)
                   IF (Q NOT > 19)
                       DISPLAY TAB11 (Q), " LAC "
                   ELSE
                       DIVIDE 10 INTO Q GIVING Q REMAINDER J
                       COMPUTE Q = Q - 1
                       DISPLAY TAB22 (Q) TAB11 (J), "LAC ".
                 DIVIDE 1000 INTO NUM GIVING Q REMAINDER NUM.
                IF (Q > 0)
                   IF (Q NOT > 19)
                       DISPLAY TAB11 (Q), "THOUSAND "
                   ELSE
                       DIVIDE 10 INTO Q GIVING Q REMAINDER J
                       COMPUTE Q = Q - 1
                       DISPLAY TAB22 (Q) TAB11 (J), "THOUSAND ".
            
                DIVIDE 100 INTO NUM GIVING Q REMAINDER NUM.
                IF ( Q > 0)
                   DISPLAY  TAB11 (Q), "HUNDRED " .
                DIVIDE 10 INTO NUM GIVING Q REMAINDER NUM.
                IF (Q > 0)
                   IF (Q NOT > 1) DISPLAY TAB11 (Q)
                   ELSE
                      COMPUTE Q = Q - 1
                      DISPLAY TAB22 (Q) TAB11 (NUM).
                STOP RUN .