IPB

> Лекция №8.1: Процедуры и функции
Чат
Форум
Загрузка...
 

страницы: 1 2 3 4 5

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

Содержание

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

Весьма поэтичное объяснение понятия подпрограмма дал В. Ф. Очков: «Подпрограмма — это припев песни, который поют несколько раз, а в текстах песен печатают только один раз»1.

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

С математической же точки зрения любая подструктура — это замкнутая часть целого, которую можно рассматривать как самостоятельную структуру: подмножество является множеством, подгруппа — группой, подалгебра — алгеброй, подпространство — пространством и т.д.

Таким образом, подпрограмма — это в первую очередь программа. Со всеми полагающимися полноценной программе атрибутами: именем, разделами описания меток (label), констант (const), типов (type), переменных (var) и даже со своими (вложенными) функциями и процедурами.

В языке Pascal имеется два вида подпрограмм: процедуры и функции. Описывая их общие черты, мы будем употреблять обобщённый термин «подпрограмма». Если же в тексте встретятся слова «процедура» или «функция», то это будет означать, что излагаемая информация свойственна только одному конкретному виду подпрограмм: либо только процедурам, либо только функциям.

Объявление и описание

Подпрограммы объявляются и описываются в начале Pascal–программы, до ключевого слова begin, означающего начало тела программы.

Различия между процедурами и функциями начинаются уже с момента их объявления.

Объявление функции

Функции объявляются следующим образом:

function <имя_функции> [(<список_параметров>)]:<тип_результата>;

В отличие от констант и переменных, объявление подпрограммы может быть оторвано от её описания. В этом случае после объявления нужно указать ключевое слово forward:

function <имя_функции> [(<параметры>)]:<тип_результата>; forward;
Объявление процедуры

Процедуры следует объявлять так:

procedure <имя_процедуры> [(<список_параметров>)];

Если объявление процедуры оторвано от её описания, нужно поставить после него ключевое слово forward:

procedure <имя_процедуры> [(<список_параметров>)]; forward;
Описание подпрограммы

Описание подпрограммы должно идти после её объявления. Оно осуществляется по следующей схеме (единой для процедур и функций):

[ uses <имена_подключаемых_модулей>;]
[ label <список_меток>;]
[ const <имя_константы> = <значение_константы>;]
[ type <имя_типа> = <определение_типа>;]
[ var <имя_переменной> : <тип_переменной>;]

[ procedure <имя_процедуры> <описание_процедуры>]
[ function <имя_функции> <описание_функции>;]

begin  {начало тела подпрограммы}
   <операторы>
end;  (* конец тела подпрограммы *)

Если объявление подпрограммы было оторвано от её описания, то описание начинается дополнительной строкой с указанием только имени подпрограммы:

function <имя_подпрограммы>;

или

procedure <имя_подпрограммы>;

Описания двух различных подпрограмм не могут пересекаться: каждый блок должен быть логически законченным. Однако внутри любой подпрограммы (она ведь тоже является программой, помните?) могут быть описаны другие процедуры или функции — вложенные. На них распространяются всё те же правила объявления и описания подпрограмм.

Пример подпрограммы–процедуры:

procedure err(c : Byte; s : String);
var zz : Byte;
begin
 if c = 0 then
   WriteLn(s)
 else
   WriteLn('Ошибка!')
end;

страницы: 1 2 3 4 5

Примечания

  1. ^ http://twt.mpei.ac.ru/ochkov/mc8Pro.book/6_text.htm
 
 К началу страницы 
 

Код для вставки: :: :: :: ГОСТ ::
Поделиться: //
 



-
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"