Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

Видеокурс программиста и крэкера 5D 2O17
(актуальность: октябрь 2O17)
Свежие инструменты, новые видеоуроки!

  • 400+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Вычисление интеграла

Автор: http://world.fpm.kubsu.ru

Училка сынку программера:
- Ты чего в словосочетании "Дубовая роща" слово "роща" через "я" написал? А ну-ка на доске 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;
  begin
 
   if (a = b) then
     begin
       IntegralSimpson := 0; exit
     end;
 
   if (a > b) then
     begin
       x := a; a := b; b := x; sign := -1
     end
    else 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.
 
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS