Лабораторна робота № 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 Все права принадлежат авторам размещенных материалов.
|