1.Як виконуеться команда циклу з лічильником в Object Pascal? 2.Який вигляд мае блок-схема циклу 2 лічильником? Поясніть виконання фрагмента алгоритму
3.Чи можуть команди тіла циклу з лічильником виконуватися тільки один раз? Поясніть свою відповідь. Наведіть приклад.
У мові програмування Object Pascal є кілька команд, які можуть реалізувати цикл. Одна з них - команда циклу з лічильником. Її доцільно використовувати в тих випадках, коли кількість повторень команд тіла циклу відома ще до початку виконання команди циклу. Загальний вигляд цієї команди такий:
for <ім’я змінної> := <вираз1> to <вираз2> do begin <команди тіла циклу> end;
Рядок for <ім’я змінної> := <вираз1> to <вираз2> do (англ. for - для, to - до, do - робити, виконувати) називають рядком заголовка команди циклу з лічильником. Змінну в рядку заголовка команди циклу з лічильником, що стоїть перед знаком присвоювання, називають лічильником циклу. Лічильник циклу, виразі і вираз2 мають набувати тільки цілих значень. Якщо тіло циклу складається лише з однієї команди, операторні дужки begin і end можна не ставити.
Виконується команда циклу з лічильником так:
1) Надати лічильнику циклу і значення виразі.
2) Обчислити значення логічного виразу і J вираз2.
3) Якщо значення логічного виразу true, то виконати команди тіла циклу і перейти до виконання команди 4, якщо false - перейти до виконання команди, наступної за командою циклу.
4) Збільшити значення лічильника циклу на 1.
5) Перейти до виконання команди 2.
Для ілюстрації виконання команди циклу з лічильником розглянемо фрагмент проекту, в якому обчислюється сума 12 + 22 + 32 + 42.
var s, і: integer; begin s := 0;
for і := 1 to 4 do begin
s := s + i*i; end;
Labell.Caption := IntToStr (s); end;
Виконаємо цей фрагмент програми.
Команда Результат виконання
s := 0 s = 0
i := 1 i = 1
i <= 4 (1 <= 4) = true
s := s + i*i s = 0 + 1*1 = 1
i := i + 1 i = 2
i <= 4 (2 <= 4) = true
s := s + i*i s = 1 + 2*2 = 5
i := i + 1 i = 3
i <= 4 (3 <= 4) = true
s := s + i*i s = 5 + 3*3 = 14
i := i + 1 i = 4
i <= 4 (4 <= 4) = true
s := s + i*i s = 14 + 4*4 = 30
i := i + 1 i = 5
i <= 4 (5 <= 4) = false
Labell.Caption := IntToStr (s) Labell.Caption = 30
Звертаємо вашу увагу, що після закінчення виконання команди циклу з лічильником значення лічильника циклу (змінної і) на 1 більше, ніж значення вираз2, і це значення, за потреби, можна використовувати в наступних командах.
Існує різновид команди циклу з лічильником, у якому лічильник не збільшується на 1, а зменшується на 1:
For <ім’я змінної> := <вираз1> downto <вираз2> do begin
<команди тіла циклу> end; (англ. down to - униз до).
Цей цикл продовжує виконуватися, якщо значення лічильника циклу більше або дорівнює (не менше) значенню вираз2.
Загальний вигляд команди циклу з лічильником такий:
for <ім’я змінної> := <вираз1> to <вираз2> do begin
<команди тіла циклу> end;
Рядок for <ім’я змінної> := <вираз1> to <вираз2> do називають рядком заголовка команди циклу з лічильником. Змінну в рядку заголовка команди циклу з лічильником, що стоїть перед знаком присвоювання, називають лічильником циклу. Лічильник циклу, виразі і вираз2 мають набувати тільки цілих значень.