Witam
Zainstalowałem Lazarusa i dalej nie ma tekstu. Doszedłem do wniosku,że nie będzie bo struktura programu jest zupełnie inna niż w Turbo Pascalu.
Udało mi się znaleźć jedną procedurę w turbo Pascalu ale w formacie PDF. Nie bardzo wiem jak przerobić ją na Obiekt Pascal jakim jest Lazarus.
Z tego co pamiętam to procedura działała znakomicie w Turbo Pascalu. Niżej załączam tekst:
Procedure Scraton(f, x, y, xe, eps, hmin);
value xe, eps, hmin;
real x, y, xe, eps, hmin;
label etb;
real function f;
Begin
real E, k1, k2, k3, k4, k5 as real;
boolean fi;
( x - bieżąca wartść współrzędnej (odciętej) )
( y - bieżąca i obliczona wartość funkcji (rzędnej) )
( xe - kolejna wartość odciętej )
( eps - mninimalna dokładność obliczeń )
( hmin - minimalna wartość kroku h )
( h - bieżąca wartość kroku obliczna w procedurze Scraton )
( fi - przed pierwszym wywołaniem procedury Scraton nadać wartość false - )
( - póżniej jej wartość jest ustawiana automatycznie )
( etb - zewnętrzna etykieta pod ktorą program kontynuuje dalsze działanie jeśli zostały )
( przkroczone wartości hmin i eps )
If fi then
a: Begin
E = abs((xe - x) / h)
If E <= 1.5 then fi = E > 1
else goto b
End If 'fi
If fi Then h = 0.5 * (xe - x) else h = xe - x
b: k1 = h * f(x, y);
k2 = h * f(x + 0.222222222222 * h, y + 0.2222222222222 * k1);
k3 = h * f(x + 0.333333333333 * h, y + 0.8333333333333 * k1 + 0.25 * k2);
k4 = h * f(x + 0.75 * h, y + 0.5390625 * k1 - 1.8984375 * k2 + 2.109375 * k3);
k5 = h * f(x + 0.9 * h, y - 0.3105 * k1 + 1.8225 * k2 - 1.1016 * k3 + 0.4896 * k4);
E = (0.34 * k1 - 0.972 * k2 + 1.632 * k4 - k5) * (0.129357298475 * k1 - 0.551470588235 * k2
+ 0.46568627451 * k3 - 0.0435729847494 * k4) / (k4 - k1);
k2 = abs(E);
If k2 > eps then goto c
y = y - E + 0.104938271605 * k1 + 0.476470588235 * k3 + 0.237037037037 * k4
+ 0.181554103123 * k5
If fi then
x = x + h
c: h = h * (eps / k2) ^ 0.2
If abs(h) > hmin then goto a else etb;
End; 'fi
x = xe;
fi = True;
End 'Procedure SCRATON;