Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_Pascal_Lesya Ugryn.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.83 Mб
Скачать

4.1.3. Оператори повтору

Oператори повторення використовуються для організації циклів. Цикл - це послідовність операторів, яка може виконуватися більше одного разу. Якщо кількість повторів відома зарані - використовується оператор FOR, якщо ні - оператори WHILE та REPEAT.

Оператор FOR складається з заголовка і тіла циклу. Він може використовуватися в двох формах:

1. FOR <параметр циклу>:= S1 TO S2 DO <оператор>;

2. FOR <параметр циклу>:= S1 DOWNTO S2 DO <оператор>;

Тут S1 та S2 - вирази, що визначають початкове та кінцеве значення параметра циклу, <оператор> - тіло циклу, що може бути простим, або складеним оператором, <параметр циклу> - ідентифікатор.

Оператор FOR ще називають оператором циклу з параметром. Він по структурі відповідає циклу ПОКИ і забезпечує виконання тіла циклу до тих пір, поки не будуть перебрані всі значення параметра циклу від початкового до кінцевого. Параметр циклу, його початкове та кінцеве значення повинні належати до одного і того ж типу даних. При цьому допустимий довільний скалярний тип, окрім дійсного. Значення величини параметра циклу послідовно збільшується (при FOR..TO), або зменшується (при FOR..DOWNTO).

Приклади:

For i:=1 to 20 do write('*');

Результат - 20 знаків '*' видрукуються на дисплеї підряд.

For ch:='а' to 'e' do write(ch); Результат : abcde.

For ch:='e' downto 'а'do write (ch); Результат : edcba.

Таким чином, параметр циклу в операторі FOR може змінюватися лише на один дискретний елемент (cаме тому використання дійсного типу недопустимо).

Для дострокового виходу з циклу за певною ознакою, можна використовувати оператор GOTO.

Якщо тiло оператора FOR є складений оператор, в ньому може мicтитися iнший оператор FOR. Такi цикли називаються вкладеними.

В тiло циклу заборонено вмiщувати оператори, що змiнюють значення параметра цикла.

Приклад:

For i:=1 to 10 do

begin

Rez:=1/Pi

i:=i+1 {Помилка !}

end;

Приклад:

Обчислити використовуючи оператор повтору FOR

Текст програми

Program sum;

Var s:real; n,i:integer;

Begin

Write(‘n=’);

Readln(n);

S:=0;

For i:=1 to n do

S:=s+((1+sin(i))/cos(i));

Writeln('Suma=',s:8:3);

End.

Результат виконання програми

n=10

s=-15.37722

Оператор повтору REPEAT реалiзує структуру цикл-ДО

Формат оператора:

REPEAT

<оператор 1;>

<оператор 2;>

. . . . . . .

<оператор N>

UNTIL <умова>;

Tут <умова> - це вираз булiвського типу. При написаннi умови допустимi логiчнi вирази. Оператори, розмiщенi мiж ключовими словами REPEAT та UNTIL є тiлом циклу. Спочатку виконується тiло циклу, а потiм перевiряється <умова>. Якщо результат булiвського виразу дорівнює FALSE, тiло циклу активiзується повторно, якщо TRUE - цикл закiнчується i виконується оператор, що слiдуе за UNTIL <умова>.

Приклад:

Var i,sum: integer;

Begin

i:=0; sum:=0;

Repeat

sum:=sum+i;

i:=i+2

Until i>10;

Writeln ('cума кратних чисел рiвна ',sum)

End.

Оператор повторення WHILE реалiзує структуру цикл-ПОКИ.

Формат оператора - WHILE <умова> DO <тiло циклу>;

Тут <умова> - логiчний вираз, а <тiло циклу> - простий або cкладений оператор. Перед кожним виконанням тіла циклу обчислюється значення логічного виразу. Якщо результат рівний True, тіло циклу виконується і вираз <умовa> обчислюється знову. Якщо результат рівний False - здійснюється вихід з циклу та перехід до наступного після WHILE оператора.

Бувають випадки, коли необхідно побудувати бесконечний цикл. Для цього в виді умови використовується константа True:

While True do

begin

. . . .

end;

Приклад:

Обчислити використовуючи оператор повторення WHILE

Текст програми

Program sum;

Var s:real; n,i:integer;

Begin

Write(‘n=’);

Readln(n);

S:=0; i:=1;

WHILE i<=n do

Begin

S:=s+((1+sin(i))/cos(i));

i:=i+1;

end;

Writeln('Suma=',s:8:3);

End.

Результат виконання програми

n=10

s=-15.37722

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]