
Текст программы
procedure TForm1.Button1Click(Sender: TObject);
var n,j:integer;
var s,eps,x,c :real;
function y(x:real):real;
begin
y:=-1/2*ln(1-2*x*cos((pi)/3)+sqr(x));
end;
begin
stringGrid1.Cells[0,0]:= 'x';
stringGrid1.Cells[0,1]:='y(x)';
stringgrid1.cells[0,2]:='s';
eps:=StrToFloat(edit1.Text); {абсолютная погрешность}
x:=0.1;
c:=(0.8-x)/9;
j:=1;
while x<=0.8 do
begin
n:=1;
s:=(exp(n*ln(x))*cos(pi*n/3))/n;
while (abs(y(x)-s))>=eps do
begin
n:=n+1;
s:=s+(exp(n*ln(x))*cos(pi*n/3))/n;
end;
Stringgrid1.Cells[0,j]:=FloatToStr(x);
StringGrid1.Cells[1,j]:=FloatToStr(y(x));
StringGrid1.Cells[2,j]:=FloatTostr(s);
j:=j+1;
x:=x+c;
end;
end;
Результаты тестирования
С использование программы MathCad были найдены значения функции в заданных точках(0,1;0,17;0,24;0,31;0,38;0,45;0,52;0,59;0,66;0,73;0,8). Изображение экрана с результатом:
Разработанная программа была протестирована в двух режимах: корректные значения, не корректные значения. Граничные значения отсутствуют. Результаты представлены в таблице 2.
Таблица 2. Результаты тестирования.
Режим тестирования |
eps |
Результат |
Корректные значения |
0,0001 0,1 |
См. рисунок 9,10. |
Не корректные значения |
s |
Ошибка – неверный формат |
Изображение экрана с результатом тестирования:
Изображение экрана с результатом тестирования:
Вывод: программа работает верно. При уменьшении значения eps сумма ряда сходится к значению функции.
Заключение
В ходе проделанной работы был освоен метод нахождения суммы ряда с заданной погрешностью.