Честно? Ни фига не понятно, тем более что я в сях не секу.
Вот я Вам сейчас отомщу -- напишу на нормальном, человеческом Паскале, как
надо было:
Код:
type float = extended;
type pointtype = array[0.. 2] of float;
type coeftype = record a,b,c,d: float; end;
{--------------------------------------------------------------------------------------------}
function right(u: pointtype; k: coeftype): float;
begin
right:=(k.e-u[0]*k.d-u[1]*k.c-u[2]*k.b)/k.a;
end;
{--------------------------------------------------------------------------------------------}
procedure euler_one_step(uold: pointtype; k: coeftype; h: float; var unew: pointtype);
begin
unew[0]:=uold[0] + uold[1]*h;
unew[1]:=uold[1] + uold[2]*h;
unew[2]:=uold[2] + right(uold, k)*h;
end;
{--------------------------------------------------------------------------------------------}
Ну и потом, естественно, надо зациклить процедуру euler_one_step, накапливая очередные значения u[0] в каком-нить массиве (или просто делая с ними, что душеньке угодно).
Это -- конкретно для Эйлера. Для Рунге-Кутта вообще -- аналогично, только соотв. длиннее.