第十章GradsGrADS 描述语言及编程文档格式.docx
- 文档编号:15766099
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:18
- 大小:1,021.63KB
第十章GradsGrADS 描述语言及编程文档格式.docx
《第十章GradsGrADS 描述语言及编程文档格式.docx》由会员分享,可在线阅读,更多相关《第十章GradsGrADS 描述语言及编程文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
3)可以显示动画图形,
4)可以使用从GrADS的query命令中得到的信息作注释等。
3、描述语言的所有变量都是字符串型的,描述变量可以进行计算。
流程控制是通过if/else/endif和while/endwhile语句块实现。
循环过程可以用continue或break命令改变。
变量中包含的或者由表达式结果产生的字符串可以作为GrADS命令项使用。
而由GrADS命令执行后产生的文字结果可以读入变量并在描述语言程序中使用。
描述语言也支持函数子程序功能。
四、描述语言的组成
1、一个描述语言程序是由许多语句组成,每个语句之间由换行号或分号分隔。
2、下面是GrADS描述语言中语句的类型:
赋值语句
If/Else/Endif
while/endwhile
break/continue
functionheader/return
say/pull
3、描述表达式
描述表达式是由运算对象和运算符组成。
运算对象:
描述变量、子程序函数或常数;
运算符:
数学、逻辑或连结运算符。
下面分别介绍变量、运算符、表达式
4、描述语言变量
1)构成
变量名是由1至8个字符组成,以字母开头,仅可以包含字母和数字,变量名区分大小写。
2)变量内容性质
内容总是一个字符串,
在有些运算中,字符串将被解释为数字。
如果一个变量没有被赋值,那么它的值就是它的名字。
如果一个变量或字符串常数是一个具有正确格式的数字,可以进行某些数学运算,所得结果也是一个数字字符串。
在GrAD描述语言中,有两个变量名由其内部使用:
'
result'
和'
rc'
。
尽量避免使用这两个变量名。
3)复合描述变量
描述语言现在支持复合变量,利用它可以在描述语言程序中构造数组。
复合变量名可以是一个由“·
”分隔的多个变量名的复合体。
例如:
varname.i.j
这时,当变量内容被调用时,如果i和j也是变量,那么i和j的内容将会被i和j的字符串值所替代。
i=10
j=3
varname.i.j=343
在这个例子中,赋值语句相当于:
varname.10.3=343
注意:
i和j的字符串值可以是任何字符,但varname必须遵循描述变量名的规则,即:
由字母和数字组成,须字母打头。
因此复合变量名被替代后可以是任何字符串:
i='
a#$xx'
varname.i=343
以上表示是允许的,但不能直接将变量名写为:
varname.a#$xx=343
在i、j变量被替代前后,
**复合变量名的整个长度不能超过16个字符。
**在GrADS描述语言中不能设置过多的变量,因此,不能利用复合变量产生一个大的数组,例如:
i=1
while(i<
10000)
var.i=i
i=i+1
endwhile
上面的循环将产生10000个不同的变量名。
如果设置了以上这样较大数目的变量,将影响描述语言的执行。
5、运算
在GrADS描述语言中使用了下列运算符:
|逻辑变量:
或
&
逻辑变量:
和
=等于
!
=不等于
>
大于
>
=大于等于
<
小于
=小于等于
%连结符
+加
-减
*乘
/除
一元否
-一元负
注意:
1)如果是数值运算对象,下列运算符可以用于数值运算:
=,!
=,>
>
=,<
<
=,+,-,*,/
2)如果是非数值运算对象,下列运算符在运算时将出错:
+,-,*,/
3)算术运算是以浮点形式进行的,如果结果是整数,那么结果字符串也是整数。
在逻辑运算中,如果结果为真,给出一个字符1,如果为假,给出一个字符0。
6、表达式
描述语言的表达式包含运算对象、运算符和括号,在运算过程中各种运算符的先后顺序为:
-,!
/,*
+,-
%
=,!
=
|
如果运算符在同一优先级上,则从左向右计算。
运算对象可以是变量、字符串常数或子程序函数调用。
1)字符型常数用单或双引号括起来。
而数值型常数可以不用引号括起来,但GrADS仍然认为是字符串常数。
下面是一个字符串常数的例子:
Thisisastring'
2)有些情况下,连结运算符是隐含的,当两个运算对象并列靠在一起,中间没有任何运算符时(中间可以有空格),隐含着中间是一个连结符。
下列两个表达式是等价的。
var1%var2%'
String'
var1var2'
2)括号可以改变运算的先后顺序。
7、IF语句块****
程序执行流程可以通过if/else/endif语句控制,形式为:
IF(表达式)
描述语言语句
…
else(可不用)
endif(必须使用)
注意,下列语句是错误的:
if(i=10)j=20
你必须写三个语句:
if(i=10)
j=20
endif
你也可以在同一行上写这三个语句:
if(i=10);
j=20;
endif;
if语句块的执行依赖于表达式的结果,如果表达式的结果是一个0字符(结果为假),则’else’部分就被执行,如果表达式的结果是不为0的其它字符,则执行’if’部分。
8、WHILE语句块
while语句块的格式为:
while(表达式)
endwhile
当表达式结果为真,即:
是一个不为0的字符,循环就继续执行。
另外两个描述语言命令可以改变循环的执行,break可以立即中断循环,continue可以立即跳到循环体的开头,并重新计算表达式的结果。
t=1
while(t<
10)
sett'
t
displayz'
if(rc!
=0);
break;
endif;
t=t+1
9、函数及函数子程序
用户可以自己编制函数子程序,也可以使用描述语言的内部函数。
在一般情况下,函数作为描述语言的表达式运算对象被调用。
描述语言函数子程序总是得到一个单一的字符串结果,但可以有一个或多个字符串自变量,它的调用格式为:
name(arg,arg,arg...)
1)函数名遵循变量名的规则,自变量可以是表达式。
2)如果函数子程序没有自变量,你仍然需要写上一对括号:
name()
3)在其它文件中的函数子程序不能调用。
(其它文件中的描述语言程序可以通过GrADS的run命令执行)
4)可以通过函数子程序的定义语句在描述语言程序中构造自己的函数:
functionname(variable,variable,...)
要回到调用处,使用return语句:
return表达式
这里表达式可以省略,如果省略表达式,就返还一个空字符串(空字符串是‘’)。
函数的结果是return语句中表达式的结果。
5)调用过程
当一个函数子程序被调用时,首先计算自变量,然后执行函数子程序,作为函数自变量的变量的值初始取为传输给自变量的值。
如果传输给自变量的值的个数太少,则其余的变量初始没有值,如太多,则多余的被舍弃。
你可以从函数子程序定义语句中改变自变量而不改变调用方式。
变量的调用仅仅在函数子程序内部有效,但全域变量可以在整个程序中有效。
当一个描述语言程序文件被调用时(通过run命令),从这个文件的开头开始执行。
一个函数子程序定义语句也可以放在文件的开头,如果这样,必须定义一个变量名,这个变量将被任何’run’命令选项初始赋值,如果没有’run’命令选项,这个变量将初始赋为空字符串。
10、赋值语句
赋值语句的格式为:
变量名=表达式
表达式进行运算后,将结果赋予所指定的变量。
11、人机对话语句
'
say'
语句的语法为:
say表达式
这样,表达式的结果就写在屏幕上:
‘pull’语句的语法为:
pull变量名
程序运行到pull语句时,执行暂停等待用户键盘输入,按回车后,输入的内容就赋值给所指定的变量。
14、在描述语言程序中执行GrADS命令
指令语句仅仅包含一个表达式:
表达式:
在描述语言程序中执行GrADS命令是首先运算表达式,然后将结果字符串作为命令提交给GrADS。
1)当语句被执行后,GrADS命令的结果将输入到描述变量’result’(这时,’result’的字符串是GrADS命令执行后显示在屏幕上的内容)。
2)描述变量’rc’中则是GrADS命令的返还码。
’result’变量中,可能包含几行GrADS结果字符串,这可以利用’sublin’函数分离。
可以在描述语言环境中执行任何GrADS命令,包括run命令。
由执行run命令而产生的结果字符串将通过’return’命令从“低层”的描述语言程序传递回“高一层”的程序中。
你可以一层一层地调用多个描述语言程序,但要能控制不出现死循环而返还主调程序。
五、内部函数
目前描述语言中有几个内部函数:
1、substr(string,start,length)
这个函数可以从字符串’string’中从位置’start’开始截取长度为’length’的子字符串。
如果字符串’string’太短,结果字符串就短于’length’或得到一个空字符串。
这里,'
start'
和'
length'
必须是整的字符数目。
2、subwrd(string,word)
这个函数可以从字符串’string’中截取第’word’个词(词与词之间由空格分隔),如果字符串’string’太短,结果是一个空字符串。
word'
必须是整数。
3、sublin(string,line)
这个函数可以从字符串’string’中截取第’line’行的字符串,如果字符串’string’行数太少,结果是一个空字符串。
line'
4、read(name)
读函数,可以读取文件’name’中的一个记录(一行),重复调用同一文件的’read’函数,将依次读取文件中的下一个记录。
所得结果有两行,第一行是返还码,第二行是所读记录。
每个记录的长度不能超过80个字符,可以使用'
sublin'
函数分离结果。
当第一次调用’read’函数读取一个指定文件时,这个文件就被打开,当描述语言程序执行终结时文件被关闭
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十章GradsGrADS 描述语言及编程 第十 GradsGrADS 描述 语言 编程