Лабораторная 1 Вариант 6
.pdfБЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра программного обеспечения информационных технологий
Факультет ФНиДО Специальность ПОИТ
Лабораторная работа № 1 по дисциплине «Основы алгоритмизации и программирования»
часть 1 Вариант № 6
Выполнил студент: Ковалевский В. В.
Минск 2012
1). Задача
Задание №6 Для аргумента x, изменяющегося от –0.6 с шагом 0.05 вычислить 20 начений функций:
1 |
|
|
2 |
1− x |
|
|
2 |
|
|
||
f1(x) = |
|
(1− x |
|
)*ln( |
|
|
) + 2*(x |
|
+1)*arctg(x) |
= 0,728. |
|
|
|
|
|
||||||||
8 |
|
|
|
1+ x |
|
|
|
|
|
||
|
∞ |
|
|
x4k+3 |
|
|
|
|
|
||
f 2(x) = ∑ |
|
|
|
|
|
= 0,728. |
|
|
|||
(4k +1)(4k + 3) |
|
|
|
||||||||
|
k=0 |
|
|
|
|
|
2). Схема алгоритма по ГОСТ 19. 701-90.
Начало
X=a
I=1..n
F1=((1-x*x)*ln((1-x)(1+x))+2*(x*x+1)*arctan(x))/8
Step=x*x*x
F2_1=0
K1=0
Inc(k1)
Step=step*x*x*x*x
Slag=step/((4*k1+1)*(4*k1+3))
F2_1=f2_1+slag
Abs(slag)<=eps1
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
Abs(slag)<=eps2
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
Abs(slag)<=eps3
Вывод результатов
X=x+b
Конец
3). Программа на языке Паскаль |
|
Program |
ipr1_v6; |
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:=((1-x*x)*ln((1-x)/(1+x))+2*(x*x+1)*arctan(x))/8; |
значение функции f1}
{ Вычисляется значения функции f2} step:=x*x*x; {Начальное значение степени Х} f2_1:=0; {Начальное значение функции 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.
4). Таблица результатов работы программы