Это одно и то же, разница в том, что функция может возвращать значение.
процедура объявляется просто - procedure Lol(var trololo: integer); (например) , при объявлении функции нужно ещё указать, в каком формате возвращается значение: function Lol(var trololo: integer): integer;
Ещё в функциях есть предопределённая переменная result, которой нет в процедурах.
И это вроде не только в Delphi.
Другие языки программирования и технологии
В чем отличие функций от процедур (делфи)?
Процедура не может возвращать результат, в отличии от функции…
Денис Милованов
может плохо смотрели, переменная вывода опсывается тамже где переменная ввода (некий аналог передачи по указателю)
Процедура тоже может вернуть результат и даже не один. Но сделать она это может только через параметры переданные по ссылке.
Например:
procedure proc1(in_prm: integer; var out_prm: integer)
Функция же возвращает результат в автоматически создаваемой константе определенного типа.
Например:
function func1 (in_prm: integer): string;
в данном примере функция вернет значение типа string. При этом память под это значение будет автоматически выделена. Именно поэтому появляется возможность использовать конструкции вида:
var
s: string
begin
s := fuct1(1);
end;
Функция тоже может возвращать значения через переменные переданные по ссылке.
Следует помнить, что после того, как функция была выполнена, память выделенная под результирующее значение помечается как свободная, поэтому если функция возвращает ссылку на класс, то сам класс необходимо явно создавать в теле функции.
Могу ошибаться, но примерно так.
Теоретически можно обойтись без использования функций. Но это добавляет много рутины при написании кода.
Например:
procedure proc1(in_prm: integer; var out_prm: integer)
Функция же возвращает результат в автоматически создаваемой константе определенного типа.
Например:
function func1 (in_prm: integer): string;
в данном примере функция вернет значение типа string. При этом память под это значение будет автоматически выделена. Именно поэтому появляется возможность использовать конструкции вида:
var
s: string
begin
s := fuct1(1);
end;
Функция тоже может возвращать значения через переменные переданные по ссылке.
Следует помнить, что после того, как функция была выполнена, память выделенная под результирующее значение помечается как свободная, поэтому если функция возвращает ссылку на класс, то сам класс необходимо явно создавать в теле функции.
Могу ошибаться, но примерно так.
Теоретически можно обойтись без использования функций. Но это добавляет много рутины при написании кода.
Prin4Uks Xxxxx
Процедура тоже может вернуть результат и даже не один. Но сделать она это может только через параметры переданные по ссылке. − То есть не возвратить результат, а изменить свои параметры!
Функция это когда ты что-то делаешь, а процедрура это с тобой делают =))))))) ясно? =)
Похожие вопросы
- Отличие функций GetParent и GetWindowLong, Delphi 7
- зачем нужны подпрограммы? и зависит ли это от ее метода (свойство, функция или процедура)
- Помогите составить программу через Pascal с использованием функции и процедуры.
- PASCAL. В чем отличие процедур от функций. И любую ли задачу можно решить с помощью функции?
- Turbo Pascal. 2 задачи на процедуры и функции
- Процедуры и функции!!! Pascal!!!
- PascalABC. Когда применяются процедуры, вместо функций?
- Pascal (процедуры и функции)
- Помогите переделать программу в Delphi через "Процедуры, функции, модули".
- паскаль процедуры и функции