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

Лабораторная 1 Вариант 6

.pdf
Скачиваний:
11
Добавлен:
01.04.2014
Размер:
137.63 Кб
Скачать

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

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

Факультет ФНиДО Специальность ПОИТ

Лабораторная работа № 1 по дисциплине «Основы алгоритмизации и программирования»

часть 1 Вариант № 6

Выполнил студент: Ковалевский В. В.

Минск 2012

1). Задача

Задание №6 Для аргумента x, изменяющегося от –0.6 с шагом 0.05 вычислить 20 начений функций:

1

 

 

2

1x

 

 

2

 

 

f1(x) =

 

(1x

 

)*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). Таблица результатов работы программы