Училка сынку программера:
- Ты чего в словосочетании "Дубовая роща" слово "роща" через "я" написал? А ну-ка на доске 20 раз правильно напиши, чтобы на всю жизнь запомнил!
Через минуту поворачивается и видит: @Repeat("роща"; 20)
Вычисление интеграла с заданной точностью алгоритмом Симпсона.
// (c) Copydown 2002, all left reserved. http://world.fpm.kubsu.ru.{$APPTYPE CONSOLE}{$F+}{разрешение передачи функций, как параметров}type FunctionType = function(x: real): real;
{интегрируемая функция}function f(x: real): real; begin f := x end;
{интегрирование от a до b функции f с точностью e}function IntegralSimpson(a, b: real; f: FunctionType; e: real): real;
var
h, x, s, s1, s2, s3, sign: real;
beginif (a = b) thenbegin
IntegralSimpson := 0; exit
end;
if (a > b) thenbegin
x := a; a := b; b := x; sign := -1
endelse sign:=1;
h := b - a; s := f(a) + f(b); s2 := s;
repeat
s3 := s2; h := h/2; s1 := 0; x := a + h;
repeat
s1 := s1 + 2*f(x); x := x + 2*h;
until (not(x < b));
s := s + s1; s2 := (s + s1)*h/3; x := abs(s3 - s2)/15
until (not(x > e));
IntegralSimpson := s2*sign;
end;
begin{вывод результата интегрирования от 0 до 1 функции f с точностью 0.001}
writeln(IntegralSimpson(0, 1, f, 0.001));
writeln; writeln('Press Enter'); readln;
end.
Статья Вычисление интеграла раздела Синтаксис Математика может быть полезна для разработчиков на Delphi и FreePascal.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.