Function definition: Difference between revisions

Content added Content deleted
imported>Acediast
(→‎{{header|COBOL}}: I don't actually have access to IBM Enterprise COBOL for z/OS version 6.4 so I'm just going off the docs)
Line 1,142: Line 1,142:
=={{header|COBOL}}==
=={{header|COBOL}}==
In COBOL, ''multiply'' is a reserved word, so the requirements must be relaxed to allow a different function name. The following uses a program:
In COBOL, ''multiply'' is a reserved word, so the requirements must be relaxed to allow a different function name. The following uses a program:
{{works with|OpenCOBOL}}
{{works with|GnuCOBOL}}
{{works with|IBM Enterprise COBOL for z/OS}}
<syntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
<syntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
PROGRAM-ID. myTest.
PROGRAM-ID. myTest.
DATA DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
WORKING-STORAGE SECTION.
01 x PIC 9(3) VALUE 3.
01 x PICTURE IS 9(3) VALUE IS 3.
01 y PIC 9(3) VALUE 2.
01 y PICTURE IS 9(3) VALUE IS 2.
01 z PIC 9(9).
01 z PICTURE IS 9(9).
PROCEDURE DIVISION.
PROCEDURE DIVISION.
CALL "myMultiply" USING
CALL "myMultiply" USING
Line 1,162: Line 1,163:
DATA DIVISION.
DATA DIVISION.
LINKAGE SECTION.
LINKAGE SECTION.
01 x PIC 9(3).
01 x PICTURE IS 9(3).
01 y PIC 9(3).
01 y PICTURE IS 9(3).
01 z PIC 9(9).
01 z PICTURE IS 9(9).
PROCEDURE DIVISION USING x, y, z.
PROCEDURE DIVISION USING BY REFERENCE x, y, z.
MULTIPLY x BY y GIVING z.
MULTIPLY x BY y GIVING z.
EXIT PROGRAM.
EXIT PROGRAM.
Line 1,171: Line 1,172:


This example uses user-defined functions, which were added in COBOL 2002.
This example uses user-defined functions, which were added in COBOL 2002.
{{works with|GNU Cobol|2.0}}
{{works with|GnuCOBOL|2.0}}
{{works with|IBM Enterprise COBOL for z/OS|6.4}}
<syntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
<syntaxhighlight lang="cobol"> IDENTIFICATION DIVISION.
PROGRAM-ID. myTest.
PROGRAM-ID. myTest.
Line 1,180: Line 1,182:
DATA DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
WORKING-STORAGE SECTION.
01 x PIC 9(3) VALUE 3.
01 x PICTURE IS 9(3) VALUE IS 3.
01 y PIC 9(3) VALUE 2.
01 y PICTURE IS 9(3) VALUE IS 2.
PROCEDURE DIVISION.
PROCEDURE DIVISION.
DISPLAY myMultiply(x, y).
DISPLAY myMultiply(x, y).
Line 1,191: Line 1,193:
DATA DIVISION.
DATA DIVISION.
LINKAGE SECTION.
LINKAGE SECTION.
01 x PIC 9(3).
01 x PICTURE IS 9(3).
01 y PIC 9(3).
01 y PICTURE IS 9(3).
01 z pic 9(9).
01 z PICTURE IS 9(9).
PROCEDURE DIVISION USING x, y RETURNING z.
PROCEDURE DIVISION USING x, y RETURNING z.
MULTIPLY x BY y GIVING z.
MULTIPLY x BY y GIVING z.
EXIT FUNCTION.
GOBACK.
END FUNCTION myMultiply.</syntaxhighlight>
END FUNCTION myMultiply.</syntaxhighlight>