Слайд 2Итерационные алгоритмы
Так называются циклические алгоритмы в которых для вычислений в качестве исходных
данных для расчета при каждом повторе используется результат полученный на предыдущем шаге. Вычисления повторяются до тех пор, пока разница между двумя последующими результатами не станет достаточно малой.
Слайд 4Итерационная формула для вычисления кубического корня
Слайд 6Программа вычисления кубического корня
function mySqrt3(a, eps:real):real;
var x:real;
begin
result:=a; if result=0 then
exit;
repeat
x:=result;
result:=x-(x*x*x-a)/2/x/x;
until abs(result-x)end;
Слайд 7Алгоритмы вычисления сумм бесконечных рядов
В этих алгоритмах производится суммирование последовательно вычисляемых
членов ряда.
Вычисление каждого следующего члена ряда производится по значению предыдущего.
Накопление суммы производят до тех пор, пока очередной член ряда не станет достаточно малым числом.
Алгоритм имеет смысл только в том случае, если ряд сходится, то есть значения членов ряда постепенно уменьшаются.
Слайд 9Бесконечный ряд для вычисления синуса
Слайд 11Программа вычисления синуса
function sequence (x,eps:real):real;
var u:real; i:integer;
begin
i :=1; u :=x;
result := u;
repeat
i:=i+1;
u:=-u*x*x/(2*i-2)/(2*i-1);
result:=result+u;
until abs(u)<=eps;
end;
Слайд 12Будет ли работать программа при больших значениях х ?
Ряд при больших значениях
х сходится медленно,
а факториал и «х в степени» растут очень быстро.
Это приводит к тому, что значащие цифры этих чисел перестают помещаться в разрядной сетке и, следовательно, обрезаются, вследствие чего результат искажается.
Слайд 14Реализация программы
procedure cutX(var x:real);
begin
while abs(x)>=2*pi do
x:=(abs(x)-2*pi)*sign(x);
end;
Слайд 15Сколько цифр в целом числе?
function numOfFig(n : integer) : integer;
begin
result:=0;
repeat
n:=n div 10; result:=result+1;
until n=0;
end;
Слайд 16Найти сумму цифр в числе
function sumOfFig( n : integer ) :
integer;
begin
result:=0;
while abs(n)>0 do
begin
result := result + (n mod 10);
n := n div 10;
end;
end;
Слайд 17Функция random
Существует две функции с таким именем:
function random():real;
Возвращает случайные положительные вещественные числа
меньшие1.
function random(m:integer):integer;
Возвращает случайные положительные целые числа меньшие m.
Слайд 18Варианты использования
функции random
Двоичные цифры:
fig2 := random(2);
Случайные оценки от 2 до 5:
mark:=2+random(4);
Температура
хворих у лікарні:
t:=35+random()*5;
Слайд 19Угадайка
function howManyTimes( n : integer ) : integer;
begin
result:=0;
while random(100)<>n do
result:=result+1;
end;