Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 15.doc
Скачиваний:
7
Добавлен:
20.11.2019
Размер:
390.66 Кб
Скачать

13

Тема 15. Подпрограммы на языке pascal

Содержание:

15.1. Описание процедур 1

 15.2.Формальные параметры. Локальные и глобальные объекты 1

 15.3.Оператор процедуры. Фактические параметры 2

 15.4.Функции 4

15.5. Рекурсивно–определенные процедуры и функции 5

15.5.1. Примеры рекурсивных описаний процедур и функций 8

15.5.2. Преимущества и недостатки рекурсивных алгоритмов 10

15.5.3. Метод “разделяй и властвуй” (рекурсивная процедура) 10

15.6. Стандартные функции 11

15.6.1. Арифметические функции 12

15.6.2. Функции преобразования типа 12

15.6.3. Функции для величин перечисляемого типа 12

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

Процедура и функция - это именованная последовательность описаний и операторов. При использовании процедур или функций ПАСКАЛЬ - программа должна содержать текст процедуры или функции и обращение к процедуре или функции.

15.1. Описание процедур

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

В языке Pascal процедуры определяются в разделе процедур и функций с помощью описаний процедур. Обращение к процедуре осуществляется оператором процедуры.

Раздел процедур

и функций

Описание процедуры выглядит также, как и описание программы, но вместо заголовка программы фигурирует заголовок процедуры. Заголовок имеет вид:

 Заголовок процедуры

Примеры заголовка процедуры:

procedure Picture;

procedure Power(X: real; n: Integer; var u, v: Real);

procedure Integral( a, b, epsilon: Real; var S: Real);

15.2.Формальные параметры. Локальные и глобальные объекты

Как видно из примеров, в разделе формальных параметров перечисляются имена формальных параметров, а затем указывается их тип. Таким образом, каждое описание формальных параметров с точки зрения синтаксиса выглядит также, как и описание переменных в разделе переменных. Перед некоторыми описаниями ставится служебное слово Var. Такие параметры называются параметрами–переменными. Если перед описанием служебное слово Var не стоит, это – параметры–значения. Различие между этими типами параметров описано ниже.

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

Резервирование памяти под локальные объекты осуществляется таким образом, что она “захватывается” процедурой при ее вызове оператором и освобождается при выходе из процедуры. Такой механизм распределения памяти называется динамическим. Динамическое распределение позволяет экономить адресуемую память.

Объекты, описанные в основной программе, доступны для использования в этой процедуре. Они называются глобальными. Отметим, что локальный и глобальный объекты совершенно различны, но могут иметь одно и то же имя. Если, например, переменная Х описана как в основной программе, так и в процедуре, то в процедуре она используется как локальная. Если же в процедуре переменная Х не описана, то в процедуре она используется как глобальная.