5. Вказівка повторення з параметромFOR
Цикл –це вид управляючої структури, що дозволяє кілька разів повторити задану кількість операторів. Цикли - основний засіб у програмуванні, що дозволяє коротко записувати алгоритм, який здійснює велику кількість дій.
Для реалізації циклічних алгоритмів у мові Паскаль використовуються оператори повторення (цикли):
* оператор циклу з параметром (For);
* оператор циклу з передумовою (While);
* оператор циклу з післяумовою (Repeat).
Оператор циклу з параметром передбачає повторне виконання деякого оператора з одночасною зміною значення, що присвоюється керуючою змінною (параметру цього циклу). Він має вид:
а) зі значенням 1 кроку зміни параметра:
For < параметр >:= <вираз1 > to <вираз2 >do <оператор >
|
Дія оператора: Параметрові циклу присвоюється значення виразу 1. Якщо це значення менше-рівне, ніж значення виразу 2, то виконується оператор. Після виконання оператора значення параметра автоматично збільшується на 1 і знову порівнюється зі значенням виразу 2 і т.д. Коли значення параметра стане більшим, ніж значення виразу 2, то виконується наступний після циклу оператор.
або
б) зі значенням -1 кроку зміни параметра:
For < параметр >:=< вираз1 > downto <вираз2 > do <оператор>
|
Дія оператора: Ця команда діє як попередня, але крок зміни параметра є –1.
Оператор - тіло циклу.
Параметр циклу, вираз1 і вираз2 повинні бути одного й того ж скалярного типу ( крім дійсного). Вираз1 і вираз2 обчислюється лише один раз - при вході в цикл, і, отже, повинні бути визначені до входу в цикл і не можуть бути змінені в тілі циклу.
Якщо вираз1 і вираз2 розділяє службове слово to, то після виконання оператора (тіла циклу) параметр циклу v приймає значення Succ(v), якщо ж дільником виразу1 і виразу2 служить слово downto, то параметр циклу v після виконання тіла циклу приймає значення Pred(v).
Приклад:
Піднести будь-яке дійсне число а до будь-якого цілого степення n.
Розв'язок:
program Stepin;
Var
a,p:real;
i,n:integer;
Begin
write('введіть a - основу степеня, а=');
readln(a);
write('введіть ціле n - показник степеня, n=');
readln(n);
p:=1;
for i:=1 to n do
p := p * a;
writeln('p=',p)
End.
6. Вказівка повторенняWHILE
Оператор For використовується лише у випадку, коли заздалегідь відома кількість повторень тіла циклу. У більш загальному випадку, коли кількість повторень заздалегідь невідома, а задана деяка умова закінчення (або продовження) циклу, у мові Pascal використовують інші оператори повторення: оператор циклу з передумовою While і оператор циклу з післяумовою Repeat.
Вказівка циклу з передумовою:
Дія оператора:
Оператор (тіло циклу) виконується до тих пір, поки умова істинна. Якщо при першій перевірці умова виявилась хибною, оператор не виконується. Зазначений оператор виконується нуль, один або декілька разів, поки умова справджується.
Тіло циклу WHILEвиконується до тих пір, поки умова приймає значення True. Дії, що містяться в тілі циклу, будуть виконані у крайньому випадку один раз. Таким чином, не виконання умови є умовою закінчення циклу.
|
| Приклад 1. Роздрукувати символи латинського алфавіту.
а) звичайний порядок:
programlatsimvol;
var
S:char;
begin
S:='A';
while S<='Z' do
begin
writeln(S);
S:=succ(S);
end
end.
б) у зворотному порядку:
programlatsimvol;
var
S:char;
begin
S:='Z';
while S>='A' do
begin
writeln(S);
S:=pred(S);
end
end.
| |
7. Вказівка повторенняREPEAT
Оператор For використовується лише у випадку, коли заздалегідь відома кількість повторень тіла циклу. У більш загальному випадку, коли кількість повторень заздалегідь невідома, а задана деяка умова закінчення (або продовження) циклу, у мові Pascal використовують інші оператори повторення: оператор циклу з передумовою While і оператор циклу з післяумовою Repeat.
Оператор циклу з післяумовою визначений діаграмою:
Оператор циклу з післяумовою передбачає повторне виконання деякого оператора(ів) до тих пір, поки не виконається умова.. Він має вид:
REPEAT
<оператор1 >
<оператор2 >
<оператор3 >
***
<оператор n >
UNTIL <умова>;
|
Дія оператора:Спочатку виконуються зазначені оператори, а пізніше перевіряється умова. Якщо умова справджується (істинна), то виконання циклу завершується, якщо ні, то оператори виконуються ще раз, і так далі.
Тіло циклу Repeat виконується до тих пір, поки умова приймає значення False. Дії, що містяться в тілі циклу, будуть виконані у крайньому випадку один раз. Таким чином, виконання умови є умовою закінчення циклу.
ВКЛАДЕНІ ЦИКЛИ:
Вкладені цикли– це декілька циклів записаних один за одним.
Наприклад:
for i:=1 to 10 do
for j:=1 to 15 do
<оператори>
|
Зауваження:
Repeat Until KeyPressed– умова, чи
натиснена клавіша (пауза);
|
| Приклад 1. Роздрукувати символи латинського алфавіту.
а) звичайний порядок:
programlatsimvol;
var
S:char;
begin
S:='A';
Repeat
write(S);
S:=succ(S);
until S>'Z'
end.
б) у зворотному порядку:
programlatsimvol;
var
S:char;
begin
S:='Z';
Repeat
write(S);
S:=pred(S);
until S<'A'
end.
| |