Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.85 KB | None | 0 0
  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. PGMFN.
  3. DATE-COMPILED.
  4.  
  5. ENVIRONMENT DIVISION.
  6. CONFIGURATION SECTION.
  7. SOURCE-COMPUTER. IBM-PC.
  8. OBJECT-COMPUTER. IBM-PC.
  9. SPECIAL-NAMES. DECIMAL-POINT IS COMMA.
  10.  
  11. INPUT-OUTPUT SECTION.
  12. SELECT CADALU ASSIGN TO DISK
  13. ORGANIZATION IS LINE SEQUENTIAL.
  14.  
  15. SELECT CADALUS ASSIGN TO DISK.
  16.  
  17. SELECT CADALUAP ASSIGN TO DISK
  18. ORGANIZATION IS LINE SEQUENTIAL.
  19.  
  20. SELECT RELALUAP ASSIGN TO DISK
  21. ORGANIZATION IS LINE SEQUENTIAL.
  22.  
  23. DATA DIVISION.
  24. FILE SECTION.
  25.  
  26. FD CADALU
  27. LABEL RECORDS IS STANDARD
  28. VALUE OF FILE-ID IS "CADALU.DAT".
  29.  
  30. 01 REGALU.
  31. 05 CODALU PIC 9(6).
  32. 05 NOMALU PIC X(30).
  33. 05 NOTAALU PIC 9(2).
  34.  
  35. SD CADALUS.
  36.  
  37. 01 REGALUS.
  38. 05 CODALUS PIC 9(6).
  39. 05 NOMALUS PIC X(30).
  40. 05 NOTAALUS PIC 9(2).
  41.  
  42. FD CADALUAP
  43. LABEL RECORDS IS STANDARD
  44. VALUE OF FILE-ID IS "CADALUAP.DAT".
  45.  
  46. 01 REGALUAP.
  47. 05 CODALUAP PIC 9(6).
  48. 05 NOMALUAP PIC X(30).
  49. 05 NOTAALUAP PIC 9(2).
  50.  
  51. FD RELALUAP
  52. LABEL RECORDS IS OMITTED.
  53.  
  54. 01 REGPRINT PIC X(80).
  55.  
  56. WORKING-STORAGE SECTION.
  57. 77 FLAG PIC X VALUE "N".
  58. 77 FLAG2 PIC X VALUE "N".
  59. 77 LINHA PIC 9(2) VALUE 25.
  60. 77 PAG PIC 9(3) VALUE ZEROES.
  61.  
  62. 01 CAB1.
  63. 05 FILLER PIC X(10) VALUE SPACES.
  64. 05 FILLER PIC X(27) VALUE "RELATORIO ALUNOS APROVADOS ".
  65. 05 FILLER PIC X(35) VALUE SPACES.
  66. 05 FILLER PIC X(4) VALUE "PAG:".
  67. 05 VAR-PAG PIC ZZ9 VALUE SPACES.
  68.  
  69. 01 CAB2.
  70. 05 FILLER PIC X(9) VALUE SPACES.
  71. 05 FILLER PIC X(6) VALUE "NUMERO".
  72. 05 FILLER PIC X(16) VALUE SPACES.
  73. 05 FILLER PIC X(4) VALUE "NOME".
  74. 05 FILLER PIC X(18) VALUE SPACES.
  75. 05 FILLER PIC X(4) VALUE "NOTA".
  76. 05 FILLER PIC X(5) VALUE SPACES.
  77. 05 FILLER PIC X(8) VALUE "CONCEITO".
  78.  
  79. 01 REGDETALHE.
  80. 05 FILLER PIC X(9) VALUE SPACES.
  81. 05 VAR-NUM PIC X(06) VALUE SPACES.
  82. 05 FILLER PIC X(5) VALUE SPACES.
  83. 05 VAR-NOME PIC X(30) VALUE SPACES.
  84. 05 FILLER PIC X(3) VALUE SPACES.
  85. 05 VAR-NOTA PIC 9(2) VALUE ZEROES.
  86. 05 FILLER PIC X(10) VALUE SPACES.
  87. 05 VAR-CONCEITO PIC X(1) VALUE ZEROES.
  88.  
  89. PROCEDURE DIVISION.
  90. PRINCIPAL.
  91.  
  92. SORT CADALUS ON ASCENDING KEY NOMALUS
  93. INPUT PROCEDURE ORDENA
  94. OUTPUT PROCEDURE IMPRIME.
  95.  
  96. CLOSE CADALU CADALUAP RELALUAP.
  97. STOP RUN.
  98.  
  99. IMPRIME.
  100. OPEN OUTPUT RELALUAP.
  101. RETURN CADALUS RECORD INTO REGALUAP AT END MOVE "S" TO FLAG2.
  102. WRITE REGALUAP.
  103. PERFORM ROTINAIMPRIME UNTIL FLAG2 EQUAL "S".
  104.  
  105. ROTINAIMPRIME.
  106. PERFORM IMPRIMEREL.
  107. RETURN CADALUS RECORD INTO REGALUAP AT END MOVE "S" TO FLAG2.
  108. WRITE REGALUAP.
  109.  
  110. IMPRIMEREL.
  111.  
  112. IF LINHA GREATER THAN 20
  113. PERFORM CABECALHO.
  114.  
  115. IF NOTAALUAP < 8
  116. MOVE CODALUAP TO VAR-NUM
  117. MOVE NOMALUAP TO VAR-NOME
  118. MOVE NOTAALUAP TO VAR-NOTA
  119. MOVE "B" TO VAR-CONCEITO
  120. WRITE REGPRINT FROM REGDETALHE AFTER ADVANCING 1 LINES
  121. ADD 1 TO LINHA
  122. ELSE IF NOTAALUAP < 9
  123. MOVE CODALUAP TO VAR-NUM
  124. MOVE NOMALUAP TO VAR-NOME
  125. MOVE NOTAALUAP TO VAR-NOTA
  126. MOVE "A" TO VAR-CONCEITO
  127. WRITE REGPRINT FROM REGDETALHE AFTER ADVANCING 1 LINES
  128. ADD 1 TO LINHA
  129. ELSE
  130. MOVE CODALUAP TO VAR-NUM
  131. MOVE NOMALUAP TO VAR-NOME
  132. MOVE NOTAALUAP TO VAR-NOTA
  133. MOVE "E" TO VAR-CONCEITO
  134. WRITE REGPRINT FROM REGDETALHE AFTER ADVANCING 1 LINES
  135. ADD 1 TO LINHA
  136. NEXT SENTENCE.
  137.  
  138. CABECALHO.
  139. ADD 1 TO PAG.
  140. MOVE PAG TO VAR-PAG.
  141. MOVE SPACES TO REGPRINT.
  142. WRITE REGPRINT AFTER ADVANCING PAGE.
  143. WRITE REGPRINT FROM CAB1 AFTER ADVANCING 1 LINES.
  144. WRITE REGPRINT FROM CAB2 AFTER ADVANCING 1 LINES.
  145. MOVE 0 TO LINHA.
  146.  
  147.  
  148. ORDENA.
  149. OPEN INPUT CADALU OUTPUT CADALUAP.
  150. PERFORM LER.
  151. PERFORM SEPARA UNTIL FLAG EQUAL "S".
  152.  
  153. LER.
  154. READ CADALU AT END MOVE "S" TO FLAG.
  155.  
  156. SEPARA.
  157. IF NOTAALU < 6
  158. MOVE REGALU TO REGALUS
  159. RELEASE REGALUS
  160. ELSE
  161. NEXT SENTENCE.
  162.  
  163. PERFORM LER.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement