Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава9.doc
Скачиваний:
1
Добавлен:
16.04.2019
Размер:
252.42 Кб
Скачать

Глава 9. Организация подпрограмм

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

Каждая программная единица в свою очередь может состоять из единиц более низкого уровня. В таких случаях говорят, что программа имеет иерархическую (соподчинённую) структуру.

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

Рис. 9.1. Иерархическая структура программы:

А - главная программа;

В - подпрограмма первого уровня;

C и D - подпрограммы второго уровня

Подпрограмма представляет собой самостоятельный фрагмент программы, снабженный собственным именем, оформленный по определенным правилам и предназначенный для реализации некоторой части общего алгоритма задачи.

Одну и ту же подпрограмму можно использовать в одной или нескольких точках главной программы или другой подпрограммы, поместив в эти точки операторы вызова подпрограммы, которые обеспечивают ее выполнение (активизацию). Каждый такой оператор должен содержать имя вызываемой подпрограммы и исходные данные.

Данные эти передаются подпрограмме в момент её вызова, затем выполняются действия, заданные операторами подпрограммы, после чего управление передается вместе с результатами счёта в место вызова подпрограммы (рис.9.2).

Рис.9.2. Взаимодействие вызывающей программы и подпрограммы

Подпрограммы в основном используются в трёх случаях.

Во-первых, когда решаемая задача является такой сложной и большой по объёму, что разработка программы в целом вызывает серьёзные затруднения. Поэтому приходится программировать задачу по частям, оформляя каждую в виде отдельной программной единицы и поручая их разработку разным исполнителям.

Во-вторых, если одну и ту же совокупность математических операций, предназначенную, например, для вычисления определённого интеграла, решения системы линейных уравнений и т.п., нужно выполнить в нескольких точках программы с разными исходными данными.

И, в-третьих, когда возникает необходимость в универсализации программных единиц с целью использования их при решении других задач.

Представление программы в виде совокупности относительно самостоятельных единиц делают её более ясной и легко проверяемой, что позволяет выполнить её отладку, а в случае необходимости и модификацию с наименьшими затратами времени и средств.

Это, в конечном счете, приводит к повышению качества и эффективности программ.

В языке TurboPascal имеется две разновидности подпрограмм - процедуры (procedure) и функции (function).

9.1. Описание подпрограмм

Так же, как описание программы в целом, описание подпрограммы состоит из заголовка, раздела описания объектов подпрограммы и раздела операторов, который заканчивается символом ’ ; ’ (рис.9.3):

З аголовок;

label < описание меток >

const < описание констант >

type < описание типов >

var < описание переменных >

procedure < описание процедур >

function < описание функций >

begin

оператор 1; оператор 2; ... оператор n

end;

Рис.9.3. Структура описания подпрограммы

Описание подпрограмм размещают в разделе описаний вызывающей программной единицы вместе с описанием меток, констант, типов и переменных.