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

контрольная работа №2

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

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

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

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

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

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

Контрольная работа № 2

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

часть 1

Вариант № 30

Выполнил студент: Рябченко А.И.

Минск 2013

1). Задание

Вычислить с заданной точностью ε значение функции Y для каждого из 20 значений Х:

Y = 1 – X / 2 + (1*3*X2) / (2*4) – (1*3*5*X3) / (2*4*6) + (1*3*5*7*X4) / (2*4*6*8) – ...

Значения Х и ε ввести.

2). Схема алгоритма.

В таблице 1 представлена схема алгоритма методом Насси-Шнейдермана.

Таблица 1 - Схема алгоритма методом Насси-Шнейдермана.

Ввод массива Х и е

i:=1

i<=20

step:=1

y[i]:=1

k1:=-1

Inc(k1)

r:= (2*k1+1)/(2*k1+2)

step:=step*x[i]*r

slag:=step

k1 mod 2=0

да нет

slag:=slag*(-1)

slag:=slag*1

y[i]:=y[i]+slag

abs(slag)<=e

Вывод x[i], y[i]

3). Текст программы.

program kr2;

uses crt;

const

n=20; {количество значений функции}

eps1=0.00000000000001;

var

x,y:array[1..n] of real; {массив}

i,k1,e:integer; {вспомогательные переменные, е - точность}

step,slag,r:real;

begin

clrscr;

write('vvedite e '); {вводится точность 10-e}

readln(e);

for i:=1 to n do {цикл для ввода массива значении х}

begin

write('Enter x[i]=');

readln(x[i]);

end;

for i:=1 to n do {вычисляется значение функции y[i]}

begin

step:=1; {Начальное значение степени Х}

y[i]:=1; {Начальное значение функции y[i]}

k1:=-1;

repeat {Итерационный цикл для точности e}

inc(k1);

r:=(2*k1+1)/(2*k1+2);

step:=step*x[i]*r;{Наращивается степень и значение r}

slag:=step; {Считается очередное слагаемое}

if (k1 mod 2=0) THEN slag:=slag*(-1) else slag:=slag*1;

y[i]:=y[i]+slag; {Считается значение y[i]}

until abs(slag)<=eps1; {Выход из цикла, когда слагаемое становится меньше точности e}

writeln('x[i]=',x[i]:5:10,' y[i]=',y[i]:5:e);{вывод результатов}

end;

readkey;

end.

4). Тестовый набор данных.

Ввод точности:

Vvedite e 5

Ввод значении x[i]:

Enter x[i]=0.010

Enter x[i]=0.050

Enter x[i]=0.090

Enter x[i]=0.100

Enter x[i]=0.200

Enter x[i]=0.300

Enter x[i]=0.400

Enter x[i]=0.450

Enter x[i]=0.500

Enter x[i]=0.540

Enter x[i]=0.560

Enter x[i]=0.600

Enter x[i]=0.640

Enter x[i]=0.657

Enter x[i]=0.700

Enter x[i]=0.740

Enter x[i]=0.800

Enter x[i]=0.840

Enter x[i]=0.860

Enter x[i]=0.890

Вывод результатов:

x[i]=0.010 y[i]=0.99504

x[i]=0.050 y[i]=0.97590

x[i]=0.090 y[i]=0.95783

x[i]=0.100 y[i]=0.95346

x[i]=0.200 y[i]=0.91287

x[i]=0.300 y[i]=0.87706

x[i]=0.400 y[i]=0.84515

x[i]=0.450 y[i]=0.83045

x[i]=0.500 y[i]=0.81650

x[i]=0.540 y[i]=0.80582

x[i]=0.560 y[i]=0.80064

x[i]=0.600 y[i]=0.79057

x[i]=0.640 y[i]=0.78087

x[i]=0.657 y[i]=0.77685

x[i]=0.700 y[i]=0.76696

x[i]=0.740 y[i]=0.75810

x[i]=0.800 y[i]=0.74536

x[i]=0.840 y[i]=0.73721

x[i]=0.860 y[i]=0.73324

x[i]=0.890 y[i]=0.72739