fbpx

Разработка приложений для ТехЭдитора: Руководство

Функции **

Рейтинг: 5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
 

Функция — элемент скрипта, который помимо выполнения определенных действий способен возвращать конкретный результат. Функции активно применяются для реализации математических расчетов, работы с текстом, манипуляций с временем / датой и другими типами данных.

Общий формат функции

В общем случае, на языке программирования Pascal функция имеет следующий формат:

function [FunctionName][(params)]: [ResultType];
[var]
[localvar]: [VarType];
begin
..
Result := [equation];
..
end;

Здесь

  • function — зарезервированное слово, за которым следует определение функции
  • FunctionName — имя функции
  • params — необязательный набор параметров / аргументов функции
  • var — начало необязательного блока локальных переменных (зарезервированное слово)
  • localvar — имя локальной переменной
  • VarType — тип локальной переменной localvar
  • ResultType — тип результата функции
  • begin .. end — операторные скобки, внутри которых описано тело функции
  • Result — специальная переменная, получающая результат функции (зарезервированное слово)
  • equation — переменная, константа, функция или произвольное выражение, формирующее результат функции

Имя функции

Имя функции должно быть правильным идентификатором, т. е. может состоять только из букв латинского алфавита, символа "_" и цифр.

Параметры, аргументы, локальные переменные

Параметры функции

Параметры функции — специальные переменные, которые выступают своего рода исходными данными по отношению к функции. В следующем примере используется параметр Suffix — строка текста, добавляемая через пробел к текущей дате:

function TodayAsString(Suffix: string): string;
begin
Result := DateToStr(Date) + ' ' + Suffix;
end;

Количество параметров в подпрограммах, в общем случае, не ограничивается:

function Integral(x, y: Double; n: Integer): Double;
var
i: Integer;
begin
Result := 0;
for i := 1 to n do
Result := Result + (2 * x * y);
end;

С точки зрения изменения своего значения, параметры функции являются константами. Если в процессе вычисления функции вам нужно поменять значение параметра, используйте аргументы.

Аргументы функции

Аргументы функции выполняют ту же роль, что и параметры, но в дополнение к этому они могут быть изменены самой функцией. В программировании такие аргументы еще называются параметрами по ссылке (parameters by reference, var parameters).

В следующем примере функция SwapValues меняет значения аргументов A, B местами. При этом сама функция выступает промежуточным "буфером" для хранения значения A:

function SwapValues(var A, B: Double): Double;
begin
Result := A;
A := B;
B := Result;
end;

На месте аргументов должны располагаться, как правило, глобальные переменные модуля:

var
SideA: Double;
SideB: Double;

function SwapValues(var A, B: Double): Double;
begin
Result := A;
A := B;
B := Result;
end;

// main script:

begin
SideA := 1.5;
SideB := 5.8;
SwapValues(SideA, SideB);
ShowMessage('A=' + FloatToStr(SideA) + '; B=' + FloatToStr(SideB));
end.

Локальные переменные

Локальные переменные могут использоваться только внутри функции. Обращение к ним за пределами тела функции приведет к ошибке.

Пример функции с двумя локальными переменными:

function F(x, y: Double): Double;
var
x2, y3: Double;
begin
x2 := x * x;
y3 := y * y * y;
Result := x2 / y3;
end;

Работа с функцией

Вычисление функции

Чтобы функция возвращала конкретное значение, в ее теле (между операторными скобками begin..end) следует присвоить значение специальной переменной Result:

function Perimeter(a, b: Double): Double;
begin
Result := 2*a + 2*b;
end;

После присвоения, вы можете обращаться к Result как к локальной переменной, в любом другом месте функции:

function Perimeter(a, b: Double): Double;
begin
Result := 2*a + 2*b;
ShowMessage(FloatToStr(Result)); // notification message here!
end;

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

function Notify(S: string): string;
begin
Result := '';
ShowMessage(S);
end;

// main script:

begin
Notify('Project #12');
end.

Упрощенная запись функции

До этого мы рассмотрели примеры, когда параметры, локальные переменные и результат самой функции имели определенный тип. Однако скриптовый движок ТехЭдитора допускает и упрощенную запись функции:

function Max(A, B);
begin
if A > B then
Result := A
else
Result := B;
end;

Как видите, в данном случае тип данных не указан (хотя подразумевается, что это числовой тип).

Мероприятия

К сожалению, в настоящий момент нет мероприятий.
Просмотреть все мероприятия

Простой калькулятор в TechEditor за 10 минут!

Ontario Building Code 2012 | Load combination (Free Application & Report Template)

Видеообзор версии 1.0

Новые статьи

Dystlab™ — Project for Engineers

Dystlab™. Все права защищены.

Адрес офиса в Канаде: 223-2275 Lake Shore Boulevard West, Toronto, ON, M8V 3Y3

Адрес офиса в Украине: 76006, г. Ивано-Франковск, ул. Ивана Миколайчука 17/97

E-mail:
technot needed texteditoranother not needed text@dystlabdummy text.store

Telegram:
https://t.me/techeditor

Dystlab™ — торговая марка, зарегистрированная в Государственном реестре свидетельств Украины на знаки для товаров и услуг 26.02.2018, свидетельство № 238304. Владелец: физическое лицо-предприниматель Артемов В. Е., ЕГРПОУ/ИНН: 3003314690.

Всё самое интересное о TechEditor — в Твиттере. Присоединяйся!

TechEditor Twitter