COBOL 輸入

  • 231
  • 0
  • 2019-05-25

COBOL 輸入

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-STUDENT-NAME PIC X(25).
   01 WS-DATE PIC X(10).

PROCEDURE DIVISION.
   ACCEPT WS-STUDENT-NAME.
   ACCEPT WS-DATE FROM DATE.
   DISPLAY "Name :  " WS-STUDENT-NAME.
   DISPLAY "Date : " WS-DATE.

STOP RUN.
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STUDENT_NAME PIC X(25).
01 Hour PIC 9(2) VALUE 8.
01 Salary-Per-Hour PIC 9(3) VALUE 120.
01 Salary PIC 9(4).

PROCEDURE DIVISION.
ACCEPT WS-STUDENT_NAME.
ADD Hour Salary-Per-Hour TO Salary.
MULTIPLY Hour BY  Salary-Per-Hour GIVING Salary
DISPLAY "WS-NUM1 : "Hour.
DISPLAY "WS-NUM1 : "Salary-Per-Hour.
DISPLAY "WS-NUM1 : "Salary.
STOP RUN.
IDENTIFICATION DIVISION.
PROGRAM-ID. STUDY2-009.
ENVIRONMENT DIVISION.

DATA DIVISION.
WORKING-STORAGE SECTION.
77 SNO PIC X(5) VALUE '10011'.
77 SNAME PIC X(8) VALUE 'ZHANGSAN'.
77 SX PIC 999V9 VAlue '12'.
77 YW PIC 999V9 VAlue '19'.
77 RY PIC 999V9.
77 ZY PIC 999V9.
77 ZJ PIC 999V9.
77 PJF PIC 999V9.
77 SX-P PIC 999.9.
77 YW-P PIC 999.9.
77 RY-P PIC 999.9.
77 ZY-P PIC 999.9.
77 ZJ-P PIC 999.9.
77 PJF-P PIC 999.9.

PROCEDURE DIVISION.

INPUTNUMBER SECTION.
DISPLAY 'SX:' WITH NO ADVANCING.
ACCEPT SX.
DISPLAY 'YW:' WITH NO ADVANCING.
ACCEPT YW.
DISPLAY 'RY:' WITH NO ADVANCING.
ACCEPT RY.
DISPLAY 'ZY:' WITH NO ADVANCING.
ACCEPT ZY.

COMPUTENUMBER SECTION.
COMPUTE ZJ = SX + YW + RY + ZY
COMPUTE PJF = ZJ / 4.

MOVENUMBER SECTION.
MOVE SX TO SX-P 
MOVE YW TO YW-P
MOVE RY TO RY-P
MOVE ZY TO ZY-P
MOVE ZJ TO ZJ-P
MOVE PJF TO PJF-P.

DISPLAYNUMBER SECTION.
DISPLAY 'SX=' SX-P
DISPLAY 'YW=' YW-P    				
DISPLAY 'RY=' RY-P
DISPLAY 'ZY=' ZY-P
DISPLAY 'ZJ=' ZJ-P
DISPLAY 'PJF=' PJF-P

STOP RUN.

IDENTIFICATION IVISION.
PROGRAM-ID.

ENVIRONMENT	DIVISION.

DATA DIVISION.
WORKING-STORAGE SECTION.
77 DA1 PIC 99.
77 DA2 PIC 99.
77 DA3 PIC 99.
77 DA4 PIC Z9.
77 DA5 PIC Z9.
77 DA6 PIC Z9.

PROCEDURE DIVISION.
P.PERFORM A
ARYING DA1 FROM 1 BY 1 UNTIL DA1 > 9
AFTER DA2 FROM 1 BY 1 UNTIL DA2 > DA1.
STOP RUN.
    
A.  COMPUTE DA3 = DA1 * DA2.
MOVE DA3 TO DA4.
MOVE DA1 TO DA5.
MOVE DA2 TO DA6.
IF DA1 = DA2  DISPLAY DA6 '*' DA5 '=' DA4 ' '  
ELSE          DISPLAY DA6 '*' DA5 '=' DA4 ' ' WITH NO ADVANCING
END-IF.   
DATA DIVISION.
   FILE SECTION.
   FD INPUT.
      01 INPUT-STUDENT.
         01 STUDENT-NUM-I PIC 999.
   FD OUTPUT.
      01 OUTPUT-STUDENT.
         05 STUDENT-NUM-O PIC 999.
   SD WORK.
      01 WORK-STUDENT.
         05 STUDENT-NUM-W PIC 999.
         
PROCEDURE DIVISION.
/*Merge*/
   SORT WORK ON ASCENDING KEY STUDENT-NUM-O
   USING INPUT GIVING OUTPUT.
   COMPUTE N1=N2+N3.
   DISPLAY "SCORE :  " N1.
STOP RUN.