Текст программы.

 

program Tabl_Of_Fx;

{

Программа Лабораторной работы N 6 Вариант N 31.

Использование рекуррентных формул в итеративных циклах.

А.Я.Умненькая, ст. гр. Я-007

}

CONST {при описании переменным зададим исходные значения }

A : real = -0.05;

B : real = 0.04;

VAR

X,Dx,S,C,EPS : real;

Nx,J,K,i : integer; {I – для счетчика цикла по X }

fout : text; { для выходного файла }

LABEL

Vvod_Dx, Vvod_EPS;

BEGIN

assign(fout,'Umnik6.res');

rewrite(fout);

{ Ввод исходных данных (Dx и EPS) }

Vvod_Dx:

writeln ('Для X на отрезке[-0.05, 0.04]введите шаг счета');

readln(Dx);

if (Dx <0.002) or (Dx > 0.04) then

begin

writeln('Недопустимое значение!');

goto Vvod_Dx;

end;

Vvod_EPS:writeln('введите минимальный размер слагаемого);

readln(EPS);

if (EPS < 1e-9) or (EPS > 1e-2) then

begin

writeln('Недопустимое значение!');

goto Vvod_EPS;

end;

{ Определение длины внешнего (по X) цикла }

Nx := Trunc((B-A)/Dx) + 1;

{ печать исходных данных }

writeln(fout,' Исходные данные');

writeln(fout,' Интервал X: [',A:5:2,B:5:2,']);

writeln(fout, Шаг X:',Dx:5:3, ', шагов:',Nx:3,',

точность:',EPS:1);

{ Печать заголовка таблицы }

writeln(fout,' Результаты расчетов':30);

writeln(fout,'| X | F(x) | S ',

' |Слагаемых|');

writeln(fout,'|-------|-----------|-----------|',

'---------|');

{ Внешний цикл (for) по X }

for i:=1 to Nx do

begin

{ вычисление X }

X := A + Dx*(i-1);

if X > B then X := B; { уточнение на конце интервала}

{ задание начальных значений J, C, S и числа слагаемых K}

J := 1;

C := 1;

S := C;

K := 1;

Repeat { внутренний цикл вычисления S }

C := -C * X*J/(J+1);

S := S + C;

K := K + 1;

J := J + 2;

until (abs(C) < EPS) or (K >100);

{ печать строки таблицы с результатами }

write(fout,'| ',X:5:2,' |', 1.0/Sqr(1.0+X):10:7,

' |');

writeln(fout,S:10:7,' |',K:6,' |');

end;

{ Завершение программы (печать нижней рамки таблицы,

закрытие файлов, задержка) }

writeln(fout,'|---------------------------------',

'--------|');

close(fout);

readln;

END.