КР №2 В-26
.doc
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра программного обеспечения информационных технологий
Факультет НиДО
Специальность ПОИТ
Контрольная работа № 2
по дисциплине «Основы алгоритмизации и программирования»
часть 1
Вариант № 26
Выполнил студент:
группа
Зачетная книжка №
Минск 2011
1). Задание
Ввести массив Х (10) и точность вычислений ε. Для каждого элемента массива Х вычислить с точностью ε значение функции
ex = 1 + x + (x2 / 2!) + (x3 / 3!) + (x4 / 4!) + ...
2)
Ввод элементов массива «х» и значения коэффициента «е» |
||
For i=1 to 10 do |
||
|
S1:=0, S2:=0, j:=0, n:=0 |
|
|
S2:=S1 |
|
S1:=S1+(exp(n*ln(x[i])))/(fact(n)) |
||
n:=n+1 |
||
abs(S1-S2)<=e |
||
|
Вывод S2 |
Рис. 1. Схема алгоритма Насси-Шнайдермана
Описание алгоритма.
Вводятся значения элементов массива «х» и желаемого коэффициента точности «е». Присваиваются нулевые значения текущего члена S2, последующего члена S1, а также n (показатель степени и факториала). S1присваивается значению S2. Вычисляется значение S1.Значение nувеличивается на 1. Данные операции проводятся до достижения необходимой точности и для каждого элемента массива «х».
3)
programmassive;
usescrt;
var
i, n: integer;
S1, S2, e :real;
x: array[1..10] ofreal;
functionfact(n:integer):real; {вычисление значения факториала "n"}
begin
if n=0 then fact:=1
else fact:=fact(n-1)*n;
end;
begin
clrscr;
for i:=1 to 10 do {Ввод значений, принимаемых переменной "х"}
begin
writeln('Введите ', i, ' элемент массива');
readln(x[i]);
end;
write('e='); {Ввод значения коэффициента точности вычислений}
readln(e);
for i:=1 to 10 do
begin;
S1:=0;
S2:=0;
n:=0;
repeat
S2:=S1;
S1:=S1+(exp(n*ln(x[i])))/(fact(n)); {Вычисление значения суммы предыдущих и последующего членов}
n:=n+1;
until
abs(S1-S2)<=e; {Проверка достижения заданной точности}
writeln(S2); {Вывод значения суммы}
readln;
end;
end.
4) Результаты выполнения программыпри е=0,01:
X |
S2 |
1 |
2.70833333333576E+0000 |
2 |
7.38095238095411E+0000 |
3 |
2.00796651785786E+0001 |
4 |
5.45939826428657E+0001 |
5 |
1.48402917371131E+0002 |
6 |
4.03421694338787E+0002 |
7 |
1.09662819474190E+0003 |
8 |
2.98094688156620E+0003 |
9 |
8.10307611395419E+0003 |
10 |
2.20264602662623E+0004 |