ИПР №1 В-26
.doc
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра программного обеспечения информационных технологий
Факультет НиДО
Специальность ПОИТ
Лабораторная работа № 1
по дисциплине «Основы алгоритмизации и программирования»
часть 1
Вариант № 26
Выполнил студент:
группа
Зачетная книжка №
Минск 2011
1). Задание
Для аргумента , изменяющегося от –0.6 с шагом 0.05 вычислить 20 значений функций:
Функцию f2(x) вычислить для ряда точностей . Для указанных точностей определить количество N элементов ряда, суммируемых для достижения заданной точности. Результаты расчетов свести в таблицу.
2). Текст программы.
Program L1;
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:=(sqrt(3)*(sqr(x)/2)*arctan((x*sqrt(3))/(x+2)))+(((sqr(x)+2)*ln(1-(sqr(x)*x)))/4)-((3*sqr(x)*ln(1-x))/4);
{ Вычисляется значения функции f2}
step:=x*x*x; {Начальное значение степени Х}
f2_1:=X*x*x; {Начальное значение функции f2_1}
k1:=0;
repeat {Итерационный цикл для точности 10-2}
inc(k1);
step:=step*x*x*x; {Наращивается степень}
slag:=step/((k1+1)*(3*k1+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; {Наращивается степень}
slag:=step/((k2+1)*(3*k2+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; {Наращивается степень}
slag:=step/((k3+1)*(3*k3+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.
Результаты работы программы:
|
|
|
|
|
|
|
|
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.210599788 -0.163116832 -0.123134210 -0.090121429 -0.063500079 -0.042648888 -0.026909799 -0.015594663 -0.007992024 -0.003373578 -0.000999875 -0.000124998 0.000000000 0.000125002 0.001000125 0.003376426 0.008008024 0.015655701 0.027092076 0.043108623 |
-0.21 -0.16 -0.12 -0.09 -0.06 -0.04 -0.03 -0.02 -0.01 -0.00 -0.00 -0.00 0.00 0.00 0.00 0.00 0.01 0.02 0.03 0.04 |
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
-0.211 -0.163 -0.123 -0.090 -0.064 -0.043 -0.027 -0.016 -0.008 -0.003 -0.001 -0.000 0.000 0.000 0.001 0.003 0.008 0.016 0.027 0.043 |
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 |
-0.2106 -0.1631 -0.1231 -0.0901 -0.0635 -0.0426 -0.0269 -0.0156 -0.0080 -0.0034 -0.0010 -0.0001 0.0000 0.0001 0.0010 0.0034 0.0080 0.0157 0.0271 0.0431 |
3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 |
Р ис. 1. Схема алгоритма по ГОСТ 19. 701-90