Previously we have learned the most basic data types and syntax to build a COBOL program, this time we try to read some complete programs.
1. Enter and display the information entered by the user on the screen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | IDENTIFICATION DIVISION. PROGRAM-ID. PRG10. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 77 NUM1 PIC 9(4). 77 NUM2 PIC 9(4). 77 TOTAL PIC 9(5). PROCEDURE DIVISION. ACCEPT NUM1. ACCEPT NUM2. ADD NUM1 TO NUM2 GIVING TOTAL. DISPLAY TOTAL. SUBTRACT NUM1 FROM NUM2 GIVING TOTAL. DISPLAY TOTAL. MULTIPLY NUM1 BY NUM2 GIVING TOTAL. DISPLAY TOTAL. DIVIDE NUM1 BY NUM2 GIVING TOTAL. DISPLAY TOTAL. STOP RUN. |
In the above program, you can enter 2 numbers, display on the screen, and sum, difference, product, quotient 2 numbers above.
2. Enter, display the date in the format:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE2. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 G1. 02 YY PIC X(2). 02 MM PIC X(2). 02 DD PIC X(2). 01 G2. 02 DD PIC X(2). 02 FILLER PIC X VALUE '-'. 02 MM PIC X(2). 02 FILLER PIC X VALUE '-'. 02 YY PIC X(2). 01 G3. 02 HH PIC X(2). 02 MM PIC X(2). 02 SS PIC X(2). 01 G4. 02 HH PIC X(2). 02 FILLER PIC X VALUE ':'. 02 MM PIC X(2). 02 FILLER PIC X VALUE ':'. 02 SS PIC X(2). PROCEDURE DIVISION. ACCEPT G1 FROM DATE. ACCEPT G3 FROM TIME. MOVE CORRESPONDING G1 TO G2. MOVE CORRESPONDING G3 TO G4. DISPLAY G2. DISPLAY G4. STOP RUN. |
In the above program, the current date is obtained by the symbols MM, DD, YY, then displayed in the format marked “-“.
3. Enter, display scores, average and rank:
For example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE3. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 G1. 02 MARK1 PIC 9(2). 02 FILLER PIC X. 02 MARK2 PIC 9(2). 02 FILLER PIC X. 02 MARK3 PIC 9(2). 77 TOTAL PIC 9(3). 77 AVG PIC 9(3)V9(3). 77 PER PIC 9(3)V9(3). 77 GRADE PIC A(5). PROCEDURE DIVISION. MAIN-PARA. PERFORM ACCEPT-PARA THRU DISP-PARA 5 TIMES. STOP RUN. ACCEPT-PARA. ACCEPT G1. COMP-PARA. COMPUTE TOTAL = ( MARK1 + MARK2 + MARK3 ). COMPUTE AVG = TOTAL / 3. COMPUTE PER = ( TOTAL / 300 ) * 100. IF AVG > 80 MOVE "I" TO GRADE ELSE IF AVG > 60 AND AVG < 79 MOVE "II" TO GRADE ELSE IF AVG > 40 AND AVG < 60 MOVE "III" TO GRADE ELSE MOVE "FAIL" TO GRADE END-IF. DISP-PARA. DISPLAY "THE TOTAL IS: " TOTAL. DISPLAY "THE AVERAGE IS: " AVG. DISPLAY "THE PERCENTAGE IS: " PER. DISPLAY "GRADE IS: " GRADE. |
The above program allows you to enter 3 columns of points, calculate the total score, average score and rank I, II, III of FAIL for 5 students.
4. Enter a number, check that the number is a prime number or not:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE4. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 77 INP-NUM PIC 9(3). 77 RES PIC 9(1) VALUE 0. 77 INC PIC 9(2) VALUE 2. 77 QUO PIC ZZ9. 77 REM PIC ZZ9. PROCEDURE DIVISION. MAIN-PARA. PERFORM ACCEPT-PARA. PERFORM COMP-PARA. PERFORM DISP-PARA. STOP RUN. ACCEPT-PARA. ACCEPT INP-NUM. COMP-PARA. PERFORM UNTIL INC < INP-NUM DIVIDE INP-NUM BY INC GIVING QUO REMAINDER REM IF REM IS EQUAL TO 0 MOVE 1 TO RES EXIT ELSE COMPUTE INC = INC + 1 END-IF END-PERFORM. DISP-PARA. IF RES IS EQUAL TO 0 DISPLAY "THE GIVEN NUMBER IS PRIME!" ELSE DISPLAY "THE GIVEN NUMBER IS NON PRIME!" END-IF. |
Above are some basic programs of COBOL, with very basic topics that we often encounter when learning new programming languages.
Here I would like to guide how to run an online COBOL program:
- You go to https://www.tutorialspoint.com/compile_cobol_online.php to compile.
- Paste your source code into the main.cobc tab, the parameters then paste into the STDIN tab.
- Then execute and check the results.
Hopefully through your 3 posts, you are more familiar with this old programming language. If you have any questions or need to discuss, you can post a comment to discuss.
Reference links:
https://surendersampath.wordpress.com/2017/11/13/cobol-sample-programs/