Проблема с простым кодом GDL

Я пишу простой код GDL(IDL) для вводного класса программирования. Это используется, чтобы определить скорость человека, прыгающего с парашютом относительно времени. Он использует приближение Эйлера, и я продолжаю получать ошибку, которая, я уверен, как-то связана с определением моих переменных в начале, но я не знаю, как это сделать. (Я полагаю, что это похоже на то, как это делается в Фортране, но это не сработало для меня.) Любая помощь приветствуется. Спасибо

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 ответ

Я сделал пару корректировок. Первый: вы не определили массивы t или v до назначения одного из их элементов (теперь t0 и v0). Два: h не был определен до его использования. Также обратите внимание, что вы можете начать с 0 (вместо 1) в IDL.

Я не могу говорить о математике выражения, но я считаю, что это ближе к тому, что вы хотели.

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
Другие вопросы по тегам