Niestety nie mogę sobie z tym poradzić, choć siedzę nad tym kilka godzin i wydaje mi się to kompletnie irracjonalne.
Napisałem moduł, w którym jest umieszczonych kilka funkcji.
W głównej treści programu odniosłem się do jednej z tych funkcji. Wynikiem tej funkcji jest rekord danych, a parametrami trzy inne rekordy. Wszystko bardzo fajnie działa. Z wyjątkiem jednej z danych wyniku funkcji. Wszystkie wyniki zapisuje do pliku tekstowego, a w nim ta jedna dana ma taką samą wartość dla każdego użycia funkcji. Funkcja jest wykonywana 6 razy, za każdym razem ma inne dane, do tego część jest losowana w funkcji, tak więc jest nikłe prawdopodobieństwo, że wyniki po prostu się powtarzają.
Próbowałem ustawić kilka pułapek, żeby sprawdzić gdzie jest błąd... Okazało się, że błędu nie ma :o wartość tej danej przyjmuje za każdym razem inną wartość i o dziwo w pliku tekstowym również są inne wartości. Szczęśliwy, usunąłem wszystkie pułapki i uruchomiłem program. Znowu ta sama dana przyjmuje 6 razy tą samą wartość.
for I := 1 to IloscOsob do
begin
SetLength(Wyniki, I);
Wyniki[I - 1] := Silnik.Oblicz(Miejsce, DaneOsobowe[I], Pogoda);
end;
AssignFile(PlikWyniku, 'wyniki/wynik.txt');
ReWrite(PlikWyniku);
for I := 0 to IloscOsob - 1 do
WriteLn( FloatToStrF(Wyniki[I].Srednia, ffNumber, 0, 2), ' ', FloatToStr(Wyniki[I].OcenaLaczna));
CloseFile(PlikWyniku);
Tak wygląda kod, w którym pojawia się błąd, po umieszczeniu pułapki, przed end
zaczyna działać.
Pomóżcie mi, bo ja nie ogarniam na prawdę co się dzieje. Dzięki