Далее текст программы «LinkinPark» на языке программирования IDE Borland Turbo Pascal 7.0, выполняющей вычисления таблицы значений функции, заданной в виде разложения в ряд.
program LinkinPark;
Uses crt;
var pr,j,n:integer;
a,b,R,e,I,I2,x,h,fi,fi2,pi:real;
str1:string;
begin
clrscr;
I2:=0;
repeat
writeln('Введите нижнюю границу интегрирования. a=');
readln(str1);
val(str1,a,pr);
if pr<>0 then
writeln('Ошибка, введен символ. Введите цифру.');
until pr=0;
repeat
writeln('Введите верхнюю границу интегрирования b=');
readln(str1);
val(str1,b,pr);
if pr<>0 then
writeln('Ошибка. Введен символ. Введите цифру.');
if (a=b) or (a>b) then
writeln('Ошибка. а<>b и b>a')
if b=0 then
writeln(‘Ошибка. b<>0');
until((pr=0)and(b>a)and(b<>0));
repeat
writeln('Введите параметр функции R');
readln(str1);
val(str1,R,pr);
if pr<>0 then
writeln('Ошибка. Введен символ. Введите цифру.');
until pr=0;
repeat
writeln('Введите точность вычислений');
readln(str1);
val(str1,e,pr);
if pr<>0 then
writeln('Ошибка. Введен символ. Введите цифру.');
until pr=0;
I:=0;
pi:=3.14159265;
n:=10;
while abs(I2-I)<=e do
begin
h:=(b-a)/n;
I2:=I;
I:=0;
for j:=1 to n do
begin
x:=a+h*(j-1);
if x<-R then
fi:=-(x+R)*(sin(pi/3)/cos(pi/3))
else
begin
if x<R then
fi:=cos(x)
else
begin
if x<3*R then
fi:=sqrt(R*R-((x-2*R)*(x-2*R)))
else
fi:=(x-3*R)*(sin(pi/6)/cos(pi/6));
end;
end;
I:=I+fi*h;
n:=n*2;
end;
end;
writeln(I:5:7);
end.
1.7 Тестовый пример
1.7.1 Аналитическое решение
Посчитаем значение интеграла со следующими параметрами (рис.7).
Таким образом, значение интервала на данном участке равна 3.81.
1.7.2 Решение задачи с использованием разработанного ПО
Рассчитаем значение этого же интеграла через программу «LinkinPark». Ниже приведено окно вывода с результатами (рис. 7).
Рисунок 7 – Тестовый ввод
По приведенному выше рисунку 7 можно сделать вывод о том, что данная программа работает корректно. Отличие в результатах обусловлено тем, что вычисление по методу левых прямоугольников дает приближенное значение интеграла