Глава 7 оператори
Оператори описують ті алгоритмічні дії, які повинні виконуватися. Операторам можуть передувати мітки, кото-які можна використовувати для посилань в операторах переходу goto.
Мітка - це послідовність цифр в діапазоні від 0 до 9999 або ідентифікатор.
Існує два основних види операторів: прості оператори і структурні оператори.
прості оператори
Простим оператором є такий оператор, який не з-тримає в собі інших операторів.
оператор присвоювання
Оператор присвоювання замінює поточне значення змінної новим значенням, яке визначається виразом, або визначає вираз, значення якого повинно повертатися функцією.
Вираз має бути сумісним з присвоєння з типом пе-пасової або типом значення, що повертається функцією в якості результату (див. Розділ "Сумісність типів" в розділі 4).
Наведемо деякі приклади операторів присвоювання:
Done: = (I> = 1) and (I <100);
Huel: = [blue, Succ (C)];
Присвоювання об'єктного типу
Правила сумісності по привласненню об'єктних типів позво-ляють привласнювати примірника об'єкта екземпляр будь-якого з його до-Чорна типів. Таке присвоювання є проекцією нащадка на простір його предка. У прикладі вихідного коду в Главі 4 з урахуванням примірника F типу TField і примірника Z типу TZipField присвоювання F: = Z копіює тільки поля X, Y, Len та Name.
Присвоєння примірнику об'єктного типу не ініціалізує екземпляр. Наприклад, в попередньому прикладі присвоювання F: = Z оз-начає, що виклик конструктора для F можна опустити.
Оператори процедури
Оператор процедури визначає активізацію процедури, позначення-ченную за допомогою ідентифікатора процедури. Якщо відповідне опис процедури містить список формальних параметрів, то опе-ратор процедури повинен містити в собі відповідний йому список фактичних параметрів (параметри, список яких наводиться у визначенні, є формальними параметрами, а в операторі виклику процедури вони є фактичними параметрами). При ви-зове відбувається передача фактичних параметрів формальним пара-метрам.
Наведемо деякі приклади операторів процедур:
Оператори переходу
Оператор переходу goto викликає передачу управління операто-ру, якому передує мітка, зазначена в даному операторі переходу. Синтаксична схема оператора переходу має наступний вигляд:
При використанні оператора переходу повинні дотримуватися сле-дмуть правила:
1. Метка, яка вказується в операторі переходу, повинна знаходитися в тому ж блоці або модулі, що і сам оператор переходу. Іншими словами, не допускаються переходи з процедури або функції або всередину неї.
2. Перехід ззовні всередину структурного оператора (тобто пе-реход на більш глибокий рівень вкладеності) може дзв-вать непередбачувані ефекти, хоча компілятор не видає повідомлення про помилку. Наприклад, ви не повинні переходити в тіло циклу for.
Примітка: Хороша практика програмування вимагає мінімального використання переходів.
структурні оператори
Структурні оператори будуються з інших операторів, порядок виконання яких повинен бути послідовним (складові оператори і оператори над записами), що визначаються умовною передачею управління (умовні оператори) або повторюваним (оператори цик-ла).
складові оператори
Складові оператори задають порядок виконання операторів, які є їх елементами. Вони повинні виконуватися в тому порядку, в якому вони записані. Складові оператори обробляються, як один оператор, що має вирішальне значення там, де синтаксис Паскаля допускає використання тільки одного оператора. Операто-ри полягають в обмежувачі begin і end, і відокремлюються один від одного крапкою з комою.
Наведемо приклад складеного оператора: