БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ Кафедра программного обеспечения информационных технологий
Факультет ФНиДО Специальность ПОИТ
Контрольная работа № 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