SlideShare a Scribd company logo
|
   |   /***************************** 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

More Related Content

Viewers also liked

DB2-SQL Part-2
DB2-SQL Part-2DB2-SQL Part-2
DB2-SQL Part-2
Srinimf-Slides
 
PL/SQL Interview Questions
PL/SQL Interview QuestionsPL/SQL Interview Questions
PL/SQL Interview Questions
Srinimf-Slides
 
PLI Presentation for Mainframe Programmers
PLI Presentation for Mainframe ProgrammersPLI Presentation for Mainframe Programmers
PLI Presentation for Mainframe Programmers
Srinimf-Slides
 
Oracle PLSQL Step By Step Guide
Oracle PLSQL Step By Step GuideOracle PLSQL Step By Step Guide
Oracle PLSQL Step By Step Guide
Srinimf-Slides
 
Assembler Language Tutorial for Mainframe Programmers
Assembler Language Tutorial for Mainframe ProgrammersAssembler Language Tutorial for Mainframe Programmers
Assembler Language Tutorial for Mainframe Programmers
Srinimf-Slides
 
IMS DC Self Study Complete Tutorial
IMS DC Self Study Complete TutorialIMS DC Self Study Complete Tutorial
IMS DC Self Study Complete Tutorial
Srinimf-Slides
 
Assembler
AssemblerAssembler
Assembler
Mohd Arif
 
100 sql queries
100 sql queries100 sql queries
100 sql queries
Srinimf-Slides
 
Assembly Language Basics
Assembly Language BasicsAssembly Language Basics
Assembly Language Basics
Education Front
 

Viewers also liked (9)

DB2-SQL Part-2
DB2-SQL Part-2DB2-SQL Part-2
DB2-SQL Part-2
 
PL/SQL Interview Questions
PL/SQL Interview QuestionsPL/SQL Interview Questions
PL/SQL Interview Questions
 
PLI Presentation for Mainframe Programmers
PLI Presentation for Mainframe ProgrammersPLI Presentation for Mainframe Programmers
PLI Presentation for Mainframe Programmers
 
Oracle PLSQL Step By Step Guide
Oracle PLSQL Step By Step GuideOracle PLSQL Step By Step Guide
Oracle PLSQL Step By Step Guide
 
Assembler Language Tutorial for Mainframe Programmers
Assembler Language Tutorial for Mainframe ProgrammersAssembler Language Tutorial for Mainframe Programmers
Assembler Language Tutorial for Mainframe Programmers
 
IMS DC Self Study Complete Tutorial
IMS DC Self Study Complete TutorialIMS DC Self Study Complete Tutorial
IMS DC Self Study Complete Tutorial
 
Assembler
AssemblerAssembler
Assembler
 
100 sql queries
100 sql queries100 sql queries
100 sql queries
 
Assembly Language Basics
Assembly Language BasicsAssembly Language Basics
Assembly Language Basics
 

Rexx

  • 1. | | /***************************** 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,...)
  • 2. | | /******************************* 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
  • 3. | | /****************************** 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