Здавалка
Главная | Обратная связь

Лабораторна робота № 31-33. Процедури та функції.



Методичні рекомендації

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

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

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

Procedure Ім’яПроцедури (ФормальніПараметри);

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

Procedure Ім’яПроцедури (ФормальніПараметри);

{Описова частина процедури}

Begin

{Інструкції виконуваної частини процедури}

end;

 

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

Ім’яПроцедури (ФактичніПараметри);

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

Якщо процедура повертає в програму якісь значення, відповідні змінні повинні бути описані як параметри - змінні з використанням слова var.

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

Опис міток, констант, типів і т.п. дійсний тільки в межах даної користувальницької процедури. Для примусового виходу з процедури використовується оператор завершення exіt, що забезпечує вихід у зовнішній блок (зазвичай - основну програму).

Приклад . Запишемо процедуру, що виконує зведення до цілого ненегативного степеня будь-яке числа. За допомогою даної процедури обчислимо, скільки байтів міститься в кілобайті, мегабайті і гігабайті, використовуючи відомі співвідношення: 1Кбайт = 210 байт, 1 Мбайт =220 байт, 1 Гбайт =230 байт

 

procedure degree(x: real; n: byte; var res: real);

{ процедура приведення числа х до цілого невід’ємного степеня n, }

{ результатом є параметр-змінна res }

var i: integer;

begin

res:=l;

for i:=l to n do res:=res*x;

end;

{ основна программа }

var kb,mb,gb: real;

begin

degree(2,10,kb);

degree(2,20,mb);

degree(2,30,gb);

writeln('l Kb = ', kb:4:0, ' byte');

writeln('l Mb = ', mb:7:0, ' byte');

writeln('l Gb = ', gb:10:0,' byte');

end.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.