Функция – небольшая часть программы, упрощающая работу большого алгоритма. Возвращает лишь один результат значения переменной.
Чтобы убедиться в необходимости создания функций, приведем следующий пример:
Давайте попробуем ввести пример в паскаль:
…
y:=((sin(x)/cos(x))*2)/((sin(x)/cos(x))+6)*( (sin(x)/cos(x))*2)/(
(sin(x)/cos(x))+6)*( (sin(x)/cos(x))*2)/( (sin(x)/cos(x))+6)-
sin(x)/cos(x)+sin(x);
…
Известно, что тангенс высчитывается по следующей формуле: tn=sin(x)/cos(x). Согласитесь, ведь не разумно писать столько строк, если можно все сократить. А если пример был бы гораздо больше? Чтобы упростить весь пример, можно создать функцию, высчитывающую этот тангенс:
…
function tg(x:real):real;
begin
tg:=sin(x)/cos(x);
end;
…
Обычно, функция описывается еще в начале программы перед begin (сразу после описания переменных var). Сначала ставится ключевое слово function и затем дается название функции. В скобках описываются входящие переменные. Потом ставится двоеточие (:) и тип результата вычислений.
Таким образом, полный код программы будет выглядеть следующим образом:
Процедура – та же самая функция, но имеющая входные и выходные параметры.
Рассмотрим структуру процедуры на этом же примере:
…
procedure tg(x:real; var y:real);
begin
y:=sin(x)/cos(x);
end;
…
Сначала ставится ключевое слово procedure и затем дается название процедуры. В скобках описываются переменные для ввода/вывода расчетов. Для задания выходного параметра переменной, перед ней ставится ключевое слово var (var y:real).
Тогда полный код программы, с использованием процедуры, будет выглядеть следующим образом:
Сначала высчитывается тангенс, а затем и сам пример.
Также можно структурировать код программы, и каждое действие вынести в отдельную процедуру:
Хотя выглядит немного не красиво, но зато, при написании большой программы, очень удобно находить ошибки, редактировать и добавлять новые возможности.
Еще одна особенность объявления процедур и функций заключается в том, что при использовании массивов нельзя задавать количество элементов.
Пример:
procedure vvod(var array[1..n] of integer); {Процедура объявлена неверно!}
procedure vvod(var array of integer); {Процедура объявлена верно!}
После объявления процедур или функций, так же, как и после названия программы, описываются необходимые переменные:
…
procedure max;
var i:integer; {описание переменных}
begin
end;
…
…
function max(s:string):boolean;
var i:integer;
begin
end;
…
Опубликовано: 2016-02-04 19:15:53