简单的GDL代码问题

时间:2014-04-20 21:50:33

标签: variables idl-programming-language

我正在为介绍性编程类编写一个简单的GDL(IDL)代码。它用于确定男子跳伞的速度与时间的关系。它使用欧拉近似,我一直得到一个错误,我确信它与开始时定义我的变量有关,但我不知道如何。 (我想它类似于它在FORTRAN中所做的事情,但这对我没有用。)任何帮助都表示赞赏。感谢

pro para

print,"enter inital time"
read,t(1)
print,"enter initial velovity"
read,v(1)
print,"enter drag coefficient"
read,c
print,"enter mass"
read,m

for i=1,10 do begin
v(i+1)=v(i)+(32-(c*v(i)*v(i))/m)*(h)
h=((t(i)+1)-t(i))
t(i+1)=t(i)+1
endfor

for j=1,11 do print,t(j),v(j)
endfor
end

当我尝试运行此代码时,我收到错误消息

% Ambiguous: Function not found: T  or: Variable is undefined: T
% Execution halted at: $MAIN$          
% Ambiguous: Function not found: V  or: Variable is undefined: V
% Execution halted at: $MAIN$          

1 个答案:

答案 0 :(得分:0)

我做了一些调整。一:在分配其中一个元素(现在为t0和v0)之前,你还没有定义数组t或v。二:在使用之前没有定义。另外,请注意,您可以从IDL中的0(而不是1)开始。

我无法谈论表达方式的数学,但我相信这更接近你的目标。

pro para

print,"enter inital time"
read,t0
print,"enter initial velovity"
read,v0
print,"enter drag coefficient"
read,c
print,"enter mass"
read,m

t=make_array(11,/double,value=0)
v=make_array(11,/double,value=0)
t[0] = t0
v[0] = v0

for i=0,10 do begin
    h=((t(i)+1)-t(i))
    v(i+1)=v(i)+(32-(c*v(i)*v(i))/m)*(h)
    t(i+1)=t(i)+1
    print,t[i],v[i]
endfor

end