fork download
  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. PROG 5.
  3. *
  4. ENVIRONMENT DIVISION.
  5. *
  6. INPUT-OUTPUT SECTION.
  7. FILE-CONTROL.
  8. SELECT STORE-FILE-IN
  9. ASSIGN TO KEYBOARD
  10. SELECT STORE-FILE-OUT
  11. ASSIGN TO DISPLAY
  12. *
  13. *
  14. *
  15. *
  16. *
  17. DATA DIVISION.
  18. *
  19. *
  20. FILE SECTION.
  21. *
  22. *
  23. FD STORE-FILE-IN.
  24. *
  25. 01 STORE-RECORD-IN PIC X(25).
  26. *
  27. FD STORE-FILE-OUT.
  28. *
  29. 01 STORE-RECORD-OUT PIC X(100).
  30. *
  31. WORKING-STORAGE SECTION.
  32. *
  33. WS-MORE-INPUT PIC X(01) VALUE "Y".
  34. *
  35. WS-ERROR-FLAG PIC X(01) VALUE "Y".
  36. *
  37. WS-STORE-RECORD-IN.
  38. 05 PIC X(01).
  39. 05 DISTRICT-CODE-IN PIC X(02).
  40. 88 VALID-DISTRICT-CODE VALUE "20" THRU "80".
  41. 88 DISTRICT-CODE-BLANK VALUE SPACES.
  42. 05 PIC X(01).
  43. 05 STORE-CODE-IN.
  44. 10 STORE-CODE-1-IN PIC X(01).
  45. 10 STORE-CODE-2-IN PIC X(01).
  46. 88 VALID-STORE-CODE VALUE "C" THRU "L".
  47. 10 STORE-CODE-3-IN PIC X(01).
  48. 05 PIC X(01).
  49. 05 DEPARTMENT-CODE-IN.
  50. 10 DEPT-CODE-1-IN PIC X(02).
  51. 10 DEPT-CODE-2-IN PIC X(03).
  52. 05 PIC X(01).
  53. 05 TRANSACTION-TYPE-IN PIC X(02).
  54. 88 TRANSACTION-BLANK VALUE SPACES.
  55. 05 PIC X(01).
  56. 05 TRANSACTION-AMOUNT-IN-X PIC X(07).
  57. 05 TRANSACTION-AMOUNT-IN-9
  58. REDEFINES
  59. TRANSACTION-AMOUNT-IN-X PIC 9(05)V99.
  60. *
  61. 01 WS-HEADING-LINE-1.
  62. 05 PIC X(08) VALUE "DISTRICT".
  63. 05 PIC X(01) VALUE SPACES.
  64. 05 PIC X(05) VALUE "STORE".
  65. 05 PIC X(01) VALUE SPACES.
  66. 05 PIC X(10) VALUE "DEPARTMENT".
  67. 05 PIC X(01) VALUE SPACES.
  68. 05 PIC X(11) VALUE "TRANSACTION".
  69. *
  70. 01 WS-HEADING-LINE-2.
  71. *
  72. 01 WS-DETAIL-LINE
  73. 05 DISTRICT-OUT PIC X(03).
  74. 05 PIC X(01) VALUE SPACES.
  75. 05 STORE-OUT PIC X(03).
  76. 05 PIC X(01) VALUE SPACES.
  77. 05 DEPARTMENT-OUT PIC X(05).
  78. 05 PIC X(01) VALUE SPACES.
  79. 05 TRANSACTION-TYPE-OUT PIC X(02).
  80. 05 PIC X(01) VALUE SPACES.
  81. O5 TRASNACTION-AMOUNT-OUT PIC X(07).
  82. 05 PIC X(01) VALUE SPACES.
  83. 05 ERROR-OUT PIC X(30).
  84. *
  85. 01 WS-ACCUMULATORS.
  86. 05 WS-GOOD-RECORDS PIC 9(03) VALUE 0.
  87. 05 WS-BAD-RECORDS PIC 9(03) VALUE 0.
  88. 05 WS-TRANSACTION-TOTAL PIC 9(10)V99 VALUE 0.
  89. *
  90. 01 WS-SUMMARY-LINE-1.
  91. 05 PIC X(19) VALUE "GOOD RECORDS FOUND:".
  92. 05 PIC X(03) VALUE SPACES.
  93. 05 GOOD-RECORDS-OUT PIC 9(03).
  94. *
  95. 01 WS-SUMMARY-LINE-2.
  96. 05 PIC X(18) VALUE "BAD RECORDS FOUND:".
  97. 05 PIC X(03) VALUE SPACES.
  98. 05 BAD-RECORDS-OUT PIC 9(03).
  99. *
  100. 01 WS-SUMMARY-LINE-3.
  101. 05 PIC X(21) VALUE "TOTAL OF TRANSACTIONS:".
  102. 05 PIC X(03) VALUE SPACES.
  103. 05 TRANSACTION-AMOUNT-OUT PIC $(05)9.99.
  104. *
  105. *
  106. *
  107. *
  108. *
  109. PROCEDURE DIVISION.
  110. *
  111. *
  112. MAIN-CONTROL-PARA.
  113. PERFORM INITIALIZATION-PARA
  114. PERFORM READ-PARA
  115. PERFORM HEADINGS-PARA
  116. PERFORM MAIN-LOOP-PARA
  117. PERFORM SUMMARY-PAGE-PARA
  118. PERFORM TERMINATION-PARA
  119. .
  120. *
  121. *
  122. INITIALIZATION-PARA.
  123. OPEN INPUT STORE-FILE-IN
  124. OUTPUT STORE-FILE-OUT
  125. .
  126. *
  127. *
  128. READ-PARA.
  129. READ STORE-FILE-IN
  130. INTO WS-STORE-RECORD-IN
  131. AT END MOVE "N" TO WS-MORE-INPUT
  132. END-READ
  133. .
  134. *
  135. *
  136. HEADINGS-PARA.
  137. WRITE STORE-RECORD-OUT FROM WS-HEADING-LINE-1
  138. AFTER ADVANCING 1 LINE
  139. .
  140. *
  141. *
  142. MAIN-LOOP-PARA.
  143. PERFORM DETAIL-LINE-PARA
  144. PERFORM READ-PARA
  145. .
  146. *
  147. *
  148. DETAIL-LINE-PARA.
  149. MOVE DISTRICT-IN TO DISTRICT-OUT
  150. MOVE STORE-IN TO STORE-OUT
  151. MOVE DEPARTMENT-IN TO DEPARTMENT-OUT
  152. MOVE TRANSACTION-TYPE-IN TO TRANSACTION-TYPE-OUT
  153. MOVE TRANSACTION-AMOUNT-IN-X TO TRANSACTION-AMOUNT-OUT
  154. WRITE STORE-RECORD-OUT FROM WS-DETAIL-LINE
  155. PERFORM CHECK-VALUES-PARA
  156. PERFORM ACCUMULATE-TOTALS-PARA
  157. .
  158. *
  159. *
  160. CHECK-VALUES-PARA.
  161. MOVE "NO ERRORS" TO ERROR-OUT
  162. .
  163. *
  164. *
  165. ACCUMULATE-TOTALS-PARA.
  166. ADD 1 TO WS-GOOD-RECORDS
  167. .
  168. *
  169. *
  170. SUMMARY-PAGE-PARA.
  171. MOVE SPACES TO STORE-RECORD-OUT
  172. WRITE STORE-RECORD-OUT AFTER ADVANCING 5 LINES
  173. .
  174. *
  175. *
  176. TERMINATION-PARA.
  177. CLOSE STORE-FILE-IN
  178. STORE-FILE-OUT
  179. STOP RUN
  180. .
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
 44 8C3 44666 RT 1191222
 94 4E4 94738 XX 0087654
 38 4P9 83333    3899999
    8A4 22222 CN 3000000
 71 333       RT 0000150
 41 6D2 41444 CN 0077777
 9A     9A999 NS 6666TTT
 38 222 83419 RR
 11 2D9 11654 CN 0004444
 22 4D7 22824 NS 0012345
 38 3F9 38388 RT 0000222
 7  9-3 72    R  08
 20 4D3 123G9 RT 1111111
              SS
 88 888 BBBBB    9000000  
 
compilation info
prog.cob:180: Warning: File not terminated by a newline
prog.cob:2: Error: syntax error, unexpected LITERAL, expecting $end
stdout
Standard output is empty