bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [157]
АВС [6]
КПиЯП [80]
ОАиП [305]
ОКТ [79]
СиСПО [8]
Форма входа
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » ПОИТ » ОАиП

контрольная работа №2
Подробности о скачивании 11.10.2013, 21:39
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра программного обеспечения информационных технологий

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

Контрольная работа № 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
Категория: ОАиП | Добавил: artemartem
Просмотров: 1426 | Загрузок: 12
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]