Вот твой код, несколько причёсанный:
Код:
function Newton(n : Integer; d : Single; x, y : array of Single) : Single;
var
l : Single;
j, i : Integer;
p, p2 : Single;
y1, y2: array [0..2] of Single;
begin
L := fx[1];
P := 1;
p2 := 1;
for j := 1 to n do
begin
p := p * (D - X[j - 1]);
p2 := p2 * (D - x[j - 1]) * (D - x[j]);
for i := 0 to (n - j) do
Y1[i] := (y[i + 1] - y[i]) / (x[i + j] - x[i]);
for I := 1 to (n-j) do
y2[i] := (((y[i + 2] - y[i + 1]) / (x[i + j] - x[i])) - (y[i + 1] - y[i]) / (x[i + j] - x[i])) / (x[i + 2] - x[i]);
l := l + p * y1[i] + p2 * y2[i];
end;
Result := l;
end;
Твои ошибки:
1. Про предупреждения от компилятора я тебе говорил, но ты не внял моим словам, а жаль.
2. Опять используешь не иницилизированные переменные и ждёшь нормальной работы программы.
3. использование переменных после for.