Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лабораторная работа №1

.docx
Скачиваний:
9
Добавлен:
01.04.2014
Размер:
29.1 Кб
Скачать

БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра программного обеспечения информационных технологий

Факультет ФНиДО

Специальность ПОИТ

Лабораторная работа № 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