Цикл "поки" та його використання, Детальна інформація
Цикл "поки" та його використання
а при a=5, n=0 – процес
p:=1; k:=0;
обчислення умови k>0: false.
У вигляді коментарів тут указано стани пам'яті наприкінці циклів.
Запишемо, нарешті, функцію pow:
function pow(a, n:integer):integer;
var p, k: integer;
begin
p:=1; k:=n;
while k>0 do
begin p:=p*a; k:=k-1 end;
pow:=p
end;
\xF0E7
Приклад 2. Розглянемо задачу: за цілим A>0 обчислити мінімальне n таке, що n! \xF0B3 A.
За означенням, n!=1\xF0D7 2\xF0D7 …\xF0D7 n, тобто 1!=1, 2!=1!\xF0D7 2, 3!=2!\xF0D7 3 тощо, n!=(n-1)!\xF0D7 n. Обчислимо 1! та порівняємо з A; якщо 1!
спочатку n:=1, f:=1, і
поки f
Перекладемо цей алгоритм на Паскаль. Скористаємося while-оператором із умовою продовження f
n:=1; f:=1;
while f
begin n:=n+1; f:=f*n end;
{f>=A, f=n! , тому значення n – шукане}
Коментар після циклу містить умову f>=A – по суті, заперечення умови продовження f
Коментар із запереченням умови продовження після оператора циклу може істотно допомогти в розробці циклічних операторів, тому радимо записувати його.
Оформлення алгоритму у вигляді функції з параметром A залишається як вправа.\xF0E7
Досвідчені програмісти в деяких випадках користуються "нескінченним циклом" вигляду while true do оператор. Засоби, якими задається вихід із тіла циклу незалежно від значення умови продовження, ми розглянемо в підрозділах 5.3, 5.4.
2. Рекурентні послідовності та співвідношення
2.1. Деталі конструктора
У прикладі 4.1 змінна p у процесі виконання операторів приймала значення 1, a, a2, a3, … , an. У цій послідовності перший член 1, а кожний наступний дорівнює попередньому, помноженому на a. Позначивши члени послідовності через p0, p1, p2, ... pn, маємо рівність: pi=pi-1*a при i=1,2,…,n. Така рівність, що виражає член послідовності через попередні (один або кілька), називається рекурентним співвідношенням.
p:=1; k:=0;
обчислення умови k>0: false.
У вигляді коментарів тут указано стани пам'яті наприкінці циклів.
Запишемо, нарешті, функцію pow:
function pow(a, n:integer):integer;
var p, k: integer;
begin
p:=1; k:=n;
while k>0 do
begin p:=p*a; k:=k-1 end;
pow:=p
end;
\xF0E7
Приклад 2. Розглянемо задачу: за цілим A>0 обчислити мінімальне n таке, що n! \xF0B3 A.
За означенням, n!=1\xF0D7 2\xF0D7 …\xF0D7 n, тобто 1!=1, 2!=1!\xF0D7 2, 3!=2!\xF0D7 3 тощо, n!=(n-1)!\xF0D7 n. Обчислимо 1! та порівняємо з A; якщо 1!
спочатку n:=1, f:=1, і
поки f
Перекладемо цей алгоритм на Паскаль. Скористаємося while-оператором із умовою продовження f
n:=1; f:=1;
while f
begin n:=n+1; f:=f*n end;
{f>=A, f=n! , тому значення n – шукане}
Коментар після циклу містить умову f>=A – по суті, заперечення умови продовження f
Коментар із запереченням умови продовження після оператора циклу може істотно допомогти в розробці циклічних операторів, тому радимо записувати його.
Оформлення алгоритму у вигляді функції з параметром A залишається як вправа.\xF0E7
Досвідчені програмісти в деяких випадках користуються "нескінченним циклом" вигляду while true do оператор. Засоби, якими задається вихід із тіла циклу незалежно від значення умови продовження, ми розглянемо в підрозділах 5.3, 5.4.
2. Рекурентні послідовності та співвідношення
2.1. Деталі конструктора
У прикладі 4.1 змінна p у процесі виконання операторів приймала значення 1, a, a2, a3, … , an. У цій послідовності перший член 1, а кожний наступний дорівнює попередньому, помноженому на a. Позначивши члени послідовності через p0, p1, p2, ... pn, маємо рівність: pi=pi-1*a при i=1,2,…,n. Така рівність, що виражає член послідовності через попередні (один або кілька), називається рекурентним співвідношенням.
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021