Программа
Program Trapezium;
Var Left,Right:real; { Левая и правая границы интервала интегрирования }
Break:word; { Разбиение }
A,E,b:real; { Параметры }
Function F(A,E,b,T:real):real; { Вычисление интегрируемой функции }
Begin
F:=Exp(A/T-E)/(b-T)
End;
Function Integral(Left,Right,A,E,b:real;Break:word):real;
{ Функция вычисления интеграла }
Var Sum, { Промежуточная сумма }
LengthStep, { Длина шага разбиения }
LeftY,RightX, { Левая и правая границы шага интегрирования }
RightY:real;
{ Значение интегрируемой функции на правой границе шага интегрирования }
i:word; { Счетчик }
Begin
Sum:=0; { Обнуление промежуточной суммы }
LengthStep:=(Right-Left)/Break; { Вычисление длины шага интегрирования }
LeftY:=F(A,E,b,Left); { Вычисление значения функции на левой границе }
RightX:=Left+LengthStep; { Вычисление правой границы левого интервала }
for i:=1 to Break do { Цикл набора промежуточной суммы }
begin
RightY:=F(A,E,b,RightX);{ Вычисление значения функции на правой границе }
Sum:=Sum+(LeftY+RightY)/2; { Набор промежуточной суммы }
LeftY:=RightY; { Сохранение значения функции на правой
границе для последующей итерации }
RightX:=RightX+LengthStep
{ Вычисление правой границы следующего участка }
end;
Integral:=Sum*LengthStep { Определение интегральной суммы }
End;
BEGIN
{ Ввод данных: }
Write('Введите параметр A ');
ReadLn(A);
Write('Введите параметр E ');
ReadLn(E);
Write('Введите параметр b ');
ReadLn(b);
Write('Введите левую границу интервала интегрирования ');
ReadLn(Left);
Write('Введите правую границу интервала интегрирования ');
ReadLn(Right);
Write('Введите разбиение интервала интегрирования ');
ReadLn(Break);
WriteLn('Tau=',Integral(Left,Right,A,E,b,Break)) { Вычисление и вывод результата }
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:= * │ Вычисление
* Exp(A/T-E) *∙∙∙∙∙∙│ значения
* /(b-T) * │ функции
* * │
***************** └─
:
:
***************
* *
* К О Н Е Ц *
* *
***************
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию