Program INTEGRAL; - название программы
type - раздел описания типов
Func= function(x: Real): Real; - функциональный тип, определяется как заголовок функции, со списком формальных параметров, но без имени
var - секция объявления переменных
I,TN,TK:Real; - переменные вещественного типа
N:Integer; - переменная целого типа
{$F+} - ключ режима дальней адресации, в котором компилируются функции, имена которых будут передаваться как фактические параметры.
Function Q(t: Real): Real; - название функции, в которой t имеет вещественный тип
begin - начало описания функции
Q:=2*t/Sqrt(1-Sin(2*t)); - сама функция
end; - конец описания функции
{$F-} - ключ завершения режима дальней адресации
Procedure Simps(F:Func; a,b:Real; N:Integer; var INT:Real); - процедурный тип, вычисление определенного интеграла по методу Симпсона, где A и B - нижняя и верхняя границы интервала интегрирования (переменные вещественного типа), N - число разбиений интервала интегрирования (переменная целого типа).
var - секция объявления переменных
sum, h: Real; - сумма и переменная h - вещественного типа
j:Integer; - j - переменная целого типа
begin - начало вычисления
if Odd(N) then N:=N+1; - Если функция N - нечетное, тогда выполняем N:=N+1
h:=(b-a)/N; - значение h=(b-a)/N
sum:=0.5*(F(a)+F(b)); - находим первую сумму 0.5*(F(a)+F(b)
for j:=1 to N-1 do - для j=1 берем N-1
sum:=sum+(j mod 2+1)*F(a+j*h); - находим сумму первой суммы и данного произведения, где (j mod 2+1)- остаток от деления значения j на значение 2+1
INT:=2*h*sum/3 - значение интеграла равно 2*h*sum/3
end; - окончание нахождения интеграла
begin - начало выполнения программы
WriteLn(' ВВЕДИ TN,TK,N'); - вывод данных на экран
Read(TN,TK,N); - ввод данных с клавиатуры
Simps(Q,TN,TK,N,I); - значения интегрируемой функции
WriteLn('I=',I:8:3) - вывод данных на экранend. - конец программы
type - раздел описания типов
Func= function(x: Real): Real; - функциональный тип, определяется как заголовок функции, со списком формальных параметров, но без имени
var - секция объявления переменных
I,TN,TK:Real; - переменные вещественного типа
N:Integer; - переменная целого типа
{$F+} - ключ режима дальней адресации, в котором компилируются функции, имена которых будут передаваться как фактические параметры.
Function Q(t: Real): Real; - название функции, в которой t имеет вещественный тип
begin - начало описания функции
Q:=2*t/Sqrt(1-Sin(2*t)); - сама функция
end; - конец описания функции
{$F-} - ключ завершения режима дальней адресации
Procedure Simps(F:Func; a,b:Real; N:Integer; var INT:Real); - процедурный тип, вычисление определенного интеграла по методу Симпсона, где A и B - нижняя и верхняя границы интервала интегрирования (переменные вещественного типа), N - число разбиений интервала интегрирования (переменная целого типа).
var - секция объявления переменных
sum, h: Real; - сумма и переменная h - вещественного типа
j:Integer; - j - переменная целого типа
begin - начало вычисления
if Odd(N) then N:=N+1; - Если функция N - нечетное, тогда выполняем N:=N+1
h:=(b-a)/N; - значение h=(b-a)/N
sum:=0.5*(F(a)+F(b)); - находим первую сумму 0.5*(F(a)+F(b)
for j:=1 to N-1 do - для j=1 берем N-1
sum:=sum+(j mod 2+1)*F(a+j*h); - находим сумму первой суммы и данного произведения, где (j mod 2+1)- остаток от деления значения j на значение 2+1
INT:=2*h*sum/3 - значение интеграла равно 2*h*sum/3
end; - окончание нахождения интеграла
begin - начало выполнения программы
WriteLn(' ВВЕДИ TN,TK,N'); - вывод данных на экран
Read(TN,TK,N); - ввод данных с клавиатуры
Simps(Q,TN,TK,N,I); - значения интегрируемой функции
WriteLn('I=',I:8:3) - вывод данных на экранend. - конец программы
Задание зачтено.
ОтветитьУдалить