Top
NetCOBOL V11.0 Syntax Samples
FUJITSU Software

1.45 SUM Function

The SUM function returns the sum of the values specified in the arguments.

000010 @OPTIONS MAIN
000020*----------------------------------------------------------------------
000030* The SUM function returns the sum of the values specified in the 
000035* arguments.
000040* In this sample, the following functions are used at the same time:
000050* - MEAN function:   Returns the arithmetic average value of the 
000055*                    arguments.
000060* - MEDIAN function: Returns the median value of the arguments.
000070*
000080*----------------------------------------------------------------------
000090 IDENTIFICATION   DIVISION.
000100 PROGRAM-ID.      SAMPLE.
000110 DATA             DIVISION.
000120 WORKING-STORAGE  SECTION.
000130 01 .
000140   02 VAL         PIC S9(4) OCCURS 5 TIMES.
000150 01 TOTAL         PIC S9(8) VALUE 0.
000160 01 MEAN          PIC S9(8) VALUE 0.
000170 01 MEDIAN        PIC S9(8) VALUE 0.
000180 01 MIDRANGE      PIC S9(8) VALUE 0.
000190 01 SELECT-SW     PIC 9(1).
000200    88 SW-ALL     VALUE 1.
000210    88 SW-PART    VALUE 2.
000220 01 COUNTER       PIC 9(1).
000230 PROCEDURE        DIVISION.
000240     DISPLAY "Please input 5 values one at a time, not exceeding four 
000245-            "digits.".
000250     PERFORM TEST BEFORE
000260             VARYING COUNTER FROM 1 BY 1 UNTIL COUNTER > 5
000270       DISPLAY "Value(" COUNTER ")" " >> " WITH NO ADVANCING
000280       ACCEPT VAL(COUNTER) FROM CONSOLE
000290     END-PERFORM.
000300     DISPLAY "(" WITH NO ADVANCING.
000310     PERFORM TEST BEFORE
000320             VARYING COUNTER FROM 1 BY 1 UNTIL COUNTER > 5
000330       DISPLAY VAL(COUNTER) " " WITH NO ADVANCING
000340     END-PERFORM.
000350     DISPLAY ")".
000360     DISPLAY " ".
000370     DISPLAY "Please select the processing method.".
000380     DISPLAY "1:  Process all.".
000390     DISPLAY "2:  Ignore the first and last. >>" WITH NO ADVANCING.
000400     ACCEPT SELECT-SW.
000410*----------------------------------------------------------------------
000420* The sum, average value, and median value are obtained.  If all 
000430* elements of a table are specified, the subscript ALL phrase can be 
000435* substituted.
000440*----------------------------------------------------------------------
000450     EVALUATE TRUE
000460     WHEN SW-ALL
000470       COMPUTE TOTAL  = FUNCTION SUM (VAL(ALL))
000480       COMPUTE MEAN   = FUNCTION MEAN(VAL(ALL))
000490       COMPUTE MEDIAN = FUNCTION MEDIAN(VAL(ALL))
000500*----------------------------------------------------------------------
000510* The sum, average value, and median value are obtained.
000520*----------------------------------------------------------------------
000530     WHEN SW-PART
000540       COMPUTE TOTAL  = FUNCTION SUM (VAL(2), VAL(3), VAL(4))
000550       COMPUTE MEAN   = FUNCTION MEAN(VAL(2), VAL(3), VAL(4))
000560       COMPUTE MEDIAN = FUNCTION MEDIAN(VAL(2), VAL(3), VAL(4))
000570*----------------------------------------------------------------------
000580     WHEN OTHER
000590       DISPLAY "The selection is incorrect."
000600       EXIT PROGRAM
000610     END-EVALUATE.
000620     DISPLAY " ".
000630     DISPLAY "The total value is " TOTAL.
000640     DISPLAY "The average value is " MEAN.
000650     DISPLAY "The median value is " MEDIAN.
000660 END PROGRAM SAMPLE.