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

Подпрограммы в Delphi

Подпрограммы - это автономный поименованный исполнимый элемент программы.

Подпрограммы (ПП) можно считать один из строительных блоков в языках программирования

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

Таким образом, скрываются детали того, каким образом реализована данная функциональная возможность.

Преимущества использования ПП:

    • используя ПП можно осмысленно структурировать программы делая их легкими для чтения и понимания;

    • ПП позволяют избежать дублирования частей программы;

    • ПП обеспечивают возможность их повторного использования.

Хорошо спроектированная ПП не зависит ни от чего внешнего, кроме передаваемых значений по хорошо определенным каналам, называемых параметрами.

Параметр ПП обеспечивает путь передачи величины в ПП извне и обратно. Внутри ПП параметры ведут себя как переменные.

В языке Delphi имеется два типа ПШ процедуры и функции.

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

При использовании ПП различают описание процедуры (функции) и вызов процедуры (функции).

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

Каждая процедура должна быть описана в Delphi разделе реализации модуля (или в разделе описаний процедуры или функции).

Описание процедуры состоит из:

    • заголовка (интерфейса);

    • раздела описаний;

    • процедуры.

Синтаксическая структура описания процедуры:

Procedure <имя> [(< список формальных параметров>)]; {заголовок}

[<Раздел описаний>] {описание типов, переменных,

констант, процедур и функций (может

отсутствовать)}

Begin {начало тела }

<Оператор>

……………..

<Оператор >;

End; {конец тела }

<Список формальных параметров>, заключенный в круглые скобки, может отсутствовать.

В <Списке формальных параметров> должен быть указан тип каждого параметра в виде определенного ранее идентификатора типа или идентификатора встроенного типа.

Пример: Type MAS =Array [1 .. 20] of Real;

………………………………………

Procedure SW( N: Integer; A: MAS; var S: Real); {заголовок}

Var j:integer; {описание переменной (локальной)}

Begin

S :=0;

For j :=1 To N Do

S := S+A [ j ];

End;

В списке формальных параметров первый и третий параметры встроенных типов (Integer b Real), а второй формальный параметр –именованного, ранее определенного пользователем типа (MAS).

Неправильный заголовок процедуры:

Procedure SW( N: Integer; A: Array [1 .. 20] of Real; var S: Real);

В описании второго формального параметра вместо именованного, ранее определенного пользователем типа (одномерного массива) записано само описание.

Переменные, описанные в <разделе описаний>, являются локальными в данной процедуре. Т. е. их можно использовать только в операторах тела данной процедуры.

Результаты выполнения передаются через один или несколько параметров, которые в заголовке процедуры описываются как параметры - переменные (перед параметром стоит служебное слово Var).

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

В теле процедуры запрещено использовать оператор Goto, передающий управление на метку, расположенную вне тела процедуры.