русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Оператор безумовного переходу.


Дата додавання: 2014-11-27; переглядів: 1494.


Оператор вибору дає змогу програмувати алгоритми з декількома гілками розгалуження без використання оператора переходу, що є вимогою структурного програмування. Однак це не означає, що взагалі не можна вживати оператор переходу. Не можна тільки безпідставно передавати управління з одного кінця програми в інший, щоб потім знов повернутися назад. Але цей оператор стає незамінним, якщо необхідно обійти достатньо велику частину програми, до якої потім не треба повертатися в цій реалізації програми, але яка буде необхідною для виконання в її другій реалізації. Тобто коли гілки розгалуження занадто громіздкі, щоб створювати складені оператори. Необхідність в передачі управління не наступному оператору, а оператору , розташованому , скажімо, раніше в програмі, виникає не тільки в програмах з розгалуженням, а і в циклічних програмах.

Повний синтаксис оператора переходу:

GO TO < мітка> ;

< Мітка> – описаний в блоці LABEL ідентифікатор або цифри від 0 до 9999, якими позначається оператор. Мітка відокремлюється від оператора символом “:”. Якщо це цифри, то нулі на початку не є значущими, тобто мітки 0001 та 1 еквівалентні. Мітка може стояти в програмі будь-де , але кожна з них може з’явитися в програмі лише один раз.

Оператор переходу забезпечує безумовну передачу управління оператору з указаною міткою. Звичайно мітки розміщуються у операторів, але можуть стояти і у службового слова END, що забезпечує перехід на кінець поточного блока BEGIN…END .

Слід уникати переходів з передачею управління в середину складених операторів, особливо в той , де є оператор переходу. Оператор безумовного переходу достатньо ефективно забезпечує вихід із вкладеного оператора у зовнішній, що є достатньо безпечним засобом повернути управління зовнішньому оператору.

Область дії операторів переходу та пов’язаних з ними міток обмежується блоком, в якому описані мітки ( основний блок. процедура або функція ). Тому заборонені переходи за допомогою оператора переходу між процедурами та між процедурами та основним блоком.

При практичному програмуванні , як вже відмічалося, необхідність в використанні оператора переходу виникає не часто, але іноді один перехід дозволяє уникнути дуже широких циклів.

Приклад. Дани три числа A,B,C. Упорядкувати їх за спаданням, тобто змінній A присвоїти найбільше значення з трьох даних, а змінній C – найменше.

Використаємо відомий алгоритм сортування “бульбашки” (“пузырька” російською ) .

PROGRAM SORTUVANNIA;

LABEL 10;

VAR

A,B,C,X: REAL;

BEGIN

WRITELN(‘ВВЕСТИ A,B,C);READ(A,B,C);

WRITELN(A,B,C);

10: IF A<B THEN BEGIN X:=A; A:=B; B:=X END;

IF B<C THEN BEGIN X:=B; B:=C; C:=X; GO TO 10 END;

WRITELN (A,B,C)

END.

В програмі введено допоміжну змінну X для тимчасового зберігання значення однієї із змінних, які за алгоритмом обмінюються значеннями.


<== попередня лекція | наступна лекція ==>
Оператор вибору CASE. | Циклічні програми в ТП


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн