Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОМП. НАУКИ_1сем.doc
Скачиваний:
6
Добавлен:
05.11.2018
Размер:
902.14 Кб
Скачать
    1. Организация счетчика

Чтобы организовать подсчет, надо:

  1. Перед циклом задать начальное значение счетчика: cnt:=0;

  2. Повторять… cnt:=cnt+1; …//В теле цикла увеличивать счетчик на 1 Конец повторения

    1. Нахождение наибольшего и наименьшего значений

Поиск наибольшего max (или наименьшего min) значения осуществляется в цикле последовательным сравнением очередного значения со значением max (или min). В качестве начального значения max можно взять заведомо малое число, а для min – заведомо большое число. Можно в качестве начального значения для max и min взять первое из сравниваемых значений. Если необходимо определить номер значения, которое является максимальным (или минимальным), то при запоминании нового максимального (или минимального) значения надо запоминать и его номер.

  1. Задать начальное значение наибольшего, равное первому из сравниваемых значений: max:=x;

  2. Задать номер значения, которое является наибольшим: imax:=1;

  3. Повторять Ввод очередного x Если x>max то начало max:=x; imax:=НомерЗначенияX … конец Конец повторения

  1. Рекуррентные последовательности

Рекуррентной называется последовательность, каждый член которой является некоторой функцией от одного или нескольких предшествующих членов. Слово «рекуррентный» происходит от латинского recurrentis – возвращающийся.

Порядком рекуррентной последовательности назовем количество предшествующих членов, от которых зависит текущий член последовательности. Примером последовательности 1-го порядка служит арифметическая прогрессия, где каждый член равен предыдущему, увеличенному на разность прогрессии: a1=c1, ai = ai-1 + M, , i>1

Классическим примером рекуррентной последовательности 2-го порядка является последовательность Фибоначчи.

Номер числа

1

2

3

4

5

6

7

8

9

10

Число Фибоначчи

1

1

2

3

5

8

13

21

34

55

Каждый член этой последовательности равен сумме двух предыдущих ее членов:

f1=1; f2=1; fi=fi-1+fi-2 для i > 2

Некоторые из свойств чисел Фибоначчи:

  1. f1+f2+ … +fn=fn+2 –1

  2. f1+f3+ … +f2n+1=f2n+2 – сумма нечетных равна следующему за ними четному числу Фибоначчи

  3. f2+f4+ … +f2n=f2n+1 –1 ‑ сумма четных равна следующему за ними нечетному числу Фибоначчи -1

  4. отношение fn+1 / fn стремится к числу 0,663… , так называемому «золотому сечению».

Пример. Вычислить число Фибоначчи с заданным номером

program Fibonach; {Вычисление числа Фибоначчи с заданным номером}

var n: integer;

i, f1, f2, f3: integer;

begin

write(‘n=’); readln(n); {Ввод номера числа}

if (n=1) or (n=2) then f3:=1

else begin

f1:=1; f2:=1;

for i:=3 to n do

begin

f3:=f1+f2;

f1:=f2;

f2:=f3

end

end;

writeln('Число Фибоначчи с номером ', N, ' равно ', f3);

end.

  1. Итерационные алгоритмы

Итерационным называется такой алгоритм, который реализует циклический процесс получения последовательности значений y1, y2, …, yi-1, yi, … , сходящейся к некоторому пределу y. Один шаг цикла называется итерацией.

Каждое новое значение yi определяется с учетом предыдущего и является более точным приближением к y. Для вычисления yi часто используют рекуррентные соотношения.

Итерационный процесс заканчивают, т.е. считают, что yiy, если |yi–yi-1|<, где  – погрешность вычисления.

Пример. Вычислить

для i>1

При n=2 имеем:

Допустим, x=2. Тогда

Закончим процесс, когда |yi– yi-1| <  «Табличное» значение

Program Iterat_Sqrt; //Вычисление квадратного корня методом итераций

var x,y,y1,Eps : real;

begin

repeat //Ввод исходного положительного числа

write(‘x=’); readln(x);

until x>0;

write(‘Eps=’); readln(Eps); //Ввод значения Eps

Y:=0.5*(x+1); //Начальное значение

repeat

y1:=y;

y:=0.5*(y1+x/y1); //Очередное значение

until abs(y-y1)< Eps;

writeln(’Квадратный корень=’,y:10:6)

end.