русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...

Програмна реалізація методів цифрового інтегрування

Розглянемо приклади програм, що використовують методи цифрового інтегрування.

Приклад 14.3. Обчислити інтеграл, використовуючи різні методи цифрового інтегрування. Інтегрування оформити у вигляді підпрограми.

 

Рішення: Для обчислення інтеграла доцільно використовувати підпрограму - функцію.

При цьому в тексті програми необхідно:

1) Включити директиву далекого виклику {$F+} або виконати необхідні налаштування в середовищі програмування оскільки з однієї функції викликається інша. (Підключити до тексту програми, які нею директиви можна за допомогою клавіш Ctrl-OO 2) Описати тип функції.
3) У списку формальних параметрів послатися на тип (тобто використовувати параметр-Funftion).

 

Текст програми

Program pr_intF;
{ Обчислити інтеграл, використовуючи різні методи цифрового
інтегрування. Інтегрування оформити у вигляді підпрограми}
Uses crt;
{$F+} {Директива підтримуюча далекий виклик підпрограм}
Type par =function(x:real):real; {Опис типу функції}
Var C,D,Y :real;
n :integer;
Function F1(x:real):real;
begin
F1:=x end;
Function pnint(F:par; a,b:real;n:integer):real;
{Метод прямокутників з недоліком}
Var
s,h :real;
i :integer;
Begin
h:=(b-a)/n; s:=0;
For i:=0 to n-1 do s:=s+f(a+i*h);
pnint:=h*s
End;
Function pkint(F:par; a,b:real;n:integer):real;
{Метод прямокутників з надлишком}
Var
s,h :real;
i :integer;
Begin
h:=(b-a)/n; s:=0;
For i:=1 to n do s:=s+f(a+i*h);
pkint:=h*s
End;
Function psint(F:par; a,b:real;n:integer):real;
{Метод прямокутників по середній лінії}
Var
s,h :real;
i :integer;
Begin
h:=(b-a)/n; s:=0;
For i:=1 to n do s:=s+f(a+i*h-h/2);
psint:=h*s
End;
Function tint(F:par; a,b:real;n:integer):real;
{Метод трапецій}
Var
s,h :real;
i :integer;
Begin
h:=(b-a)/n; s:=f(a)/2+f(b)/2;
For i:=1 to n-1 do s:=s+f(a+i*h);
tint:=h*s
End;
Function sint(F:par; a,b:real;n:integer):real;
{Метод Сімпсона}
Var
s,h :real;
i :integer;
Begin
h:=(b-a)/n; s:=f(a)/2+f(b)/2;
if odd(n) then n:=n+1;
For i:=1 to n-1 do s:=s+(i mod 2+1)*f(a+i*h);
sint:=2*h*s/3
End;
Begin
ClrScr;
Writeln("Уведіть межі інтегрування (C і D) а число подинтервалов n");
Readln (C,D,n);
{Y:=pnint(F1,C,D,n);}
{Y:=pkint(F1,C,D,n);}
Y:=psint(F1,C,D,n);
{Y:=tint(F1,C,D,n);}
{Y:=sint(F1,C,D,n);}
Writeln("Результат інтегрування" );
Writeln(" ":10,"Y=",Y:10);
Readln;
End.

 

Результат роботи програми:

Введіть межі інтегрування (C і D) а число інтервалів n
0 10 100

Результат інтегрування

Y= 5.000E+01

Просмотров: 6656

Повернутися в зміст:Алгоритмічні мови





Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн