Mainframe Is Back 学习资料REXX分享 之二:运算符(REXX Operators)

十二月 2, 2008 by Raymond · Leave a Comment
Filed under: REXX 

REXX中基本的运算符包括以下几种:

1. ‘+’:

2. ‘-‘:

3. ‘*’:

4. ‘/’:

5. ‘%’: 取整运算

6. ‘//’: 取余运算

例子:

say (5 % 2)  /* Returns the integer part of division result. Displays: 2  */
say (5 // 2)   /* Returns the remainder from division.      Displays: 1     */
say (5 ** 2)  /* Raises the number to the whole power.     Displays: 25    */
 REXX中的比较运算符主要包括:

1. ‘=’ : 相等
2. ‘\=’: 不等
3. ‘>’ : 大于
4. ‘<’ : 小于
5. ‘>=’ : 大于或者等于,即不小于
6. ‘<=’ : 小于或者等于,即不大于
7. ‘<>,><’ : 大于或者小于,即不等于
 例子:

'37'  = '37'    /*  TRUE   - a numeric comparison */
'0037'= '37'    /*  TRUE   - numeric comparisons disregard leading zeroes */
'37'  = '37   ' /*  TRUE   - blanks disregarded   */
'ABC' = 'Abc'   /*  FALSE  - string comparisons are case-sensitive        */
'ABC' = '   ABC  ' /*  TRUE- preceding & trailing blanks are irrelevant   */
''    = '     '    /*  TRUE- null string is blank-padded for comparison   */
 REXX中的关系运算符主要包括:

1. ‘&’ : 
2. ‘|’ : 
3. ‘\’ : 
例子:
if ('A' = var1) & ('B' = var2) then
     say 'Displays only if BOTH comparisons are TRUE'
if ('A' = var1) | ('B' = var2) then
     say 'Displays if EITHER comparison is TRUE'
if \('A' = var1) then say 'Displays if A is NOT equal to var1'
VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

一个简单的REXX小游戏(A Simple REXX Game)

十二月 2, 2008 by Raymond · 1 Comment
Filed under: REXX 

最近发现了一个REXX写的简单猜数字游戏,其中有很多内容很适合初学者来掌握REXX,游戏的源代码如下:

/********************** REXX ****************************************/

/* The NUMBER GAME – User tries to guess a number between 1 and 10  */

/* Generate a random number between 1 and 10                        */

   the_number = random(1,10)                                          

   say “I’m thinking of number between 1 and 10. What is it?”         

   pull the_guess                                                     

   if the_number = the_guess then                                     

      say ‘You guessed it!’                                           

   else                                                               

      say ‘Sorry, my number was: ‘ the_number                         

   say ‘Bye!’                         

运行:

在ISPF的’6 COMMAND’下输入以下内容:

EXEC ‘MIB.REXX.EXEC(NUMGAME)’ 

解释:

1. REXX语言不区分大小写,所以在上述程序中出现了’say’关键字用来输出信息,功能同’SAY’

2. ‘random’是REXX中内置的函数,用于生成一个随机数。

3. 程序中通过一个if…else语句,来完成对随机生成数字和用户输入数字的判断。   

4. 变量’the_guess’和’the_number’无需提前定义类型,在第一次使用时,系统会自动创建,并且分配内存空间。

VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

Mainframe Is Back 学习资料REXX分享 之一

九月 11, 2008 by Raymond · 2 Comments
Filed under: REXX 

最近,我跟11都比较忙,所以没有什么时间写东西跟大家分享。不过,最近我跟11都积累了很多Mainframe的资料,下面我将用最近的一段时间,跟大家分享一下REXXREXX是什么呢?首先,REXX是一门程序设计语言,可以应用于多种平台上。当然,也可以运行于mainframeMVS和VM平台上。我理解REXX的最大特点就是无需编译,直接运行。REXX的这个特点直接导致了REXX程序开发的高效性,在mainframe平台上开发一些小型应用非常合适。第一个REXX程序:Hello MIB
首先从一个简单的REXX程序开始,我们一起来分享REXX带给我们的惊喜。就是让系统输出一条语句: HELLO MIB
REXX的语法规则很接近于自然语言,比如这里要输入字符串,就用命令“SAY”,即可,具体语法规则如下所示:不需要加任何行尾结束符号,可以存放于PDS或者PD中,由于这次的例子比较多,我们就专门建立一个PDS用于试验各种REXX程序,我们取名为:MIB.REXX.EXEC
则该程序的命名为:MIB.REXX.EXEC(HELLO),具体内容如下所示:
********************* Top of Data  ************
SAY ‘HELLO MIB’                                         
********************* Bottom of Data *********  
编辑好了我们第一个REXX程序,下面我们尝试来运行它,运行的方式也很简单,是通过ISPF来操作的。在ISPF的“ISPF Primary Option Menu”中输入“6”,选择“6  Command       Enter TSO or Workstation commands 
在命令行中输入:
===> EXEC ‘MIB.REXX.EXEC(HELLO)’
运行即可,运行后,得到的结果是:
IKJ56479I COMMAND SAY NOT FOUND OR REXX IDENTIFIER IS MISSING+                
 IKJ56479I SUPPLY ‘/* REXX */’ AS THE FIRST RECORD TO EXECUTE AS A REXX EXEC OR,
 FOR AN EXPLICIT EXEC, SUPPLY THE EXEC KEYWORD ON THE EXEC COMMAND
 
***
如上所示,系统没有执行程序,而返回了一段错误信息,原因是什么呢?原因在在于REXX文件有其特定的标识方式。在每一个REXX文件的起始处,必须有一个注释行,(在REXX中,注释以/***********/来表示),并且注释行中必须包含有“REXX”这个字符串,具体例子如下所示:
/***************** REXX ***********************/
把以上的信息加入到我们的MIB.REXX.EXEC(HELLO)中,修正后的程序如下所示

********************************* Top of Data *********************
/************************ REXX ***********************************/
SAY ‘HELLO MIB’                                                   
******************************** Bottom of Data *******************
运行程序,得到的结果是:
HELLO MIB
 *** 
至此,我们第一个REXX程序就完成了。
我对REXX的体会就是:
1. 很轻便,开发简捷,语法规则使用起来很容易上手。
2. 无需编译,直接从“COMMAND”处运行。
3. 运行语法: EXEC ‘DATA SET NAME(MEMBER)’
4. 每个REXX程序中必须有一个标识自身文件类型的标识行,必须位于首行,且行中需要包含“REXX”字符串。
至此,就跟大家分享这么多,下次我将跟大家分享REXX中的数据类型与运算符。

VN:F [1.9.3_1094]
Rating: 0 (from 0 votes)

  • 分类目录

  • 功能

  • 联络订阅

    google reader
    订阅到抓虾
    订阅到鲜果
    订阅到飞鸽
    bloglines
    my yahoo
    netvibes