![]() |
![]() ![]() |
![]() |
klem4 |
![]()
Сообщение
#1
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Записи, тип Record
Для компактного представления комбинаций разнотипных данных их можно объеденять в специальные структуры - записи. Каждая запись состоит из объявленного числа полей, конструкция записи имеет следующий вид :
record
Поле1 : ТипПоля1;
Поле2 : ТипПоля2;
...
ПолеN : ТипПоляN;
end;
Если типы нескольких полей совпадают, то они могут быть перечислены просто через запятую, например : Type
T3DPoint = record
x, y, z : single;
end;
var
Point : T3DPoint;
Теперь к каждому полю записи, можно обратиться следующим образом : сначала идентификатор переменной - записи, далее через точку имя нужного поля
Point.x := 10.11; // присвоить полю с именем Х переменной Point некое значение
Point.y := point.x;
writeln(Point.y); // вывести на экран значение, которое хранит поле Y переменной Point
Независимо от количества объявленных переменных данного типа, поля каждой из них будут называться одинаково, как они были названы в описании типа, поскольку поля записи скрыты внутри типа, они могут дублироваться внешними переменными и полями других типов, например type
TRec1 = record
x,y : integer;
end;
TRec2 = record
x,y : integer;
color : byte;
end;
var
a : TRec1;
b : TRec2;
x,y : integer;
(*
В данном случае a.x, b.x и x - совершенно разные переменные, и будут хранить те значения, которые вы им присвоите.
*)
Тип поля записи может быть практически любым - массив, множество и даже другая запись. Существует еще один способ обращения к полям записи - при помощи оператора with : Type
TRec = record x,y : integer; end;
var
Point : TRec;
begin
with Point do begin
x := 5; // равнозначно point.x := 5;
y := 7; // ... point.y := 7;
end;
// то же самое и с выводом
with point do begin
writeln('Point.X = ',x); // writeln(Point.x);
writeln('Point.Y = ',y); // writeln(Point.Y);
end;
end.
Теперь рассмотрим более сложную конструкцию - массив записей. Напишем небольшую базу данных, которая будет хранить информацию о студентах группы. Операции ввода/вывода будут происходить с файлом. Информация будет добавлена на днях ![]() Сообщение отредактировано: klem4 - 30.05.2007 23:19 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Как отсортировать массив записей по одному из параметров ?
Имеем массив записей : имя и возраст, отсортируем массив по возрасту и выведем его на экран. Информация будет добавлена на днях ![]() Еще один пример, by Romtek Сообщение отредактировано: klem4 - 30.05.2007 23:19 -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
klem4 |
![]()
Сообщение
#3
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 23:27 |