Cumulative standard deviation: Difference between revisions
Content added Content deleted
m (Added small COBOL example. Corrected PL/I and R lang tags.) |
(Added full COBOL implementation.) |
||
Line 475: | Line 475: | ||
The implementation of this based of the standard's implementation: |
The implementation of this based of the standard's implementation: |
||
<lang cobol>FUNCTION SQRT(FUNCTION VARIANCE(2, 4, 4, 4, 5, 5, 7, 9))</lang> |
<lang cobol>FUNCTION SQRT(FUNCTION VARIANCE(2, 4, 4, 4, 5, 5, 7, 9))</lang> |
||
A complete implementation: |
|||
{{works with|OpenCOBOL|2.0}} |
|||
<lang cobol> >>SOURCE FREE |
|||
IDENTIFICATION DIVISION. |
|||
PROGRAM-ID. std-dev. |
|||
ENVIRONMENT DIVISION. |
|||
CONFIGURATION SECTION. |
|||
REPOSITORY. |
|||
FUNCTION sum-arr |
|||
. |
|||
DATA DIVISION. |
|||
WORKING-STORAGE SECTION. |
|||
78 Arr-Len VALUE 8. |
|||
01 arr-area VALUE "0204040405050709". |
|||
03 arr PIC 99 OCCURS Arr-Len TIMES. |
|||
01 i PIC 99. |
|||
01 avg PIC 9(3)V99. |
|||
01 std-dev PIC 9(3)V99. |
|||
PROCEDURE DIVISION. |
|||
DIVIDE FUNCTION sum-arr(arr-area) BY Arr-Len GIVING avg ROUNDED |
|||
PERFORM VARYING i FROM 1 BY 1 UNTIL i > Arr-Len |
|||
COMPUTE arr (i) = (arr (i) - avg) ** 2 |
|||
END-PERFORM |
|||
COMPUTE std-dev = FUNCTION SQRT(FUNCTION sum-arr(arr-area) / Arr-Len) |
|||
DISPLAY std-dev |
|||
. |
|||
END PROGRAM std-dev. |
|||
IDENTIFICATION DIVISION. |
|||
FUNCTION-ID. sum-arr. |
|||
DATA DIVISION. |
|||
LOCAL-STORAGE SECTION. |
|||
01 i PIC 99. |
|||
LINKAGE SECTION. |
|||
78 Arr-Len VALUE 8. |
|||
01 arr-area. |
|||
03 arr PIC 99 OCCURS Arr-Len TIMES. |
|||
01 arr-sum PIC 99. |
|||
PROCEDURE DIVISION USING arr-area RETURNING arr-sum. |
|||
INITIALIZE arr-sum *> Without this, arr-sum is initialised incorrectly. |
|||
PERFORM VARYING i FROM 1 BY 1 UNTIL i > Arr-Len |
|||
ADD arr (i) TO arr-sum |
|||
END-PERFORM |
|||
. |
|||
END FUNCTION sum-arr.</lang> |
|||
=={{header|CoffeeScript}}== |
=={{header|CoffeeScript}}== |