Ocena użytkownikóww: ***** / 1
Nadesłany przez Tomasz Lubiński, 10 maja 2008 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
metoda Monte-Carlo - Delphi/metoda_monte_carlo.dpr:
// Calkowanie numeryczne - metoda Monte-Carlo
// www.algorytm.org
// (c)2008 by Tomasz Lubinski
program metoda_monte_carlo;
{$APPTYPE CONSOLE}
uses
SysUtils, Math;
//funkcja dla ktorej obliczamy calke
function func(x: Real): Real;
begin
result := x*x + 3;
end;
//random number from a to b
function randomPoint(a: Real; b: Real): Real;
begin
result := a + random * (b-a);
end;
var
xp, xk, calka: Real;
i, n: Integer;
begin
writeln('Podaj poczatek przedzialu calkowania');
readln(xp);
writeln('Podaj koniec przedzialu calkowania');
readln(xk);
writeln('Podaj dokladnosc calkowania (w setkach punktow)');
readln(n);
n := n * 100;
calka := 0;
randomize();
for i:=1 to n do
calka := calka + func(randomPoint(xp, xk));
calka := (calka / n) * (xk - xp);
writeln('Wartosc calki wynosi w przyblizeniu ' + FloatToStr(calka));
readln;
end.