Найти площадь фигуры - Pascal
Формулировка задачи:
Помогите, пожалуйста, написать прогу (можно на любом языке) по нахождению площади фигуры на тему численные методы.
Решение задачи: «Найти площадь фигуры»
textual
Листинг программы
const n=20;{количество разбиений}
a=0;
b=pi/2;
e=0.001;{точность}
type func=function(x:real):real;
{$F+} {функции по условию}
function F(x:real):real;
begin
F:=cos(x)-exp(x)+1;
end;
function F1(x:real):real;
begin
F1:=cos(x);
end;
function F2(x:real):real;
begin
F2:=exp(x)-1;
end;
{$F-}
{вычисление интеграла методом прямоугольников}
function Integral(f:func;xn,xk:real):real;
var h,x,s:real;
i:integer;
begin
h:=(xk-xn)/n;
x:=xn+h/2;
s:=0;
for i:=1 to n do
begin
s:=s+f(x);
x:=x+h
end;
Integral:=s*h;
end;
var c,x1,x2,x,p:real;
begin
{найдем точку пересечения графиков методом бисекции}
x1:=a;
x2:=b;
c:=(x1+x2)/2;
repeat
c:=(x1+x2)/2;
if F(x1)*F(c)<=0 then x2:=c else x1:=c;
until abs(x2-x1)<e;
x:=(x1+x2)/2;
writeln('Ордината пересечения графиков=',x:0:3);
{определим площадь фигуры}
p:=Integral(F2,a,x)+Integral(F1,x,b);
write('Площадь фигуры=',p:0:3);
end.
Объяснение кода листинга программы
- Объявляются переменные n, a, b, e, func, F, F1, F2, Integral, h, x, s, i, c, x1, x2, x, p.
- Задается значение переменной n равное 20.
- Объявляется функция F, которая принимает аргумент x типа real и возвращает значение типа real.
- Объявляется функция F1, которая принимает аргумент x типа real и возвращает значение типа real.
- Объявляется функция F2, которая принимает аргумент x типа real и возвращает значение типа real.
- Задается значение переменной xn равное 0.
- Задается значение переменной xk равное pi/2.
- Задается значение переменной e равное 0.001.
- Определяется функция Integral, которая принимает функции f и аргументы xn и xk типа real и возвращает значение типа real.
- В функции Integral объявляются переменные h, x, s и i.
- Вычисляется значение переменной h, равное (xk-xn)/n.
- Вычисляется значение переменной x, равное xn+h/2.
- Инициализируется переменная s значением 0.
- Задается начальное значение переменной i равное 1.
- Задается условие для цикла while: повторять цикл до тех пор, пока abs(x2-x1)<e.
- Вычисляется значение переменной c, равное (x1+x2)/2.
- Проверяется условие: если F(x1)*F(c)<=0 то значение переменной x2 устанавливается равным c, иначе значение переменной x1 устанавливается равным c.
- Вычисляется среднее значение x1 и x2, равное (x1+x2)/2.
- Выводится значение переменной x: (x1+x2)/2.
- Вычисляется площадь фигуры путем интегрирования функций F2 и F1 от xn до x.
- Выводится значение площади фигуры.