Vous êtes sur la page 1sur 3

|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
/***************************** REXX ********************************/|
/* This exec receives three numbers from a user and analyzes which */|
/* number is the greatest.
*/|
/*******************************************************************/|
|
PARSE ARG number1, number2, number3 .
|
|
IF number1 > number2 THEN
|
IF number1 > number3 THEN
|
greatest = number1
|
ELSE
|
greatest = number3
|
ELSE
|
IF number2 > number3 THEN
|
greatest = number2
|
ELSE
|
greatest = number3
|
|
RETURN greatest
|

Possible Solution __________________________________________________


|
|
|
|
|
/**************************** REXX *********************************/|
|
/* This exec tests the length of a name for a data set member. If */|
|
/* the name is longer than 8 characters, the exec truncates the
*/|
|
/* extra characters and sends the user a message indicating the
*/|
|
/* shortened member name.
*/|
|
/*******************************************************************/|
|
SAY 'Please enter a member name.'
|
|
PULL membername
|
|
|
|
IF LENGTH(membername) > 8 THEN /* Name is longer than 8 characters*/|
|
DO
|
|
membername = SUBSTR(membername,1,8)
/* Shorten the name to
*/|
|
/* the first 8 characters*/|
|
SAY 'The member name you entered was too long.'
|
|
SAY membername 'will be used.'
|
|
END
|
|
ELSE NOP

CALL subroutine_name argument1, argument2,...


x = function(argument1, argument2,...)

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
/******************************* REXX ******************************/|
/* This exec receives a calculated value from an internal
*/|
/* subroutine and displays that value.
*/|
/*******************************************************************/|
|
number1 = 5
|
number2 = 10
|
CALL subroutine
|
SAY answer
/* Displays 15 */|
EXIT
|
|
subroutine:
|
answer = number1 + number2
|
RETURN
|

/******************************* REXX ******************************/|


|
/* This exec uses a PROCEDURE instruction to protect the variables */|
|
/* within its subroutine.
*/|
|
/*******************************************************************/|
|
number1 = 10
|
|
CALL subroutine
|
|
SAY number1 number2
/* displays 10 NUMBER2 */|
|
EXIT
|
|
|
|
subroutine: PROCEDURE
|
|
number1 = 7
|
|
number2 = 5
|
|
RETURN

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
/****************************** REXX *******************************/|
/* This exec uses a PROCEDURE instruction with the EXPOSE option to*/|
/* expose one variable, number1, in its subroutine. The other
*/|
/* variable, number2, is set to null and displays its name in
*/|
/* uppercase.
*/|
/*******************************************************************/|
number1 = 10
|
CALL subroutine
|
SAY number1 number2
/* displays 7 NUMBER2 */|
EXIT
|
|
subroutine: PROCEDURE EXPOSE number1
|
number1 = 7
|
number2 = 5
|
RETURN

|
|
|
|
|
|
|
|
|
|
|
|
|
|

|
/****************************** REXX *******************************/|
/* This exec receives a calculated value from an internal
*/|
/* function and displays that value.
*/|
/*******************************************************************/|
|
number1 = 5
|
number2 = 10
|
SAY add()
/* Displays 15
*/|
SAY answer
/* Also displays 15 */|
EXIT
|
|
add:
|
answer = number1 + number2
|
RETURN answer

Vous aimerez peut-être aussi