В отличие от массива, структура – это совокупность объектов, имеющих различный тип.
Для создания структур нужно вначале с помощью табличных редакторов определить структурные типы, а также переменные, аргументы и функции, которые являются членами этих структурных типов.
Для справки: во внутреннем представлении языка Техно ST определение структурного типа задается следующей конструкцией:
type
{имя_структурного_типа} : STRUCT
//определения переменных –
//членов структуры
//(см. "Операторы определения
//переменных")
//определения функций –
//членов структуры
//(см. "Пользовательские функции
//Техно ST")
end_struct;
end_type
Параметр {имя_структурного_типа}, а также переменные и функции – члены структурного типа – задаются с помощью табличных редакторов.
Определив структурный тип, можно определять конкретные структуры данного типа (объекты). Такими объектами могут быть переменные или функции.
Объекты создаются с помощью табличных редакторов. Для этого в основной программе или ее компоненте создается переменная (функция) типа {имя_структурного_типа}.
Для обращения к элементам объекта используется так называемое уточненное имя:
{имя объекта}.{имя элемента}
В уточненном имени не поддерживается адресация к элементу массива объекта.
Пример
Пусть в программе создан структурный тип с именем myType, членами которого являются следующие переменные и функция:
mvar1: REAL:=3.14;
mvar2: STRING := "OK";
FUNCTION SecondDegree: LREAL
VAR_ARG xx: REAL; END_VAR
RETURN xx**2;
END_FUNCTION
Создание и использование объекта типа myType иллюстрирует следующий код:
PROGRAM
VAR
d: LREAL;
myS : myType; //объект myS типа myType
END_VAR
d=myS.SecondDegree(25);//возвращает 625
d=myS.mvar1; //возвращает 3.14
//изменение значения mvar1 объекта myS
myS.mvar1 = 10;
END_PROGRAM
Таким образом, структурный тип является только шаблоном структур. С именем типа не связан никакой конкретный объект, поэтому это имя нельзя использовать, например, для формирования уточненного имени элемента:
//ошибочная конструкция
myType.mvar1