Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
програмування - екзамен.doc
Скачиваний:
4
Добавлен:
09.09.2019
Размер:
162 Кб
Скачать
☆

15.Структурний підхід до розробки прикладних програм. Підпрограми. Процедури і функції.

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

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

procedure <назва> (<список формальних параметрів>);

<розділи описів і оголошень процедури>

begin

<розділ команд процедури>

end;

У списку формальних параметрів (які запис. у дужках після назви процедури) перераховують змінні разом із зазначенням їхніх типів. Розрізняють параметри – аргументи (фактичні параметри)– вхідні дані для процедури, і параметри – результати(формальні параметри), через які можна повертати результати роботи процедури в основну програму. Перед списками параметрів-результатів кожного типу записують слово var. До процедури звертаються з розділу команд основної програми або іншої підпрограми. Процедуру викликають за допомогою команди виклику:

<назва процедури> (<список фактичних параметрів>);

Функція, на відміну від процедури, може повертати в місце виклику лише один результат визначеного простого стандартного типу. Результатом ф-ї не може бути масив, файл, множина, запис. Загальний опис функції:

function <назва> (<список формальних параметрів>):<тип функції>;

<розділи описів і оголошень функції>

begin

<розділи команд функції, де має бути така команда:

назва:=результат;

end;

приклад: function suma(a: integer; n: byte):real;

У розділі команд функції має бути команда присвоєння значення деякого виразу (типу даних) назві функції. Результат функції повертається в основну програму через її назву. Виклик функції здійснюється лише з виразів так:

<назва> (<список фактичних параметрів>);

16.Рекурсія. Фактичні та формальні параметри. Глобальні та локальні змінні.

Означення назив. рекурсивним, якщо воно задає елементи множини за допом. іншого ел. цієї ж множини.

Рекурсія – такий спосіб організації обчисл. процесу, де підпрограма викликає сама себе. Рекурсія дає змогу записувати циклічний алгоритм, не використовуючи команду циклу. В рекурсивних підпрограмах є процеси рекурсивного занурення (доки параметр не сягне граничного знач.) та рекурсивного повернення(доки параметр не сягне поч. знач.) з підпрограми. Глибина рекурсії – макс. к-ть незавершених рекурсивних викликів. Не варто викор. рекурсію, коли задача має наявний(очевидный) розв'язок. В разі непрямої рекурсії підпрограма містить виклики ін. підпрограм, що в свою чергу містять виклики даної підпрограми. Якщо декілька підпрограм містять непрямі рекурсії, то до деяких з них має бути застосоване випереджальне оголошення (forward).

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