Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Організація підпрограм




Підпрограми, які використовуватимуться в програмі, повинні бути попередньо визначені (описані). При цьому кожній підпрограмі дається своє ім'я, а також описуються дії, що складають сенс підпрограми. РБНФ визначення підпрограми:

опис_підпрограми = заголовок; тіло_підпрограми.

Заголовок підпрограми містить її ім'я і деяку додаткову інформацію, що уточнює використання цієї підпрограми. Тіло підпрограми є тим програмним фрагментом, який описує виконувані підпрограмою дії.

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

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

Слід зазначити, що параметри використовуються не тільки як інструмент для передачі в підпрограму вихідних даних, а й для повернення у зовнішній блок (основну програму, підпрограму) отриманих результатів.

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

Конкретизація ж дій підпрограми здійснюється за допомогою фактичних параметрів - конкретних значень або змінних, які повинна обробити підпрограма, і які в її тілі були позначені формальними параметрами. Вказуються фактичні параметри, якщо вони є, в операторі виклику відповідної підпрограми. Його РБНФ:

оператор_виклику_підпрограми = ім'я_підпрограми [(список_фактичних_параметрів)]

Список фактичних параметрів в операторі виклику підпрограми повинен відповідати списку формальних параметрів у заголовку підпрограми. Ця відповідність повинна бути взаємно-однозначною по кількості, порядку і типу параметрів у результаті їхнього перебору зліва направо. Тобто кількість, порядок слідування і тип формальних і фактичних параметрів повинні відповідати однин одному, тобто збігатися.

Таким чином, фактичні параметри - це конкретні значення або змінні, які повинна обробити підпрограма; формальні параметри - це абстрактні імена, в термінах яких описуються дії по обробці фактичних параметрів в тілі підпрограми.

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

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

 


Поделиться:

Дата добавления: 2015-08-05; просмотров: 103; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты