3. Вказівка повторення з передумовою (Цикл – while)
Вказівка повторення з передумовою – while призначена для організації
багатократного виконання групи вказівок (тіло циклу) до тих пір, поки
залишається істинною умова виконаного циклу .
Значення службового слова while - поки
Алгоритм програми з вказівкою повторення з передумовою
початок
ні так
умова
Серія команд
4. Вказівка повторення з передумовою записується у такому вигляді:
While<умова> do Наприклад
begin While I<4 do
<вказівка1>; begin
<вказівка2>; ........ S:=S+I;
.............; I:=I+1;
<вказівкаN>; end;
end;
Виконується ця вказівка таким чином
Обчислюється значення виразу умови
умова істинна (TRUE) умова хибна (FALSE)
виконується група виконується вказівка, яка
вказівок (тіло циклу) знаходиться після вказівки
повторення з передумовою
Виконання програми знову повертається до перевірки умови циклу
5. Примітка
1. Якщо умова у вказівці повторення хибна при першій же перевірці, то
тіло циклу не виконується жодного разу. Умова вказівки є умовою
входження в цикл.
2. Умову вказівки повторення з передумовою необхідно підбирати таким
чином, щоб в деякий момент вона змінила своє значення з TRUE на FALSE,
інакше виникне ситуація “зациклювання” програми.
3. Програмісту необхідно самому потурбуватись про необхідність
збільшення (зменшення) лічильника циклу на 1. Це можна зробити таким
чином І:=І+1.
4. Входження в тіло вказівки повторення можливе тільки через заголовок
цієї вказівки.
6. Приклад використання вказівки повторення з передумовою
Задача. Знайти суму всіх натуральних чисел від 1 до N.
Program SUMA1;
Var i, N, S: integer ;
begin
Writeln
(‘Введіть кількість натуральних чисел:’);
Write (‘N=‘);
i:=1;
S:=0;
While i<=N do
begin
S:=S + i;
i:=i+1;
end;
Writeln (‘S=‘, S);
8. Вказівка повторення з післяумовою (Цикл –
repeat-until)
Вказівка повторення з післяумовою - призначена для організації багатократного
виконання групи вказівок (тіло циклу) до тих пір, поки умова виконання циклу не
стане істинною.
Алгоритм програми з вказівкою повторення з післяумовою
початок
початок
серія команд
ні так
умова
9. Вказівка повторення з післяумовою записується у такому вигляді
Repeat Наприклад
Repeat
< вказівка
1>; S:=S
+ i;
<
Виконується
вказівка 2>; ця вказівка таким чином
i:=i+1;
Виконуються вказівки, які входять в тіло циклу
.....................
....; until i>=4;
< Обчислюється значення умови-виразу
вказівка N>;
умова хибна (FALSE) умова істинна (TRUE)
until <умова>;
Виконуються вказівки тіла циклу Виконується наступна вказівка програми
10. Примітка
1. Тіло циклу, яке складається з групи вказівок, не потрібно брати в дужки
(begin - end), оскільки службові repeat - until слова відіграють роль дужок.
2. Тіло циклу у вказівці повторення з післяумовою виконується щонайменше
один раз.
3. Умова вказівки є умовою виходу з циклу.
4. Входження в тіло вказівки повторенням можливе тільки через заголовок
цієї вказівки.
11. Приклад використання вказівки повторення з післяумовою
Задача. Знайти суму всіх натуральних чисел від 1 до N.
Program SUMA2;
Var i, N, S: integer ;
begin
Writeln
(‘Введіть кількість натуральних чисел:’);
Write (‘N=‘);
i:=1;
S:=0;
Repeat
S:=S + i;
i:=i+1;
Until i>N;
Writeln (‘S=‘, S);
13. Вказівка повторення з пaраметром (For – To -Do)
Вказівка повторення з параметром - призначена для організації
багатократного виконання тіла циклу для значень параметра циклу з деякої
впорядкованої дискретної множини.
Вказівку повторення з параметром використовують у тих випадках, коли
наперед можна визначити кількість повторень виконання вказівок циклу.
Вказівка повторення з параметром записується в такому вигляді
For < параметр: = вираз1> to < вираз2>
do begin
<вказівка1>;
<вказівка2>;
.....................;
<вказівкаN>;
end;
Параметр вказівки (лічильник, індекс) – це змінна скалярного (цілого,
символьного, логічного або перелічувального) типу, крім дійсного.
Вираз1 (початковий параметр вказівки) – це деяка константа такого ж
самого типу, що й параметр вказівки.
Вираз2 (кінцевий параметр вказівки) – це деяка константа такого ж самого
типу, що й параметр вказівки.
14. Якщо в тілі вказівки повторення з параметром необхідно виконати тільки
одну вказівку, то складеної вказівки begin...end виконувати не потрібно.
For< параметр : = вираз1 > to < вираз2 >
do < вказівка1 >;
Вказівка повторення з параметром виконується таким чином
Наприклад (вказівка For – to – do)
For i:=K to M do
begin
<вказівка1>;
<вказівка2>;
.....................;
<вказівкаN>;
end;
15. Параметру циклу і присвоюється значення К
К порівнюється з М
К<=M K>M
Виконується тіло вказівки Тіло вказівки на виконується
повторення жодного разу
Значення К автоматично
збільшується на 1
К<=M K>M
Виконується наступна
К порівнюється з М
вказівка програми
16. Bказівка For – downto
– do
Параметру циклу і присвоюється значення К
For i:=K downto M do
begin
К порівнюється з М
<вказівка1>;
К>=M K<M
<вказівка2>;
.....................;
Виконується тіло вказівки Тіло вказівки на виконується
повторення жодного разу
<вказівкаN>;
Значення К автоматично
end;
зменшується на 1
К<M K>M
Виконується наступна
К порівнюється з М
вказівка програми
17. Примітка
1. Вказівку повторення з параметром зручно використовувати в тих
випадках, коли попередньо можна визначити кількість повторень.
2. Параметр циклу не повинен змінювати свого значення всередині тіла
вказівки повторення, хоча його можна використовувати у будь-яких
виразах вказівок тіла циклу.
3. Параметр циклу повинен бути описаним у розділі змінних.
4. Значення параметра циклу після закінчення виконання вказівки
повторення володіє кінцевим значенням, тому перед повторним його
використанням йому необхідно знову присвоїти нове початкове значення.
18. Приклад використання вказівки повторення з параметром
Задача. Знайти суму всіх натуральних чисел від 1 до N.
Program SUMA3;
Var i, N, S: integer ;
begin
Writeln
(‘Введіть кількість натуральних чисел:’);
Write (‘N=‘);
S:=0;
For i:=1 to N do
S:=S + i;
Writeln (‘S=‘, S);
20. Приклад 2
Розробіть алгоритм і програму множення числа 9 на числа натурального
ряду від 1 до 10 та виведення кожного значення на екран.
Пояснення. Змінна n – лічильник кількості множень, у змінній у
зберігається поточний результат множення. Початок А2
Program A2;
n:=1
var
n,y:integer;
y:=9*n
begin
Виведення у
for n:=1 to 10 do
begin
n:=n+1
y:=9*n;
writeln('9*',n,'=',y); так
n<=10
end;
ні
end.
кінець
22. Приклад 3
Учень розпочав тренування з підняття ваги, починаючи з 16 кг. Він поставив
перед собою завдання тренуватися протягом 8-ми місяців і щомісячно
збільшувати підняту вагу на 2,75 кг. Розробіть алгоритм і програму для
визначення: яку вагу він підніматимеме наприкінці кожного місяця?
Пояснення. Змінна і – лічильник циклів, змінна s – значення ваги.
Program A2; Початок А3
var
s:real; i:=1; s:=16
i:integer;
s:=s+2.75
begin
Виведення s
s:=16;
for i:=1 to 8 do i:=i+1
begin
так
s:=s+2.75; i<=8
writeln ('s (',i,')=',S:2:2); ні
end; кінець
end.
24. Приклад 4
У прямокутному трикутнику катети набувають таких значень: а = 10, 12, 14,
16,18, 20, 22 і b = 7, 8, 9, 10, 11, 12, 13, 14. Потрібно розробити блок-схему
алгоритму і програму обчислення площі усіх трикутників.
Приймемо таку схему обчислення: при значенні катету а = 10 обчислимо
площі трикутників для всіх значень катета b; потім при значенні катету а =
12 обчислимо площі трикутників для всіх значень катету b.
Program A3;
var
a, b: integer;
s:real;
begin
a:=10; { початкове значення змінної а }
while a<=22 do { зовнішній цикл }
begin
for b:=7 to 14 do { внутрішній цикл }
begin
s:=1/2*a*b; { оператори тіла циклу }
writeln ('s=',s:2:2);
end;
writeln; { порожній рядок }
a:=a+2; { перехід до чергового значення змінної а }
end;
end.
25. Блок-схема
Початок
b:=b+1
а:=10
так
b:=7 b<=14
ні
P:=(a*b)/2
a:=a+2
Виведення p
так
a<=22
ні
кінець
27. Вказівка розгалудження
Вказівка розгалудження може записуватись
У повній формі У скороченій формі
If<умова> If<умова>
then then
<вказівка1> <вказівка1> ;
else
<вказівка2>;
28. Службові слова, які використовуються в умовній вказівці, мають зміст if
– якщо, then- то, else- інакше.
Умова – це вираз булевого
типу.
Умова
проста складена
Наприклад
Наприклад
(a<5) and (a<10),
a<5, c>a,
(a = 2) or (a
x=0, a>b
= 3)
Складена умова записується з допомогою логічних операцій and – і, or – чи,
not – не. При записі умови можна використовувати всі можливі операції
відношення. Результатом виразу умови завжди буде величина булевого типу.
29. Логічні вирази
Результатом виконання логічного виразу є логічне значення TRUE або
FALSE. Операндами є дані тільки булевого типу.
Логічні вирази утворюються за допомогою логічних операцій і круглих
дужок.
Логічні операції над даними типу BOOLEAN
Операнд 1 Операнд 2 not and or xor
false - true - - -
false - false - - -
false false - false false false
false true - false true true
false false - false true true
false true - true true false
30. Повна форма розгалудження виконується таким чином:
умова
істинна хибна
виконується вказівка1 виконується вказівка2
Виконується вказівка, яка Виконується вказівка, яка
знаходиться після всієї знаходиться після
вказівки розгалудження. вказівки розгалудження.
Скорочена форма розгалудження виконується таким чином:
умова
істинна хибна
виконується вказівка1
Виконується вказівка, яка
знаходиться після вказівки
Виконується вказівка, яка знаходиться розгалудження.
після всієї вказівки розгалудження.
31. Практична робота
Тема: опис і реалізація найпростіших циклічних програм.
Мета: навчитись складати та реалізовувати циклічні програми.
Завдання для практичної роботи
1. Вивчити можливості мови програмування Паскаль з реалізації вказівки
повторення:
а) з передумовою;
б) з післяумовою;
в) з параметром.
2. Відповісти на контрольні запитання.
3. Скласти програму розв’язування задачі згідно із завданням.
4. Виконати дану програму.
5. Підготувати і використати тести для перевірки правильності
функціонування програми.
6. Оформити звіт з практичної роботи.
32. Запитання для самоконтролю
1. Як записується і виконується вказівка повторення з передумовою?
2. Як записується і виконується вказівка повторення з післяумовою?
3. Яка різниця між вказівками повторення з передумовою і післяумовою?
4. Як записується і виконується вказівка повторення з параметром?
5. Як організовується вихід з вказівок повторення?
6. Чи можна всередині тіла вказівки повторення з параметром змінювати
параметр циклу?
33. Зразок
Завдання. Скласти програму знаходження факторіала числа n.
Програма розв’язування даної задачі мовою програмування Паскаль.
Program PROBOTA5;
var
N,i:integer;
FACTORIAL:real;
begin
Writeln( ‘Введіть значення натурального числа N');
write('N=');
readln(N);
FACTORIAL:=1;
for i:=1 to N do
FACTORIAL : = FACTORIAL * i;
writeln(N,'!=',FACTORIAL:2:2);
end.