UkrReferat.com
найбільша колекція україномовних рефератів

Всього в базі: 75843
останнє поновлення: 2016-12-04
за 7 днів додано 10

Реферати на українській
Реферати на російській
Українські підручники

$ Робота на замовлення
Реклама на сайті
Зворотній зв'язок

 

ПОШУК:   

реферати, курсові, дипломні:

Українські рефератиРусские рефератыКниги
НазваВиди циклів (реферат)
Авторdimich
РозділІнформатика, компютерні науки
ФорматWord Doc
Тип документуРеферат
Продивилось2014
Скачало417
Опис
ЗАКАЧКА
Замовити оригінальну роботу

Реферат на тему:

 

Види циклів

 

1. Доти, поки не...

 

Повернемося до обчислення квадратного кореня (приклад 4.4):

 

X:=(a+1)/2; Y:=0.5*(X+a/X);

 

while abs(X-Y)>d do

 

begin

 

X:=Y; Y:=0.5*(X+a/X);

 

end;

 

Цей алгоритм задає послідовність дій такого вигляду:

 

X:= (a+1)/2;

 

Y:= 0.5*(X+a/X);

 

обчислення умови продовження: true;

 

X:=Y;

 

Y:= 0.5*(X+a/X);

 

обчислення умови продовження: true;

 

 

X:=Y;

 

Y:= 0.5*(X+a/X);

 

обчислення умови продовження: false.

 

Якщо в цій послідовності замінити найперший оператор на Y:=(a+1)/2;

X:=Y, то вона буде циклічною, починаючи з другого оператора, і циклом

буде

 

X:=Y;

 

Y:= 0.5*(X+a/X);

 

обчислення умови продовження

 

Можна було б подумати про оператор

 

do X:=Y;

 

Y:=0.5*(X+a/X);

 

while abs(X-Y)>d;

 

або в загальному вигляді

 

do послідовність операторів

 

while умова.

 

Такого оператора в мові Паскаль немає, а є схожий за виглядом

 

repeat

 

послідовність операторів

 

until умова

 

Він називається repeat-оператором, або оператором циклу з пост-умовою

("пост" означає "після"), і дослівно перекладається українською мовою як

 

повторювати

 

послідовність операторів

 

доти, поки не умова.

 

"Поки не" перетворює умову в умову завершення. Справа в тім, що спочатку

виконується послідовність операторів (тіло), потім обчислюється умова, і

якщо вона хибна, то знову виконується тіло тощо. Виконання оператора

завершується після того, як при обчисленні умови одержано значення true.

Таким чином, істинність умови означає завершення, а не продовження

виконання всього оператора. Ми б назвали цей оператором циклу з умовою

завершення, але такий термін у літературі не зустрічався.

 

Перепишемо алгоритм із прикладу 4.4 з використанням repeat-оператора.

Цикл повинен починатися оператором X:=Y, тому перед циклом треба задати

ініціалізацію Y. Умовою завершення повинно стати

 

not abs(X-Y)>d, або abs(X-Y)<=d,

 

тобто заперечення умови продовження:

 

Y:=(a+1)/2;

 

repeat

 

X:=Y;

 

Y:=0.5*(X+a/X);

 

until abs(X-Y)<=d;

 

{abs(X-Y)<=d; значення Y – шукане}

 

Оператору циклу з пост-умовою відповідає блок-схема, зображена на

рис.5.1.

 

2. "Для"

 

Розглянемо алгоритм обчислення n!=1? 2? …? n при n>0, 0!=1, припускаючи,

що всі змінні в ньому цілі й значення змінної n є невід'ємним:

 

f:=1;

 

{! }

 

k:=1;

 

while k<=n do

 

begin f:=f*k; k:=k+1 end

 

{k=n+1, останнім співмножником у значенні f було n}

 

Очевидно, що кількість виконань тіла циклу збігається зі значенням

змінної n і, якщо n>0, то оператор f:=f*k виконується при k=1, 2, … , n

(за n=0 не виконується жодного разу). "Забудемо на хвилинку" про останнє

виконання оператора k:=k+1. Тоді дії, задані операторами після коментарю

{!}, можна описати словами "для k=1, 2, … , n виконати f:=f*k" або

англійською мовою "for k=1, 2, … , n do f:=f*k". А це вже майже оператор

мови Паскаль:

 

for k := 1 to n do f:=f*k

 

Його назва – for-оператор, або оператор циклу переліком, оскільки в

ньому задано перелік значень змінної k, при яких виконується тіло циклу.

Ця змінна називається параметром циклу. Загальний вигляд for-оператора:

 

for ім'я := вираз1 to вираз2 do оператор

-----> Page:

0 [1] [2]

ЗАМОВИТИ ОРИГІНАЛЬНУ РОБОТУ