русс | укр

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

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


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


Створення власних процедур


Дата додавання: 2014-02-04; переглядів: 1025.


Стандартні процедури

Процедури

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

У Турбо Паскаль, так само як і стандартні функції, є стандартні процедури. Більшість із них описано в модулях,що підключаються (CRT, Graph і інших), тому, перш ніж використати таку процедуру, необхідно в розділі uses підключити до програми відповідний модуль.

До таких стандартних процедур відноситься вже відома нам команда ClrScr. Процедурами є й оператори введення/виведення Read, Readln, Write і Writeln. Поряд із цими стандартними процедурами в мові Паскаль широко використовуються також наступні:

ü Delay(i) - здійснює затримку виконання програми на i мілісекунд (тисячних часток секунди);

ü Exit — ця процедура не має параметрів. Вона здійснює вихід із процедури або функції в основну частину програми (не плутати з командою Exit меню системи програмування Турбо Паскаль, що закриває систему програмування й робить вихід у середовище операційної системи);

ü GotoXY(a,b) - переводить курсор у точку екрана з координатами (а, b);

ü Halt - ця процедура не має параметрів. Вона завершує виконання програми й передає керування операційній системі.

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

Загальний вид опису процедури наступний:

Procedure <заголовок процедури >;

<розділ описів процедури >;

Begin <розділ операторів процедури > end;

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

Формат опису: Procedure <ім’я> (формальні параметри);

Зверніть увагу, що як формальні параметри, так і розділ описів у процедурі може бути відсутній. Щоб звернутися до процедури, треба використати оператор виклику процедури. Він складається з ідентифікатора (імені) процедури і списку фактичних параметрів, що відділені один від одного комами і знаходяться у круглих дужках. Якщо процедурі не передається ніяких параметрів, то фактичні параметри не вказуються.

Формат виклику процедури: <ім’я процедури> (фактичні параметри);

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

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

Всі формальні параметри діляться на два види. Якщо перед ім’ям параметра в заголовку процедури стоїть службове слово var,то це – параметр-змінна.Якщо службове слово varперед ім’ям змінної в заголовку відсутнє, то даний параметр є параметром-значенням. При звертанні до процедури формальному параметру-значенню присвоюється значення відповідного йому фактичного параметра, причому таким значення може виступати константа, змінна або вираз. Під час роботи процедури параметр-значення не може змінюватися навіть у тому випадку, якщо він є змінною.

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

Приклад заголовка процедури: рrocedure vspomog (a, b: integer; var с, d: real);

де: vspomog– ім’я процедури; a,b,с,d – імена формальних параметрів, причому ай b є параметрами-значеннями, а сіd – параметрами-змінними.

У розділі описів процедури константи й змінні описуються за тимиж правилами, що й в основній програмі. При цьому варто мати на увазі що ці змінні можуть використатися тільки усередині даної процедури. Такі змінні називаються локальними. Упроцедурі можуть застосовуватисяй змінні, які описані в основній частині програми. Такі змінні називаються глобальними.

Розділ операторів процедури принципово не відрізняється від такого ж розділу в основній програмі. Він може містити звертання до інших функційі процедур, але після службового слова endставиться крапка з комою, тому що кінець опису процедури – це не кінець програми.


<== попередня лекція | наступна лекція ==>
Функції | Класифікація способів передачі параметрів


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