Sign in Join
Wiki copytemporary

Procedure/ru: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Procedure/ru

OldNewLine
1+## Обзор
2+
3+[[Keyword/ru|Ключевое слово]] **procedure** предназначено для объявления [[Routine/ru|подпрограммы]], которая может быть вызвана
4+
5+- из [[Unit/ru|модуля]], в котором она объявлена
6+- из внешнего модуля, если она объявлена в секции [[Interface/ru|interface]] модуля,
7+- или из [[Program/ru|программы]]
8+
9+Если подпрограмма объявлена как процедура, то она не возвращает значение. Процедура, которая возвращает значение, называется *[[Function/ru|функцией]]*.
10+
11+Процедура, являющаяся частью объекта, называется [[Method/ru|методом]]. Функция, являющаяся частью объекта, также называется [[Method/ru|методом]], если с её помощью не может быть присвоено значение из внешней функции и [[Property/ru|свойством]], если с её помощью может быть присвоено значение из внешней функции.
12+
13+## Параметры процедуры
14+
15+- Передаваемые по значению
16+- [[Variable parameter/ru|Параметры-переменные]] (передаваемые по ссылке)
17+- Выходные параметры (**Out**)
18+- Константные параметры
19+- [[Default parameter/ru|Параметры по умолчанию]]
20+
21+## Пример
22+
23+Пример использования [[Variable parameter/ru|параметров-переменных]]:
24+
25+``` pascal
26+ // процедура обмена значений двух переменных (параметры передаются по ссылке)
27+ procedure swap(var c1,c2:char);
28+ var c:char;
29+ begin
30+ c:=c1;
31+ c1:=c2;
32+ c2:=c;
33+ end;
34+
35+ var s:string;
36+
37+ begin
38+ s:='pit';
39+ swap(s[1],s[3]);
40+ writeln (s); // результатом будет 'tip'
41+ end.
42+```
43+
44+## См. также
45+
46+- [Procedure statements](http://www.freepascal.org/docs-html/ref/refsu49.html)
47+- [Процедурные типы](http://www.freepascal.org/docs-html/ref/refse17.html)
48+
49+---
50+*From the Free Pascal wiki, page "Procedure/ru", as it stood on 2020-02-23 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history