Циклічний обчислювальній процес
Р
озглянемо
рішення такої задачі: обчислити вираз
Хід виконання можна описати таким чином:
З цього фрагменту алгоритма видно, що одна й та сама команда повторюється багаторазово. Але виконувати запис цієї команди також багаторазово не раціонально. На всіх мовах програмування є команди циклу, команди, які дозволяють зробити запис якоїсь послідовності команд один раз, але виконуватись вона буде багаторазово. Цю послідовність команд будемо називати тілом циклу, або просто циклом.
І
ноді
з умови задачі відома змінна величина,
яка в циклі змінюється лінійно, як члени
арифметичної послідовності. В цьму
випадку цю величину оберемо як параметр
циклу. Іноді її ще називають лічильником.
Тоді такий циклічний процес можна
описати в бдок-схемі за допомогою такої
конструкції:
I – змінна,
параметр циклу;
N – початкове значення параметру циклу;
K – кінцеве значення параметру циклу;
H – різниця між послідовними значеннями параметру циклу.
Команда повторення дозволяє виконати послідовність команд, які в конструкції задаються як тіло циклу, для кожного значення параметру циклу, що змінюється від N до К з кроком зміни H.
А
M
N M:=M – N або
N:=N – M.
225
180 225-180=45
45
180 180-45=135
45
135 135-45=90
45
90
90-45=45
45
45 НСМ(225;180)=45
Записати цей алгоритм можна використовуючі цикл з післяумовою, або передумовою:
В
наведеній блoк-схемі алгоритм Евкліда
описаний за допомогою циклу з післяумовою.
Умовою виходу з циклу є виконання умови:
M=N.
На мові програмування Turbo Pascal для зациклювання використовуються такі оператори циклу:
Цикл з параметром:
For I : = N to K do <оператор>;
При цьому крок зміни параметра завжди дорівнює 1, і параметр циклу – цілого типу. Якщо параметр циклу треба зменшувати на 1, то використовуємо оператор циклу: For I : = N downto K do <оператор>;
Цикл з передумовою:
While <умова> do <оператор>;
Цикл з післяумовою:
Repeat <тіло циклу> until <умова>;
Якщо тіло циклу складається з кількох операторів, то перетворюємо їх в один за допомогою операторних дужок begin і end.
Згідно цього програми наведених алгоритмів на мові Turbo Pascal мають вигляд:
Алгоритм
Евкліда; program
Ewclid; uses crt; var m, n;
begin
write(‘Ввести
2 целых числа: ’);
readln(m,n);
repeat
if m>n then m:=m-n
else
n:=n-m;
until
m=n; writeln ( ‘ НОД=’
, m);
end
.
Обчислити
вираз
:
program
Cycl1; uses crt;
var
i : byte; s : real;
begin
S : = 0;
for
i : = 15 to 32 do S : = S + sqrt ( i );
writeln
( ‘ S=’ , S);
end
.
Спеціальність ТОМВ
Дисципліна «Інформатика та обчислювальна техніка»
Самостійна робота №8
