Witam,
Mam dość dziwny problem z następującym kodem:
for j := 0 to 3 do
begin
for i := 0 to 3 do
begin
linia[i] := GetUndulationByColRow(col + i-1, row + j-1) / 10000;
end;
linia2[j] := Lagrange3(linia, y);
tekst := tekst + format ('%g',[linia2[j]]) + chr(13)+ chr(13);
end;
result := Lagrange3(linia2, x);
Funkcja 'GetUndulationByColRow' wyciąga z tabeli żądaną wartość. W ten sposób powstaje 4-elementowa tablica linia, która jest argumentem funkcji Lagrange3. Po 4 wywołaniach funkcji Lagrange3 powstaje kolejna 4-elementowa tablica linia2, która też jest argumentem dla funkcji Lagrange3 i daje ostateczny wynik. Tyle w teorii. Kod działa, ale daje wynik dziwny. Dopisałem do kodu wrzucanie aktualnej wartości j-tego elementu z tablicy linia2 do stringa, żeby zobaczyć czy funkcja Lagrange3 działa dobrze. Dostałem stringa i . . . zupełnie inny wynik funkcji (chyba nawet poprawny). Co jest źle?
Dodam, że w Delphi stawiam pierwsze kroki (sytuacja trochę wymuszona), ale wiem z innych języków, że to nie powinno być możliwe.