Структуры. Описание данных в виде максимально приближенных к их реальным аналогам. Например, чтобы организовать обработку данных по студентам, в программе удобно не просто описать десяток различных переменных, а объединить их в структуру (или запись) «студент», состоящего из полей разного типа «имя», «пол», «год рождения», «группа» и т.д. То есть сложные типы данных. В результате удается организовать структуры данных произвольной сложности: списки, деревья и т.п. Структура объединяет группу разных данных под одним названием. Получить доступ к отдельным составляющим (полям) этой структуры можно по их именам, т.е. имени структуры и имени поля через точку. Если происходит обращение к полю, которое само является структурой, то выделение нужного поля продолжается приписыванием справа имени вложенного поля через точку.
Синтаксис описания структуры
Basic
Pascal
C++
TYPE имя структуры
поле AS тип
…
END TYPE
type имя структуры = record
поле: тип;
…
end;
struct имя структуры
{ тип поле;
…
};
Пример:
Basic
Pascal
C++
TYPE Student
Name AS STRING
Sex AS INTEGER
BirthYear AS INTEGER
END TYPE
type Student = record
Name: string;
Sex: boolean;
BirthYear: integer
end;
struct Student
{ AnsiString Name;
bool Sex;
int BirthYear;
};
Доступ к содержимому структуры:
Student.BirthYear = 1980;
Массивы. Доступ к элементам структуры по имени ее составляющих. Для организации обработки больших объемах данных одного типа с сотнями и тысячами полей создавать структуру неразумно. Введено понятие массива, сложного типа данных, доступ к элементам которого происходит по их положению, по номеру или индексу. При описании массива обычно указывается его размер (число элементов) или верхняя и нижняя границы.
Синтаксис описания массива
Basic
DIM имя (число элементов) AS тип
Pascal
Имя = array [нижняя граница .. верхняя граница] of тип
C++
Тип имя [число элементов]
В Basic нижняя граница равна 1.
В C++ 0;
В Pascal она указывается явно.
Пример:
Basic
DIM IntArray (1000) AS INTEGER
Pascal
IntArray = array [1..1000] of integer
C++
int IntArray [1000]
Доступ к элементу массива осуществляется по его номеру. Этот номер указывается в круглых (для Basic), в квадратных [для Pascal и C++] - такое действие называется индексирование: