Delphi. Pascal
Урок 11. Процедуры
Объявление процедуры
procedure ИмяПроцедуры(var Параметр1: Тип1; var Параметр2: Тип2; var ПараметрJ: TипJ } ; const { описание констант } var { описание переменных } begin { инструкции процедуры } end;
Примечание: слово var ставится перед именем параметра в том случае, если параметр используется для возврата значения из процедуры в вызвавшую ее программу.
Процедура | Пример процедуры для обмена значений между целыми переменными m и n |
program имя-программы; | program primer; var x,y: integer; |
procedure имя(параметры); | procedure swap(var m,n:integer); |
описания локальных величин | var s: integer; |
begin | begin |
операторы процедуры | s:=m; m:=n; n:=s |
end; | end; |
BEGIN | BEGIN |
операторы программы | read(x,y); swap(x,y); writeln(x:10,y:10) |
END. | END. |
Разумеется, в любой нормальной программе есть повторяющиеся куски кода. И, конечно, их не надо многократно писать в одном месте - такой код достаточно написать в одном месте, дать ему некоторое имя и потом по этому имени вызывать из разных мест.
Такие повторяющиется куски кода могут быть 2-х типов - возвращающие значения (они называются функциями) и не невозвращающие значения (они называются процедурами). Первые можно использовать в различных выражениях, вторые - нельзя. Мы в данном уроке рассмотрим вторые.
Вот пример объявления и использования процедуры:
...
//Объявление процедуры.
procedure ShowXY(X, Y: Single);
begin
Writeln('X=', X, ', Y=', Y);
end;
begin
//Вызов процедуры.
ShowXY(2, 4.5);
Readln;
end.
Приведенный фрагмент выведет на экран 2 и 4.5 с десятичной частью.
Как видно, процедура объвляется с помощью ключевого слова procedure. После этого слова пишем произвольное имя, после которого в круглых скобках - параметры. Для каждого параметра указываем тип. Далее пишем тело процедуры между begin и end.
Вызывая процедуру, мы пишем конкретные параметры или переменные нужного типа. Параметры разного типа разделяем точкой с запятой. Если параметры отсутствуют, то и при объявлении процедуры и при ее вызове круглые скобки можно писать, а можно не писать.
Если процедур несколько, то слово procedure пишем перед каждой из них.
Вот общий пример на все сказанное:
//Объявление процедур.
procedure Show(); //Скобки можно не писать.
begin
Writeln('X=0, Y=0');
end;
procedure ShowXY(X: Integer; Y: Single);
begin
Writeln('X=', X, ', Y=', Y);
end;
begin
//Вызов процедуры.
Show; //Скобки можно не писать.
...