КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Функції користувача
Begin Методичні рекомендації Лабораторна робота № 31-33. Процедури та функції. Якщо в програмі виникає необхідність частого звернення до деякої групи операторів, які виконують дії або обчислюють вираз, то раціонально згрупувати ці оператори в блок, до якого можна звертатися по імені. Такі розроблені програмістом самостійні програмні блоки називаються підпрограмами користувача. Використання підпрограм дозволяє, зосереджуючи в них детальний опис деяких операцій, в основній програмі вказувати тільки імена підпрограм, щоб виконати ці операції. Такі звернення до підпрограм можливі багаторазові та з різних ділянок основної програми, причому при виклику підпрограми можна передати інформацію (різну в різних зверненнях), щоб одна і та ж підпрограма виконувала розв’язання підзадачі для різних випадків. Процедура – це незалежна іменована частина програми, яку після одноразового опису можна багаторазово викликати по імені з наступних частин програми для виконання певних дій. Процедура не може виступати як операнд у виразі. Структура процедури повторює структуру програми, вона також представлена заголовком та тілом. На відміну від програми, для процедур та функцій заголовок є обов’язковим. Заголовок складається із зарезервованого слова procedure, ідентифікатора (імені) процедури та необов’язкового, заключеного в круглі дужки, списку формальних параметрів із вказанням типу кожного параметра: Procedure Ім’яПроцедури (ФормальніПараметри); Ім’я процедури повинно бути унікальним, тобто його не можна використовувати повторно в програмі для найменування інших процедур. Тіло процедури за своєю структурою аналогічне звичайній програмі: Procedure Ім’яПроцедури (ФормальніПараметри); {Описова частина процедури} {Інструкції виконуваної частини процедури} 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. Якщо результатом підпрограми є тільки одне значення, то має сенс оформити таку підпрограму не у вигляді процедури, а у вигляді функції. Функція користувача аналогічна процедурі, але є дві відмінності. · Функція передає в програму результат своєї роботи - єдине значення, носієм якого є ім'я самої функції. · Ім'я функції може входити у вираз як операнд. Функція повертає результат у точку свого виклику. Функція, визначена користувачем, складається з заголовка і тіла функції. Заголовок містить зарезервоване слово functіon, ім'я функції, обмежений круглими дужками необов'язковий список формальних параметрів і, на відміну від процедури, тип значення, що повертається функцією: function Ім’яФункції(ФормальніПараметри): ТипРезультату; Наприклад: function fibo(n: integer): integer; function instep(a,b: real): real; function normrandom: double;
Ім'я функції унікальне в межах програми. Тіло функції за своєю структурою аналогічне звичайній програмі: function Ім’яФункції(ФормальніПараметри): ТипРезультату; { Описова частина функції }
Дата добавления: 2015-05-24; Просмотров: 2614; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |