Presentation is loading. Please wait.

Presentation is loading. Please wait.

Modifications to program Addda.cbl Please use speaker notes for additional information!

Similar presentations


Presentation on theme: "Modifications to program Addda.cbl Please use speaker notes for additional information!"— Presentation transcript:

1 Modifications to program Addda.cbl Please use speaker notes for additional information!

2 IDENTIFICATION DIVISION. PROGRAM-ID. ADDPROG. AUTHOR. GROCER. *ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 INPUT-AREA. 05 GET-ACCEPT-ANS PIC X VALUE SPACES. 05 FIRST-NUMBER PIC 999 VALUE 0. 05 SECOND-NUMBER PIC 999 VALUE 0. 05 ADD-ANS PIC 9999 VALUE 0. PROCEDURE DIVISION. MAINLINE. DISPLAY "ENTER THE FIRST NUMBER (UNDER 1000)". ACCEPT FIRST-NUMBER. DISPLAY "ENTER THE SECOND NUMBER (UNDER 1000)". ACCEPT SECOND-NUMBER. ADD FIRST-NUMBER TO SECOND-NUMBER GIVING ADD-ANS. * ADD FIRST-NUMBER SECOND-NUMBER * GIVING ADD-ANS. * ADD FIRST-NUMBER, SECOND-NUMBER * GIVING ADD-ANS. DISPLAY "THE ANSWER IS " ADD-ANS. DISPLAY "PRESS ENTER TO END THE PROGRAM". ACCEPT GET-ACCEPT-ANS. STOP RUN. ADDDA.CBL Two other ways that the ADD statement could have been written - shown as comments.

3 ADDDA1.CBL IDENTIFICATION DIVISION. PROGRAM-ID. ADDPROG. AUTHOR. GROCER. *ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 INPUT-AREA. 05 GET-ACCEPT-ANS PIC X VALUE SPACES. 05 FIRST-NUMBER PIC 999 VALUE 0. 05 SECOND-NUMBER PIC 999 VALUE 0. 05 ADD-ANS PIC 9999 VALUE 0. PROCEDURE DIVISION. MAINLINE. DISPLAY "ENTER THE FIRST NUMBER (UNDER 1000)". ACCEPT FIRST-NUMBER. DISPLAY "ENTER THE SECOND NUMBER (UNDER 1000)". ACCEPT SECOND-NUMBER. COMPUTE ADD-ANS = FIRST-NUMBER + SECOND-NUMBER. DISPLAY "THE ANSWER IS " ADD-ANS. DISPLAY "PRESS ENTER TO END THE PROGRAM". ACCEPT GET-ACCEPT-ANS. STOP RUN. The COMPUTE statement is an alternate way to do mathematics. In this example I am saying COMPUTE ADD- ANS = to the sum of the data in FIRST- NUMBER and the data in SECOND- NUMBER.

4 ADDDA1.INT When I ran ADDDA1.INT, it produce the results shown above.

5 IDENTIFICATION DIVISION. PROGRAM-ID. ADDPROG. AUTHOR. GROCER. *ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 INPUT-AREA. 05 GET-ACCEPT-ANS PIC X VALUE SPACES. 05 FIRST-NUMBER PIC 999 VALUE 0. 05 SECOND-NUMBER PIC 999 VALUE 0. 05 ADD-ANS PIC 9999 VALUE 0. PROCEDURE DIVISION. MAINLINE. DISPLAY "ENTER THE FIRST NUMBER (UNDER 1000)". ACCEPT FIRST-NUMBER. DISPLAY "ENTER THE SECOND NUMBER (UNDER 1000)". ACCEPT SECOND-NUMBER. COMPUTE ADD-ANS = FIRST-NUMBER + SECOND-NUMBER * 2. DISPLAY "THE ANSWER IS " ADD-ANS. DISPLAY "PRESS ENTER TO END THE PROGRAM". ACCEPT GET-ACCEPT-ANS. STOP RUN. ADDDA1A.CBL

6 Order of Operation: Works from left to right Resolves parenthesis first Order of mathematics: Exponentiation Multiplication or Division Addition or Subtraction Order of Operation

7 ADDDA1A.INT COMPUTE ADD-ANS = FIRST-NUMBER + SECOND-NUMBER * 2. = 5 + 6 * 2 = 5 + 12 = 0017

8 IDENTIFICATION DIVISION. PROGRAM-ID. ADDPROG. AUTHOR. GROCER. *ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 INPUT-AREA. 05 GET-ACCEPT-ANS PIC X VALUE SPACES. 05 FIRST-NUMBER PIC 999 VALUE 0. 05 SECOND-NUMBER PIC 999 VALUE 0. 05 ADD-ANS PIC 9999 VALUE 0. PROCEDURE DIVISION. MAINLINE. DISPLAY "ENTER THE FIRST NUMBER (UNDER 1000)". ACCEPT FIRST-NUMBER. DISPLAY "ENTER THE SECOND NUMBER (UNDER 1000)". ACCEPT SECOND-NUMBER. COMPUTE ADD-ANS = (FIRST-NUMBER + SECOND-NUMBER) * 2. DISPLAY "THE ANSWER IS " ADD-ANS. DISPLAY "PRESS ENTER TO END THE PROGRAM". ACCEPT GET-ACCEPT-ANS. STOP RUN. ADDDA1B.CBL

