Результаты расчета
Текст программы.
Алгоритм
Должен содержать следующие шаги:
1. Задание исходных данных в разделе констант (для A и B);
2. Ввод исходных данных (Dx и EPS);
3. Определение длины внешнего (по X) цикла;
4. Печать заголовка таблицы;
5. Внешний цикл (for) по X;
1) вычисление X;
2) задание начальных значений J, С и S;
3) внутренний цикл вычисления S;
a) расчет С;
б) расчет S;
в) расчет J;
г) проверка условия окончания цикла;
4) печать строки таблицы с результатами;
6. Завершение программы (печать нижней рамки таблицы, задержка).
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.
Файл UMNIK6.RES будет в этом случае содержать:
Исходные данные
Интервал X: [-0.05 0.04],
Шаг X:0.010, шагов: 9, точность: 1.0E-0006
Результаты расчетов
| X | F(x) | S |Слагаемых|
|-------|-----------|-----------|---------|
| -0.05 | 1.1080332 | 1.0259783 | 6 |
| -0.04 | 1.0850694 | 1.0206207 | 5 |
| -0.03 | 1.0628122 | 1.0153462 | 5 |
| -0.02 | 1.0412328 | 1.0101525 | 5 |
| -0.01 | 1.0203041 | 1.0050378 | 4 |
| 0.00 | 1.0000000 | 1.0000000 | 2 |
| 0.01 | 0.9802960 | 0.9950372 | 4 |
| 0.02 | 0.9611688 | 0.9901475 | 5 |
| 0.03 | 0.9425959 | 0.9853293 | 5 |
|-----------------------------------------|
Варианты заданий
Таблица 22. Варианты заданий лабораторной работы N6
№ вар. | F(x) (вид разложения в сумму см.табл.23) | начальное значение A | конечное значение В | шаг Dx | число | точность вычисления EPS * | Тип цикла | |
шагов Nx | итераций Nmax | |||||||
![]() | -0.05 | 0.05 | 0.01* | - | 1e-4 | if | ||
![]() | -0.09 | 0.09 | 10* | 1e-6 | repeat | |||
![]() | 0.08 | 0.01* | 1e-4 | repeat | ||||
![]() | 0.08 | 0.01* | 1e-5 | if | ||||
![]() | -1 | 0.5 | 12* | 1e-6 | repeat | |||
![]() | -2 | 0.5 | 9* | 1e-5 | while | |||
![]() | -0.5 | 0.1* | 1e-5 | if | ||||
0.08 | 0.01* | 1e-4 | repeat | |||||
![]() | -0.2 | 0.1 | 0.01* | 1e-5 | while | |||
![]() | -0.5 | 0.1 | 10* | 1e-6 | if | |||
![]() | -0.5 | 0.5 | 21* | 1e-6 | repeat | |||
![]() | -0.1 | 0.2 | 0.03* | 1e-4 | while | |||
![]() | -0.5 | 0.5 | 21* | 1e-5 | if | |||
![]() | 0.02 | 11* | 1e-3 | repeat | ||||
![]() | -5 | 1* | 1e-4 | while | ||||
![]() | -0.1 | -0.2 | 13* | 1e-5 | if | |||
![]() | 0.1 | 0.3 | 0.02* | 1e-5 | repeat | |||
![]() | 10* | 1* | 1e-6 | while | ||||
![]() | 0.5 | 11* | 1e-4 | if | ||||
![]() | -0.3 | 0.1 | 0.02* | 1e-5 | repeat | |||
![]() | -3 | 1* | 10* | 1e-5 | while | |||
![]() | -0.4 | 0.04 | 17* | 1e-6 | if | |||
![]() | -0.1 | 0.2 | 0.02* | 1e-5 | repeat | |||
![]() | 0.1 | 0.55 | 0.05* | 1e-5 | while | |||
![]() | 0.2 | 0.4 | 11* | 1e-6 | if | |||
![]() | 0.5 | 20* | 1e-5 | repeat | ||||
![]() | 0.5 | 0.1 | 20* | 1e-5 | while | |||
![]() | 1* | 25* | 1e-4 | if | ||||
![]() | 0.3 | 15* | 1e-4 | repeat | ||||
![]() | 0.4* | 20* | 1e-5 | while | ||||
![]() | -0.05 | 0.04 | 0.1* | 1e-6 | repeat |
Таблица 23. Виды представления функций
№ вар. | Вид представления функции как суммы ряда слагаемых |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() | |
![]() |