лабораторная работа №1
.docxБЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра программного обеспечения информационных технологий
Факультет ФНиДО
Специальность ПОИТ
Лабораторная работа № 1
по дисциплине «Основы алгоритмизации и программирования»
часть 1
Вариант № 1
Выполнил студент: Рябченко А.И.
Минск 2013
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.01; { Точность 10-3 }
eps3 = 0.001; { Точность 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:=(-x/4)+((sqrt(2)*(1+x*x*x*x))/32)
*((((ln(sqr(x)+x*sqrt(2)+1)/(sqr(x)-x*sqrt(2)+1)))+(2*Arctan((x*sqrt(2))/(1-sqr(x)))))); { Вычисляется значение функции f1}
{ Вычисляется значения функции f2}
step:=x; {Начальное значение степени Х}
f2_1:=0; {Начальное значение функции f2_1}
k1:=-1;
repeat {Итерационный цикл для точности 10-2}
inc(k1);
step:=step*x*x*x*x; {Наращивается степень}
slag:=step/((4*k1+1)*(4*k1+5)); {Считается очередное слагаемое}
if (k1 mod 2=0) THEN slag:=slag*1 else slag:=slag*(-1);
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*k2+1)*(4*k2+5)); {Считается очередное слагаемое}
if (k1 mod 2=0) THEN slag:=slag*1 else slag:=slag*(-1);
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*k3+1)*(4*k3+5)); {Считается очередное слагаемое}
if (k1 mod 2=0) THEN slag:=slag*1 else slag:=slag*(-1);
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.
начало
Ввод ξ1 ,ξ2 ,ξ3, а, b
Х:=А
I:=1
I<=20
конец
f1:=(-x/4)+((sqrt(2)*
*(1+x*x**x*x))/32)*(((ln(sqr(x)+x*sqrt(2)+1)/
/(sqr(x)-x*sqrt(2)+1))+
+(2*Arctan((x*sqrt(2))/
/(1-sqr(x)))))), step:=X,
f2_1:=0, k1:=-1
inc(k1);
step:=step*x*x*x*x;
slag:=step/((4*k2+1)*
*(4*k2+5));
if (k1 mod 2=0) THEN slag:=slag*1 else slag:=slag*(-1);
f2_1:=f2_1+slag;
abs(slag)<=eps1;
1
3
нет
да
нет
да
1
f2_2:=f2_1;
k2:=k1;
inc(k2); step:=step*x*x*x*x; slag:=step/((4*k2+1)**(4*k2+5));
if (k1 mod 2=0)
THEN slag:=slag*1 else slag:=slag*(-1);
f2_2:=f2_2+slag;
abs(slag)<=eps2
f2_3:=f2_2;
k3:=k2;
inc(k3); step:=step*x*x*x*x; slag:=step/((4*k3+1)*
*(4*k3+5));
if (k1 mod 2=0) THEN slag:=slag*1 else slag:=slag*(-1);
f2_3:=f2_3+slag;
abs(slag)<=eps3
2
нет
да
нет
да
2
Вывод результатов
X:=X+1
I:=I+1
3
Рис. 1. Схема алгоритма по ГОСТ 19. 701-9
Результаты работы программы
x |
f1(x) |
e=0.01 |
e=0.001 |
e=0.0001 |
|||||
f2(x) |
N |
f2(x) |
N |
f2(x) |
N |
||||
-0.60 |
-0.015338505 |
-0.02 |
1 |
-0.015 |
2 |
-0.0153 |
3 |
||
-0.55 |
-0.009966783 |
-0.01 |
1 |
-0.010 |
2 |
-0.0100 |
3 |
||
-0.50 |
-0.006207607 |
-0.01 |
0 |
-0.006 |
1 |
-0.0063 |
2 |
||
-0.45 |
-0.003674007 |
0.00 |
0 |
-0.004 |
1 |
-0.0037 |
2 |
||
-0.40 |
-0.002042231 |
0.00 |
0 |
-0.002 |
1 |
-0.0021 |
2 |
||
-0.35 |
-0.001048696 |
0.00 |
0 |
-0.001 |
1 |
-0.0011 |
2 |
||
-0.30 |
-0.000485564 |
0.00 |
0 |
0.000 |
1 |
-0.0005 |
2 |
||
-0.25 |
-0.000195228 |
0.00 |
0 |
0.000 |
1 |
-0.0002 |
2 |
||
-0.20 |
-0.000063989 |
0.00 |
0 |
0.000 |
1 |
-0.0001 |
2 |
||
-0.15 |
-0.000015187 |
0.00 |
0 |
0.000 |
1 |
0.0000 |
2 |
||
-0.10 |
-0.000002000 |
0.00 |
0 |
0.000 |
1 |
0.0000 |
2 |
||
-0.05 |
-0.000000062 |
0.00 |
0 |
0.000 |
1 |
0.0000 |
2 |
||
0.00 |
0.000000000 |
0.00 |
0 |
0.000 |
1 |
0.0000 |
2 |
||
0.05 |
0.000000062 |
0.00 |
0 |
0.000 |
1 |
0.0000 |
2 |
||
0.10 |
0.000002000 |
0.00 |
0 |
0.000 |
1 |
0.0000 |
2 |
||
0.15 |
0.000015187 |
0.00 |
0 |
0.000 |
1 |
0.0000 |
2 |
||
0.20 |
0.000063989 |
0.00 |
0 |
0.000 |
1 |
0.0001 |
2 |
||
0.25 |
0.000195228 |
0.00 |
0 |
0.000 |
1 |
0.0002 |
2 |
||
0.30 |
0.000485564 |
0.00 |
0 |
0.000 |
1 |
0.0005 |
2 |
||
0.35 |
0.001048696 |
0.00 |
0 |
0.001 |
1 |
0.0011 |
2 |