Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Програмування.doc
Скачиваний:
7
Добавлен:
19.11.2019
Размер:
742.91 Кб
Скачать

1.4.3. Умовні оператори

Для опису мовою програмування другої базової алгоритмічної структури – розгалуження - використовуються умовні оператори. Це необхідно в випадку коли на процес виконання дії необхідно накласти умову. Оскільки умови в turbo Pаscаl - це операції відношення, що є булевими (логічними) виразами, то умовний оператор в загальному виді записується так:

ЯКЩО логічний вираз ТО оператор 1 ІНАКШЕ оператор 2;

На мові turbo Pаscаl даний оператор записується за допомогою відповідних англійських службових слів IF, THEN, ELSE.

IF логічний вираз THEN

оператор1

ELSE

оператор2;

Порядок виконання дуже простий. Якщо значення "логічного виразу" - істина (TRUE), то виконується "оператор 1", а "оператор 2" - ні. Якщо ж значення "логічного виразу" - ні (FALSE), то, навпаки, виконується "оператор 2", а "оператор 1" ні.

Зверніть увагу на правила запису. Якщо після умовного оператора IF в програмі є ще й інші оператори, то слідом за "оператор 2" обов'язково ставиться крапка з комою. Існує ще і скорочена форма умовного оператора (неповне розгалуження):

IF логічний вираз THEN оператор;

Тут в випадку, коли "логічний вираз" має значення ні (FALSE), то нічого не виконується, а здійснюється перехід до наступного (після умовного) оператора. За правилами мови turbo Pаscаl, після службових слів THEN і ELSE записується по одному оператору. Якщо ж в випадку "то" або "інакше" потрібно виконати декілька операторів, то замість одного оператора треба використовувати складовий оператор, що являє собою ланцюжок будь-яких операторів, обмежених службовими словами BEGIN і END:

begin оператор 1; оператор 2; ...; оператор end;

або краще записати:

begin

оператор 1;

оператор 2;

оператор 3; end;

Слова BEGIN і END прийнято називати "операторними дужками", а окремі оператори усередині складового, як звичайно, відокремлюються один від одного крапкою з комою. Тоді в загальному виді умовний оператор можна записати так:

IF логічні вирази THEN

BEGIN

Оператор 1;

оператор 2; END

ELSE BEGIN

Оператор 1;

Оператор 2; END;

Весь оператор IF із усіма вкладеними складовими операторами вважається одним оператором. Складові оператори можуть містити будь-яку кількість операторів - від одного і більше, в тому числі й інших умовних операторів. Кожний END найкраще записувати під відповідний йому BEGIN. Після першого складового оператора перед словом ELSE крапка з комою не ставиться, тому що транслятор сприйме це як закінчення умовного оператора (скорочена форма), а ELSE - як наступний оператор, що самостійно не використовується (виникає помилка).

Якщо після THEN і ELSE використовуються ще умовні оператори, які можуть мати свої THEN і ELSE, то, щоб не виникло плутанини, найкраще притримуватися східцевої структури і кожний THEN і ELSE писати під своїм IF, або ж взагалі оформляти внутрішній умовний оператор в виді складового, тобто обмежувати словами BEGIN і END.

1.4.4. Методи організації циклів

При розробці програми часто виникає необхідність повторити команду або групу команд багаторазово. Для цього необхідно виконати третю базову алгоритмічну структуру - циклічну. Існують спеціальні конструкції, названі циклами (або командами повторення), що просто вказують, скільки разів потрібно повторити дану команду (групу команд), або доки повторювати ці команди. в turbo Pаscаl існує три види циклів, що починаються службовими словами WHILE (поки), REPEAT (повторювати) і FOR ( для).

Цикл WHILE записується в вигляді:

WHILE логічний вираз DO оператор

або

WHILE логічний вираз DO

BEGIN оператор; ....; оператор

END;

Читається так: ПОКИ "логічний вираз" істинно, ВИКОНАТИ "оператор" (або групу операторів). Група операторів називають тілом циклу. При роботі цього фрагменту пограми спочатку обчислюється значення "логічного виразу". Якщо воно дорівнює TRUE (істина), то виконується тіло циклу після службового слова DO. По закінченнню здійснюється повернення на початок циклу і все повторюється знову, починаючи з обчислення "логічного виразу". Цикл виконується доти, поки значенням "логічного виразу" не стане FALSE (ні). Після цього виконуються оператори, які записані після циклу ( слідом за його тілом). Якщо при початковій перевірці значенням "логічного виразу" відразу опинилося FALSE, то тіло циклу не виконується жодного разу. в тілі циклу необхідно передбачити зміну даних для "логічного виразу", інакше його значення може постійно виявлятися TRUE і цикл буде виконуватися нескінченно (зациклювання).

Цикл REPEAT має вид:

REPEAT

оператор(ы)

UNTIL логічне вираження

Читається так: ПОВТОРЮВАТИ "оператор(и)" ДОТИ, ПОКИ "логічний вираз" не стане (TRUE). Зверніть увагу, що цикл завершується, коли логічний вираз стає TRUE, а не FALSE, як в циклі WHILE. Якщо в тілі циклу використовується декілька операторів, то не обов'язково їх обмежувати словами BEGIN і END в вигляді складового оператора, оскільки слова REPEAT і UNTIL і без того чітко визначають початок і кінець циклу. Так як умова виходу з циклу перевіряється наприкінці, тіло циклу виконується ЗАВЖДИ як мінімум один раз. Якщо "логічний вираз" постійно буде залишатися FALSE, то відбудеться зациклювання. Цикл REPEAT використовується в ситуаціях, коли виконується деяка група операторів, а потім, в залежності від результатів виконаних дій, продовжується робота програми далі, або дана група операторів виконується знову.

Цикл FOR.

У цьому циклі не перевіряється умова закінчення циклу, а цикл виконується задану кількість разів. Тому зациклювання циклу FOR неможливе. Рахунок здійснюється за допомогою спеціального параметра - лічильника. в зв'язку з цим цикл FOR часто називають циклом із параметром. Існує два різновиди цього оператора:

1) FOR ім'я_змінної:=вираз 1 TO вираз 2 DO

оператор

2) FOR ім'я_змінної:= выраз 1 DOWNTO выраз 2 DO

оператор

"Оператор" в тілі циклу обох конструкцій може бути складовим. Змінна, записана після слова FOR і є лічильником циклу. Обидва різновиди читаються так: ДЛЯ лічильника "ім'я_змінної", що змінюється від значення "вираз 1" ДО значення "вираз 2" ВИКОНУВАТИ "оператор". Лічильник і значення виразів в заголовку циклу повинні бути цілого типу. При виконанні оператора FOR змінній-лічильнику присвоюється початкове значення, рівне значенню "виразу 1".Потім виконується тіло циклу. Востаннє цикл виконається, коли значення лічильника стане рівним "виразу 2". Якщо в першому різновиді оператора FOR значення "виразу 1" більше, а в другому різновиді менше, ніж значення "виразу 2", то цикл не виконується жодного разу. Значення лічильника може використовуватися всередині циклу. Як окремий випадок, замість виразів в заголовку циклу можуть бути використані змінні або константи.

ПОПЕРЕДЖЕННЯ. Цикл FOR усе-таки можна зациклити, якщо в тілі циклу змінювати змінну-лічильник так, щоб вона не змогла стати рівною значенню "виразу 2".