恭喜,你发布的帖子
发布于 2022-02-24 21:31:43
3楼
DEF REAL VECT[3] ;
DEF REAL DiamT=2.0000
DEF REAL M_DATA[15]
EXTERN OMMPT(VAR REAL,REAL, REAL)
VECT[0]=SET(0,0,1)
M_DATA[0]=SET(2.6800,27.4994,-1.0000,-1.0000,0.0000,0.0000,0,0,0,0,0,0,0,0,0)
OMMPT(M_DATA,VECT,DiamT)
PROC OMMPT(VAR REAL _DATA[],REAL VECT[], REAL _DIAT) SAVE
上述内容为数组的定义、子程序的定义、数组赋值、子程序调用、子程序定义。
请问是否有语法错误,如果有错需要如何更改?
有参数传递的子程序,要给传递参数进行声明,也就是主程序EXTERN和子程序PROC。这个要在程序的最开始部分。
数组的定义要在第二部分
第三部分就是程序部分了。按你的程序,我改一下,参照如下:
主程序:
EXTERN OMMPT(VAR REAL[15],VAR REAL[3],VAR REAL) ;每个参数都要用VAR定义。要说明定义数组的位数。
DEF REAL VECT[3] ;这部分定义数组
DEF REAL DiamT
DEF REAL M_DATA[15]
;这部分给变量赋值
DiamT=2.0000
VECT[0]=SET(0,0,1)
M_DATA[0]=SET(2.6800,27.4994,-1.0000,-1.0000,0.0000,0.0000,0,0,0,0,0,0,0,0,0)
OMMPT(M_DATA,VECT,DiamT)
子程序
PROC OMMPT(VAR REAL M_DATA[15],VAR REAL VECT[3], VAR REAL DiamT) SAVE;这里传递的数组名称及位数要写全,并且变量类型要与主程序定义顺序一致。
以上就是有问题的语法说明,希望对你有帮助。
请填写推广理由:
分享
只看
楼主