Цикл "поки" та його використання, Детальна інформація

Цикл "поки" та його використання
Тип документу: Реферат
Сторінок: 10
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 20.8
Скачувань: 1412
while k
begin

if n mod k = 0 then d:=d+1;

k:=k+1

end;

if d>0 then issimple:=false

end

Цей алгоритм можна істотно поліпшити. Почнемо з дрібниць. За оператором "if d>0 then …" змінній issimple фактично присвоюється значення виразу not (d>0). Простіше написати: issimple:=not(d>0). Насправді змінна d взагалі не потрібна. Дійсно, значенням issimple буде false, якщо хоча б один раз виконується оператор d:=d+1. Замість нього напишемо issimple:=false. Крім того, якщо n=2, то умова продовження k2 можна взагалі вилучити:

issimple:= true; k:= 2;

while k
begin

if n mod k=0 then issimple:=false;

k:=k+1

end

.

Щоб не обчислювати trunc(sqrt(n))+1 при кожному виконанні циклу, означимо допоміжну змінну tsn і присвоїмо їй trunc(sqrt(n))+1.

Друге. Після того, як у циклі змінна issimple одержала значення false, подальші перевірки не потрібні, тому що вже ясно, що n не просте. Тому до умови продовження слід додати, що issimple має значення "істина". А перевірка цієї умови задається таким виразом: issimple.

Було б природно записати вираз (k
simp:= true; tsn:= trunc(sqrt(n))+1; k:= 2;

while (k
begin

if n mod k=0 then simp:=false;

k:=k+1

end;

issimple:=simp

Оформлення функції з заголовком

function issimple(n:integer):boolean

лишаємо для вправи. Відзначимо ще раз, що тіло функції треба записувати так, що при виконанні її виклику виконувався хоча б один оператор присвоювання з її ім'ям у лівій частині.\xF0E7

З цього прикладу напрошується простий висновок: після того, як алгоритм розв'язання задачі написаний, майже ніколи не пізно і не завадить подумати про те, як його поліпшити.

Поліпшення алгоритму й програми можуть стосуватися таких цілком різних властивостей, як зрозумілість, обсяг пам'яті комп'ютера, що використовується, та кількість дій, заданих програмою. А ця кількість визначає тривалість виконання програми, яка іноді буває дуже істотною.

The online video editor trusted by teams to make professional video in minutes