PROCEDURE DIVISION.
ADD A TO B. *> COMPUTE B = B + A
ADD 1 TO B. *> COMPUTE B = B + 1
ADD A TO B GIVING C. *> COMPUTE C = A + B
ADD A B C GIVING D. *> COMPUTE D = A + B + C
ADD A TO B ROUNDED *> COMPUTE B ROUNDED = B + A
ADD A TO B ON SIZE ERROR ON SIZE ERROR DISPLAY "ERROR"
*> COMPUTE B = B + A ON SIZE ERROR DISPLAY "ERROR"
SUBTRACT numbera from numberb
SUBTRACT numbera numberb numberc from numberd
SUBTRACT numbera from numberb GIVING numberc
MULTIPLY numbera BY numberb.
MULRIPLY numbera BY numberb GIVING numberc.
MULTIPLY numbera BY numberd
ON SIZE ERROR DISPLAY "THERE IS AN ERROR."
NOT ON SIZE ERROR DISPLAY "THERE IS NO SIZE ERROR."
DIVIDE numbera INTO numberb
DIVIDE numbera BY numberb
DIVIDE numbera BY numberb GIVING numberc
DIVIDE numbera BY numberb GIVING numberc REMAINDER variablename
DIVIDE numbera BY numberd
ON SIZE ERROR DISPLAY "THERE IS AN ERROR"
NOT ON SIZE ERROR DISPLAY "THERE IS NO SIZE ERROR"
PROCEDURE DIVISION.
COMPUTE B = B + A
COMPUTE B = B - 1
COMPUTE C = A * B
COMPUTE D = A / B
COMPUTE D = A ** B
COMPUTE B ROUNDED B + A
COMPUTE B = B + A ON SIZE ERROR DISPLAY "ERROR"
COMPUTE ANSWER = 5 + 3 - 2 ** 2 * 3 / 2 / 1 ** 3
ANSWER = 5 + 3 - 4 * 3 / 2 / 1
ANSWER 5 + 3 - 6
ANSWER = 2
ANSWER = (5 + 3) - 2 ** (2 * 3 / 2 / 1) ** 3
There are over 42 inbuilt functions in COBOL.
They are also called intrinsic functions.
These were added in 1989 in COBOL-85 standard. These are of 6 types.
- Mathematical : SUM, SQRT..
- Statistical : MEAN, MAX..
- Character : REVERSE, LENGTH..
- Date : CURRENT-DATE..
- Financial : PRESENT-VALUE..
- Trigonometric : SIN, COS..
Syntax to use a function is
1) FUNCTION func_name (args..)
2) Ex. FUNCTION SUM(35, 21) or FUNCTION SUM(35 21)
FUNCTION MAX(1, 2, 3, 4) OR FUNCTION MAX(1 2 3 4)
- SUM
- SQRT
- REM
- MOD
- FACTORIAL
- LOG
- LOG10
- INTEGER
- INTEGER-PART
- NUMVAL
- NUMVAL-C
- RANDOM
MEAN : Finds the average of the numbers.
MEDIAN : Finds the number that lies in the middle of the values.
STANDARD-DEVIATION : Finds how much the numbers vary from the mean.
VARIANCE : Finds how much the numbers vary from the mean.
RANGE : Difference of the Maximum and Minimum number.
MID-RANGE : Mean of the Maximum and Minimum number.
MAX : Maximum of all the numbers.
MIN : Minimum of all the numbers.
ORD-MAX : Position of the maximum number.
ORD-MIN : Position of the minimum number.
LENGTH : Finds the length of the argument
REVERSE : Reverses the argument
UPPER-CASE : Upper-case all the characters in the argument
LOWER-CASE : lower-case all the characters in the argument
ORD : Finds the ordinal position of the collating sequence
CHAR : Finds the character based on the ordinal position
ANNUITY
FUNCTION ANNUITY (interest-rate number-of-periods)
- Used to find the installment value for the loan
PRESENT-VALUE
FUNCTION PRESENT-VALUE (interest-rate payment-value1 payment-value2)
- Used to find the Present value for the series of future payments
SIN : calculates the sine
COS : calculates the cosine
TAN : calculates the tangent
ASIN : calculates the arcsine
ACOS : calculates the arccosine
ATAN : calculates the arctangent
IF condition
..........
..........
ELSE
..........
..........
END-IF
>, <, =, <=, >=, NOTIF AGE = 18
DISPLAY "YOU ARE 18 YRS OLD"
ELSE IF AGE = 19
DISPLAY "YOU ARE 19 YRS OLD"
ELSE IF AGE = 20
DISPLAY "YOU ARE 20 YRS OLD"
IF GENDER = MALE
DISPLAY "YOU'RE NOT ELIGIBLE TO PARTICIPATE"
ELSE
IF AGE > 18
DISPLAY "YOU ARE ELIGIBLE TO PARTICIPATE"
ELSE
DISPLAY "YOU ARE NOT ELIGIBLE TO PARTICIPATE"
END-IF
END-IF
PERFORM procedure-name UNTIL condition
.............
...............
STOP RUN.
PERFORM DISPLAY-PARA
WITH TEST AFTER
UNTIL I > 5
DISPLA-PARA.
DISPLAY "HELLO WORLD"
COMPUTE I = I + 1.
PERFORM COMPOUND-INTEREST-CALCULATION
VARYING YEARS FROM 1 BY 1
UNTIL YEARS > 5
PERFORM COMPOUND-INTEREST-CALCULATION 5 TIMES.
PERFORM COMPOUND-INTEREST-CALCULATION NO-OF-YEARS TIMES.
PERFORM 100-DISPLAY-HELLO 20 TIMES.
STOP RUN.
100-DISPLAY-HELLO.
DISPLAY "Hello World!".
EVALUATE AGE
WHEN 15 DISPLAY "YOU ARE 15"
WHEN 16 DISPLAY "YOU ARE 16"
WHEN 17 DISPLAY "YOU ARE 17"
WHEN 18 DISPLAY "YOU ARE 18"
WHEN OTHER DISPLAY "YOU ARE NONE OF THE ABOVE"
END-EVALUATE.
EVALUATE TRUE
WHEN AGE > 18 DISPLAY "YOU ARE AN ADULT"
END-EVALUATE.
EVALUATE GENDER ALSO AGE > 18
WHEN "FEMALE" ALSO TRUE DISPLAY "YOU ARE ELIGIBLE FOR CONTEST"
END-EVALUATE.
MOVE FULL-DATE(3:2) TO MONTH
MOVE FULL-DATE(5:4) TO YEAR
Fieldname(offset : Length)STRING FIRST-NAME DELIMITED BY SIZE
LAST-NAME DELIMITED BY SIZE
INTO FULL-NAME
WITH POINTER POINTER-FIELD
ON OVERFLOW DISPLAY "OVERFLOW IS THERE"
NOT ON OVERFLOW DISPLAY "NO OVERFLOW IS THREE"
UNSTRING FULL-NAME DELIMITED BY ""
INTO FIRST-NAME MIDDLE-NAME LAST-NAME
TALLYING IN COUNTER1
WITH POINTER POINTER-FIELD
ON OVERFLOW DISPLAY "OVERFLOW IS THERE"
NOT ON OVERFLOW DISPLAY "NO OVERFLOW IS THERE"
INSPECT FULL-NAME
TALLYING COUNTER1 FOR CHARACTERS BEFORE SPACE.
INSPECT FULL-NAME
TALLYING COUNTER1 FOR ALL ",".
INSPECT FULL-NAME
TALLYING COUNTER1 FOR LEADING "*".
INSPECT FULL-NAME
TALLYING COUNTER1 FOR ALL "*" BEFORE ".".
INSPECT FULL-NAME
REPLACING ALL "," BY "".
INSPECT FULL-NAME
REPLACING CHARACTERS BY "0" AFTER ".".
INSPECT FULL-NAME
REPLACING LEADING "*" BY ZERO.
INSPECT FULL-NAME
REPLACING ALL "CR" BY " ".
INSPECT FULL-NAME
CONVERTING "," TO " ".
INSPECT FULL-NAME
REPLACING ALL "," BY " ".
INSPECT FULL-NAME
CONVERTING "ABCD" TO "abcd".