9 ADDDA1B.INT COMPUTE ADD-ANS = (FIRST-NUMBER + SECOND-NUMBER) * 2. = ( 5 + 6 ) * 2 = 11 * 2 = 0022

10 ADDDA2.CBL

11 IDENTIFICATION DIVISION. PROGRAM-ID. ADDPROG. AUTHOR. GROCER. *ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 INPUT-AREA. 05 GET-ACCEPT-ANS PIC X VALUE SPACES. 05 FIRST-NUMBER PIC 999 VALUE 0. 05 SECOND-NUMBER PIC 999 VALUE 0. 05 ADD-ANS PIC 9999 VALUE 0. 05 FINAL-ANS PIC 9999 VALUE 0. PROCEDURE DIVISION. MAINLINE. DISPLAY "ENTER THE FIRST NUMBER (UNDER 1000)". ACCEPT FIRST-NUMBER. DISPLAY "ENTER THE SECOND NUMBER (UNDER 1000)". ACCEPT SECOND-NUMBER. ADD FIRST-NUMBER SECOND-NUMBER GIVING ADD-ANS. MULTIPLY ADD-ANS BY 2 GIVING FINAL-ANS. DISPLAY "THE ANSWER IS " ADD-ANS " " FINAL-ANS. DISPLAY "PRESS ENTER TO END THE PROGRAM". ACCEPT GET-ACCEPT-ANS. STOP RUN. ADDDA2.CBL

12 ADDDA2.INT ADD FIRST-NUMBER SECOND-NUMBER GIVING ADD-ANS. 12 + 17 = 29 MULTIPLY ADD-ANS BY 2 GIVING FINAL-ANS. 29 * 2 = 58

13 IDENTIFICATION DIVISION. PROGRAM-ID. ADDPROG. AUTHOR. GROCER. *ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 INPUT-AREA. 05 GET-ACCEPT-ANS PIC X VALUE SPACES. 05 FIRST-NUMBER PIC 999 VALUE 0. 05 SECOND-NUMBER PIC 999 VALUE 0. 01 OUTPUT-AREA. 05 ADD-ANS PIC 9999 VALUE 0. 05 FINAL-ANS PIC 9999 VALUE 0. PROCEDURE DIVISION. MAINLINE. DISPLAY "ENTER THE FIRST NUMBER (UNDER 1000)". ACCEPT FIRST-NUMBER. DISPLAY "ENTER THE SECOND NUMBER (UNDER 1000)". ACCEPT SECOND-NUMBER. ADD FIRST-NUMBER SECOND-NUMBER GIVING ADD-ANS. MULTIPLY ADD-ANS BY 2 GIVING FINAL-ANS. DISPLAY "THE ANSWER IS " ADD-ANS " " FINAL-ANS. DISPLAY "PRESS ENTER TO END THE PROGRAM". ACCEPT GET-ACCEPT-ANS. STOP RUN. ADDDA2A.CBL This more accurately shows how the data is actually being used.

14 ADDDA3.CBL This is where I am storing the output, I have edited it so that a comma will be inserted if needed and so the Zs will suppress leading zeros. Notice that edited data does not have a value! The results of the calculations are being stored in ADD-ANS-WS and FINAL-ANS-WS. Note, the data is being stored in a pure numeric field without editing characters. When I am ready to display the data, I move it to the output areas(ADD-ANS-OUT and FINAL-ANS-OUT) that contain the editing characters and then display the output areas.

15 ADDDA3.INT The PIC Z,ZZ9 suppresses leading zeros so you now see the answers as 11 and 22. Note that there is a 9 in the units position, so if the answer was 0, the single 0 would print since the units position is not suppressed. The PIC Z,ZZ9 inserts the comma in the answers shown.

16 ADDDA4.CBL The pictures have now been defined so they can hold decimal numbers, not just whole numbers. The V is an assumed decimal point that essentially says assume that the decimal point is here when you do your calculations. The user wants to see an actual decimal point, so in the output pictures where I have done my editing, I use the actual decimal point.

17 ADDDA4.INT

18 ADDDA5.CBL S is used with the pictures where the answer is being stored. S remembers the sign. The actual sign is used in the output picture so the user can tell if the data is negative. Note that in one case the negative sign is in front of the data and in one case it is after the data.

19 ADDDA5.INT In the first example, the subtraction did not result in a negative answer so the negative sign in the output pictures turned to a space. In the second example, the answer was negative. The S remembered that it had a negative answer and the sign in the output picture showed the sign.

20 ADDDA6.CBL Input now supports negative data.

21 ADDDA6.INT Negative data was entered into the second number. When the subtraction was done, the answer also was a negative.


Download ppt "Modifications to program Addda.cbl Please use speaker notes for additional information!"

Similar presentations


Ads by Google