简单的语言问:救命!!!!(200分)

  • 主题发起人 主题发起人 韧峰
  • 开始时间 开始时间

韧峰

Unregistered / Unconfirmed
GUEST, unregistred user!
这几天我可惨透了,硬着头皮去读一种TBasic编的程序(新浪上都不能搜索到这个词),各位
请看看以下的源码什么意思?尤其是其中的Ravg和Iavg的用法,作为实参传递,但
又不是回调函数,TBasic中A[]表示的数组,同时我也未见哪里有定义:(
....
10000 CALL Zop(Ex,Rx,Ey,Ry,Ex,Ry,Ey,Rx,Denr,Deni,Ravg,Iavg)
....
21530 Zop: ! ------------------------------------------------------
21540 SUB Zop(Arr,Acc,Brr,Bcc,Crr,Ccc,Drr,Dcc,R_out,I_out,Ravg,Iavg)
21550 OPTION BASE 1
21560 DECLARE LOCAL R1,R2,I1,I2
21570 R1 = Ravg[Arr,Acc]*Ravg[Brr,Bcc]-Iavg[Arr,Acc]*Iavg[Brr,Bcc]
21580 R2 = Ravg[Crr,Ccc]*Ravg[Drr,Dcc]-Iavg[Crr,Ccc]*Iavg[Drr,Dcc]
21590 I1 = Ravg[Arr,Acc]*Iavg[Brr,Bcc]+Iavg[Arr,Acc]*Ravg[Brr,Bcc]
21600 I2 = Ravg[Crr,Ccc]*Iavg[Drr,Dcc]+Iavg[Crr,Ccc]*Ravg[Drr,Dcc]
21610 R_out = R1-R2
21620 I_out = I1-I2
21630 END SUB

 
搜索True Basic
 
Option base 1//定义数组基数为1
以后应该和好明白,两个输出参数out
没有看到你说的回调函数的信息[:)]
 
Ravg和Iavg 是 二维数组嘛
 
谢谢。但是,Ex,Rx应该是实数,因为物理上他们分别代表电场和磁场。另外,即使要传递数组元素,
直接写Ravg{ex,rx]不就行了?费的弄成这个样子?
我还是不明白。
 
传一个数组可以传很多数值啊
你看看每次用到它,各个下标不同的,所以传数组减少参数啊
 
哈哈,问题已解决,两位大侠说的没错,其实最前面的主程序里定义了:
220 DIM Ravg[8,8],Iavg[8,8],Xpr[40,8,8],Stn_xpr[40,7,7],Dirct$(20)
我刚才没有搜索到,Ex,Rx被我按习惯视为电磁场了,因为公式本身是:
<Ex*Conjg(Rx)>*<Ey*Conjg(Ry)>-<Ey*Conjg(Rx)>*<Ex*Conjg(Ry)>
其实呢,中途已经被赋值了:
1150 Ex = Ref[1,S]
1160 Ey = Ref[2,S]
1170 Hx = Ref[3,S]
1180 Hy = Ref[4,S]
1190 Hz = Ref[5,S]
1200 Rx = Ref[6,S]
1210 Ry = Ref[7,S]
而Ref他妈的是整数数组。。
 
可是你没有注意它前面连下标也给传了吗???
 
多人接受答案了。
 
后退
顶部