Introduction to Simple Arithmetic Operations

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.

What You'll Learn

In this lesson, you will learn to perform basic arithmetic operations on numeric variables in COBOL. Specifically, we will cover the following topics:

  • How to add and subtract numeric variables using COBOL syntax.
  • How to display the results of these operations.

Let's delve into these topics through an example. Consider the following COBOL program that demonstrates adding and subtracting two numeric values:

IDENTIFICATION DIVISION.
PROGRAM-ID. AddAndSubtract.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Value1 PIC 9(3).
01 Value2 PIC 9(3).
01 Result PIC 9(5).

PROCEDURE DIVISION.
    MOVE 100 TO Value1.
    MOVE 480 TO Value2.

    *> ADD operation
    ADD Value1 TO Value2 GIVING Result.
    DISPLAY "The result of addition is: " Result. *> 00580, same as 580

    *> SUBTRACT operation
    SUBTRACT Value1 FROM Value2 GIVING Result.
    DISPLAY "The result of subtraction is: " Result. *> 00380, same as 380

    *> SUBTRACT operation with reversed operands
    SUBTRACT Value2 FROM Value1 GIVING Result.
    DISPLAY "The result of subtraction is: " Result. *> 00380, same as 380

    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.

Breaking Down the Code

Let's examine the code in detail to understand the arithmetic operations it performs:

  • Variable Declaration:

    01 Value1 PIC 9(3).
    01 Value2 PIC 9(3).
    01 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:

    MOVE 100 TO Value1.
    MOVE 480 TO Value2.

    The MOVE statements assign the values 100 to Value1 and 480 to Value2.

  • Adding Values:

    ADD Value1 TO Value2 GIVING Result.

    This ADD statement adds Value1 and Value2, storing the result in Result. The DISPLAY statement outputs the sum:

    DISPLAY "The result of addition is: " Result. *> 580
  • Subtracting Values:

    SUBTRACT Value1 FROM Value2 GIVING Result.
    DISPLAY "The result of subtraction is: " Result. *> 380

    The SUBTRACT statement subtracts Value1 from Value2, storing the result in Result.

  • Reversed Subtraction:

    SUBTRACT Value2 FROM Value1 GIVING Result.
    DISPLAY "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.

Sign up
Join the 1M+ learners on CodeSignal
Be a part of our community of 1M+ users who develop and demonstrate their skills on CodeSignal