Программа


Program Trapezium;
{ Вычисление интеграла
  методом трапеций }
Type Func=function(x:real):real; { Тип функция }
Var Left,Right:real;       { Левая и правая границы интервала интегрирования }
    Break:word;         { Разбиение }
Function F(x:real):real; far;  { Вычисление интегрируемой функции }
  Begin
    F:=x
  End;
Function Integral(Left,Right:real;Break:word;F:Func):real;
                                              { Функция вычисления интеграла }
  Var Sum,                                    { Промежуточная сумма }
      LengthStep,                             { Длина шага разбиения }
      LeftY,RightX,             { Левая и правая границы шага интегрирования }
      RightY:real;
      { Значение интегрируемой функции на правой границе шага интегрирования }
      i:word;      { Счетчик }
  Begin
    Sum:=0;                          { Обнуление промежуточной суммы }
    LengthStep:=(Right-Left)/Break;  { Вычисление длины шага интегрирования }
    LeftY:=F(Left);          { Вычисление значения функции на левой границе }
    RightX:=Left+LengthStep; { Вычисление правой границы левого интервала }
    for i:=1 to Break do     { Цикл набора промежуточной суммы }
    begin
      RightY:=F(RightX);   { Вычисление значения функции на правой границе }
      Sum:=Sum+(LeftY+RightY)/2;   { Набор промежуточной суммы }
      LeftY:=RightY;               { Сохранение значения функции на правой
                                     границе для последующей итерации }
      RightX:=RightX+LengthStep
                            { Вычисление правой границы следующего участка }
    end;
    Integral:=Sum*LengthStep  { Определение интегральной суммы }
  End;

BEGIN
  { Ввод данных: }
  Write('Введите левую границу интервала интегрирования ');
  ReadLn(Left);
  Write('Введите правую границу интервала интегрирования ');
  ReadLn(Right);
  Write('Введите разбиение интервала интегрирования ');
  ReadLn(Break);

  WriteLn('=',Integral(Left,Right,Break,F)) { Вычисление и вывод результата }
END.

  БЛОК-СХЕМА

  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
   *****************    ┌─
                        │ Ввод
  *  Left, Right  *     │
                  ∙∙∙∙∙∙│ начальных
 *     Break     *      │
                        │ параметров
*****************       └─
         :
         :
         :
         :
 *****************      ┌─
 * *           * *      │
 * *           * *      │ Вычисление
 * *  Integral * *∙∙∙∙∙∙│
 * *           * *      │ интеграла
 * *           * *      │
 *****************      └─
         :
         :
   *****************    ┌─
                        │
  *               *     │ Вывод
                  ∙∙∙∙∙∙│
 *               *      │ результата
                        │
*****************       └─
         :
         :
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************

  БЛОК-СХЕМА ФУНКЦИИ Integral

  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
 *****************      ┌─
 *    Sum:=0     *      │ Обнуление промежуточной суммы
 *               *      │
 * LengthStep:=  *∙∙∙∙∙∙│
 * (Right-Left)/ *      │ Вычисление длины шага интегрирования
 * Break         *      │
 *****************      └─
         :
         :
         :
 *****************      ┌─
 * LeftY:=F(Left)*      │ Вычисление значения функции на левой границе
 *               *      │
 * RightX:=Left+ *∙∙∙∙∙∙│ Вычисление правой границы левого интервала
 *   LengthStep  *      │
 *               *      │
 *****************      └─
         :
         :
         :∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙<∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙.
         :                                                           :
    ***********                                                      :
   *           *                                                     :
  *             *                                                    :
 *   i=1..Break  *∙∙∙∙∙∙∙∙∙∙.                                        :
  *             *           :                                        :
   *           *            :                                        :
    ***********             :                                        :
         :                  :                                        :
         :          *****************  ┌─                            :
         :          *  RightY:=     *  │ Вычисление значения         :
         :          *  F(RightX)    *  │ функции на правой границе   :
         :          *  Sum:=Sum+    *∙∙│                             :
         :          * (LeftY+RightY)*  │ Набор промежуточной суммы   :
         :          *      /2       *  │                             :
         :          *****************  └─                            :
         :                  :                                        :
         :                  :                                        :
         :                  :                                        :
         :          *****************  ┌─                            :
         :          * LeftY:=RightY *  │ Сохранение значения функции :
         :          *               *  │ на правой границе           :
         :          *RightX:=RightX+*∙∙│                             :
         :          *   LengthStep  *  │ Вычисление правой границы   :
         :          *               *  │ следующего участка          :
         :          *****************  └─                            :
         :                  :                                        :
         :                  `∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'
 *****************  ┌─
 *               *  │
 *  Integral:=   *  │ Определение
 *               *∙∙│ интегральной
 * Sum*LengthStep*  │ суммы
 *               *  │
 *****************  └─
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************

  БЛОК-СХЕМА ФУНКЦИИ F

  ***************
 *               *
 *    П У С К    *
 *               *
  ***************
         :
         :
         :
 *****************      ┌─
 *               *      │
 *               *      │ Вычисление
 *     F:=X      *∙∙∙∙∙∙│ значения
 *               *      │ функции
 *               *      │
 *****************      └─
         :
         :
  ***************
 *               *
 *   К О Н Е Ц   *
 *               *
  ***************

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию