Урок 49 - Структурные типы данных, часть (2/2)

   В этом уроке мы продолжаем изучать структуры и рассмотрим Множества и Записи.
  Записи очень важный и удобный инструмент. Даже не применяя специальные технологии, с его помощью можно создавать собственные базы данных. Записи - это структура данных, каждый элемент которой имеет собственное имя и тип данных. Элемент записи иначе называют поле. Описание записи имеет вид:

type 
	имя_типа_записи = record
		название_поля : тип_поля ;
		. . .
		название_поля : тип_поля ;
	end;
Названия полей, имеющих одинаковый тип, можно, как и в случае описания переменных, указывать в одну строку через запятую. Для обращения к полю записи сначала указывают имя записи, затем точку, затем имя поля. Например, данные о персонале предприятия могут быть организованы таким типом записи:

type 
	TPers = record
		Fam, Name, Par : String;
		Year : Integer;
		Dep : String;
		end;
	var Pers : TPers;
		begin
		Pers.Fam:='Иванов';
		Pers.Name:='Иван';
		Pers.Par:='Иванович';
		Pers.Year:=1966;
		Pers.Dep:='Цех №1';
end;
Теперь осталось записать эти данные в файл, предварительно объявив и его тип как TPers, и база данных готова. С файлом в Delphi также ассоциируется переменная, называемая файловой переменной, которая описывается так:
	VFile : file of тип_файла;
В качестве типа может использоваться любой ограниченный тип Delphi. При этом не допускается тип String, так как он допускает переменный размер до 2 ГБайт. Его необходимо ограничивать: String[N], где N - количество символов. Тип TPers из предыдущего примера должен быть описан, например, так:
type 
	TPers = record
		Fam, Name, Par : String[20];
		Year : Integer;
		Dep : String[10];
	end;
Теперь переменная такого типа занимает строго определённое место в памяти, и может быть записана в файл.

  Множество - это группа элементов, объединённая под одним именем, и с которой можно сравнивать другие величины, чтобы определить, принадлежат ли они этому множеству. Количество элементов в одном множестве не может превышать 256. Множество описывается так:
type
	имя_множества = set of диапазон_значений_множества ;
В качестве диапазона может указываться любой тип, количество элементов в котором не больше 256. Например:
type 
	TMySet = set of  0 .. 255;
type
	TMySet = set of Byte;
Конкретные значения множества задаются в программе с помощью перечисления элементов, заключённых в квадратные скобки. Допускается использовать и диапазоны:
var
	MySet : TMySet;
begin
	MySet:=[1, 3 .. 7, 9];
end;
Чтобы проверить, является ли некое значение элементом множества, применяется оператор in в сочетании с условным оператором:
var 
	Key : Char;
	Str: String;
begin
	if Key in [?0? .. ?9?, ?+?, ?-?] then Str:=?Math?;
end;
   Чтобы добавить элемент во множество, используется операция сложения, удалить - вычитания:

var Digit: set of Char=[?1?..?9?];
var Math: Set of Char;
begin
	Math:=Digit+[?+?, ?-?, DecimalSeparator*];
end;
*Примечание: DecimalSeparator - встроенная в Delphi константа типа Char, имеющая значение символа-разделителя целой и дробной частей, который может быть равен точке ('.') либо запятой (','), в зависимости от текущих настроек Windows.

Удачи!
Встретимся в следующем уроке!




Добавил(а): Xameleon Дата: 2014-04-27


  1. Romasha
    Romasha a year ago
    O my god. Hell no.
Отменить.