Welcome back! In the previous lesson, you explored how to define and manage numeric variables in COBOL. Understanding numeric data is essential, as many business applications rely on accurate calculations. Now, it's time to take a step further by learning about simple arithmetic operations in COBOL. This is a fundamental skill that will enable you to perform essential calculations such as addition and subtraction.
In this lesson, you will learn to perform basic arithmetic operations on numeric variables in COBOL. Specifically, we will cover the following topics:
Let's delve into these topics through an example. Consider the following COBOL program that demonstrates adding and subtracting two numeric values:
cobol1IDENTIFICATION DIVISION. 2PROGRAM-ID. AddAndSubtract. 3DATA DIVISION. 4WORKING-STORAGE SECTION. 501 Value1 PIC 9(3). 601 Value2 PIC 9(3). 701 Result PIC 9(5). 8 9PROCEDURE DIVISION. 10 MOVE 100 TO Value1. 11 MOVE 480 TO Value2. 12 13 *> ADD operation 14 ADD Value1 TO Value2 GIVING Result. 15 DISPLAY "The result of addition is: " Result. *> 00580, same as 580 16 17 *> SUBTRACT operation 18 SUBTRACT Value1 FROM Value2 GIVING Result. 19 DISPLAY "The result of subtraction is: " Result. *> 00380, same as 380 20 21 *> SUBTRACT operation with reversed operands 22 SUBTRACT Value2 FROM Value1 GIVING Result. 23 DISPLAY "The result of subtraction is: " Result. *> 00380, same as 380 24 25 STOP RUN.
Note: When displayed, the numbers are padded with leading zeros to fill the entire field. This is a common practice in COBOL to ensure that the output is aligned correctly. However, the actual value stored in the variable does not contain these leading zeros. For simplicity, we will ignore the leading zeros in the output and focus on the actual values from now on.
Let's examine the code in detail to understand the arithmetic operations it performs:
Variable Declaration:
cobol101 Value1 PIC 9(3). 201 Value2 PIC 9(3). 301 Result PIC 9(5).
Here, Value1
and Value2
are numeric variables that can hold up to 3 digits, while Result
can hold up to 5 digits.
Assigning Values:
cobol1MOVE 100 TO Value1. 2MOVE 480 TO Value2.
The MOVE
statements assign the values 100
to Value1
and 480
to Value2
.
Adding Values:
cobol1ADD Value1 TO Value2 GIVING Result.
This ADD
statement adds Value1
and Value2
, storing the result in Result
. The DISPLAY
statement outputs the sum:
cobol1DISPLAY "The result of addition is: " Result. *> 580
Subtracting Values:
cobol1SUBTRACT Value1 FROM Value2 GIVING Result. 2DISPLAY "The result of subtraction is: " Result. *> 380
The SUBTRACT
statement subtracts Value1
from Value2
, storing the result in Result
.
Reversed Subtraction:
cobol1SUBTRACT Value2 FROM Value1 GIVING Result. 2DISPLAY "The result of subtraction is: " Result. *> 380
The subtract operation will give the same result regardless of the order of the operands; since the variable Value1 and Value2 do not have a sign, they are unsigned integers. Hence the result for 100 - 480
and 480 - 100
will be the same 380
. For now, let's just note that the order doesn't matter for unsigned integers and we'll discuss the signed integers in the upcoming lessons.
Mastering addition and subtraction in COBOL is vital for developing business applications that require accurate and efficient numerical calculations. From financial transactions to data analysis, these operations form the basis of many essential tasks. By understanding how to perform arithmetic operations:
Excited to apply these concepts? Let's dive into the practice section and solidify your understanding by writing and executing your arithmetic operations in COBOL!