
Лабораторная работа №1 Часть 1 Вариант №6
.docБЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра программного обеспечения информационных технологий
Факультет непрерывного и дистанционного образования
Специальность ПОИТ
Лабораторная работа № 1
по дисциплине «Основы алгоритмизации и программирования»
часть 1
Вариант № 6
Выполнил студент: Лысенков А.С.
Группа 901022
Зачетная книжка № 901022-05
Минск 2010
Работа №1
1). Задание
Для аргумента
,
изменяющегося от –0.6 с шагом 0.05 вычислить
20 значений функций:
;
.
Функцию f2(x)
вычислить для ряда точностей
.
Для указанных точностей определить
количество N элементов
ряда, суммируемых для достижения заданной
точности. Результаты расчетов свести
в таблицу.
2). Схема алгоритма.
На рис. 1 представлена схема алгоритма по ГОСТ 19. 701-90.
3). Текст программы.
Program ex1;
Uses Crt;
Const
eps1 = 0.01; { Точность 10-2}
eps2 = 0.001; { Точность 10-3 }
eps3 = 0.0001; { Точность 10-4 }
a = -0.6; { Начальное значение Х}
b = 0.05; { Шаг} N = 20; { Количество значений функции }
Var
k1, k2, k3, i: Integer; {Вспомогательные переменные}
f1, f2_1, f2_2, f2_3, step, slag, x: Real;
BEGIN
ClrScr;
{Рисуется шапка таблицы}
writeln('_______________________________________________________');
writeln('| | | e=0.01 | e=0.001 | e=0.0001 |');
writeln('| x | f1(x) |-------- ------|--------------|------------------|');
writeln('| | | f2(x) | N | f2(x) | N | f2(x) | N |');
writeln('|_______|_____________|______|___|_______|___|________|___|');
x := a; {Начальное значение Х}
for i:=1 to N do
begin
f1:=0.125*((1-sqr(x)) * ln((1-x)/(1+x)) + 2*(sqr(x) + 1) * arctan(x));
{ Вычисляется значение функции f1}
{ Вычисляется значения функции f2}
step:=x*x*x; {Начальное значение степени Х}
f2_1:=step/3; {Начальное значение функции f2_1}
k1:=0;
repeat {Итерационный цикл для точности 10-2}
inc(k1);
step:=step*x*x*x*x; {Наращивается степень}
slag:=step/((4*k1+1)*(4*k1+3)); {Считается очередное слагаемое}
f2_1:=f2_1+slag; {Считается значение f2_1}
until abs(slag)<=eps1; {Выход из цикла, когда слагаемое становится меньше точности 10-2}
f2_2:=f2_1;
k2:=k1;
repeat {Итерационный цикл для точности 10-3}
inc(k2);
step:=step*x*x*x*x; {Наращивается степень}
slag:= step/( (4*k1+1)*(4*k1+3) ) ; {Считается очередное слагаемое}
f2_2:=f2_2+slag;
until abs(slag)<=eps2; {Выход из цикла, когда слагаемое становится меньше точности 10-3}
f2_3:=f2_2;
k3:=k2;
repeat {итерационный цикл для точности 10-4}
inc(k3);
step:=step*x*x*x*x; {Наращивается степень}
slag:= step/((4*k1+1)*(4*k1+3)); {Считается очередное слагаемое}
f2_3:=f2_3+slag;
until abs(slag)<=eps3; {Выход из цикла, когда слагаемое становится меньше точности 10-4}
{ Вывод результатов}
writeln('| ', x:5:2,' | ',f1:12:9,'| ',f2_1:5:2,'| ',
k1:2,'| ',f2_2:6:3,'| ',k2:2,'| ',f2_3:7:4,'| ', k3:2,'|');
x:=x+b;
end;
{ завершение таблицы }
write('------------------------------------------------------------------------------');
ReadKey
END.
Результаты работы программы:
x |
f1(x) |
e=0.01 |
e=0.001 |
e=0.0001 |
|||
f2(x)
|
N |
f2(x) |
N |
f2(x) |
N |
||
-0.60 -0.55 -0.50 -0.45 -0.40 -0.35 -0.30 -0.25 -0.20 -0.15 -0.10 -0.05 0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 |
-0.072839081 -0.055908079 -0.041894976 -0.030483343 -0.021380574 -0.014310148 -0.009006267 -0.005210080 -0.002667033 -0.001125049 -0.000333336 -0.000041667 0.000000000 0.000041667 0.000333336 0.001125049 0.002667033 0.005210080 0.009006267 0.014310148 |
-0.07 -0.06 -0.04 - 0.03 - 0.02 -0.01 -0.01 -0.01 -0.00 -0.00 -0.00 -0.00 0.00 0.00 0.00 0.00 0.00 0.01 0.01 0.01 |
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
-0.073 -0.056 -0.042 -0.030 -0.021 -0.014 -0.009 -0.005 -0.003 -0.001 -0.000 -0.000 0.000 0.000 0.000 0.001 0.003 0.005 0.009 0.014 |
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 |
-0.0729 -0.0559 -0.0419 -0.0305 -0.0214 -0.0143 -0.0090 -0.0052 -0.0027 -0.0011 -0.0003 0.0000 0.0000 0.0003 0.0052 0.0011 0.0027 0.0052 0.0090 0.0143 |
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 |
X:=A
I
:= 1
2
Нет
Да
f1:=0.125*((1-sqr(x)) *
ln((1-x)/(1+x)) + 2*(sqr(x) + 1) * arctan(x)); step:=x*x*x; f2_1:=step/3;
k1:=0;
inc(k1);
step:=step*x*x*x*x;
slag:= step/((4*k1+1)*(4*k1+3));
f2_1:=f2_1+slag;
Нет
Да
f2_2:=f2_1;
k2:=k1;
inc(k2);
step:=step*x*x*x*x;
slag:= step/((4*k1+1)*(4*k1+3));
f2_2:=f2_2+slag;
Нет
Да
1
1 f2_3:=f2_2;
k3:=k2;
inc(k3);
step:=step*x*x*x*x;
slag:= step/((4*k1+1)*(4*k1+3));
f2_3:=f2_3+slag;
Нет
Да
Вывод
результатов
X:=X+b
I:=I+1
2
Рис. 1 Схема алгоритма по ГОСТ 19. 701-9