IPB
ЛогинПароль:

> Внимание! Действует предмодерация

Подраздел FAQ (ЧАВО, ЧАстые ВОпросы) предназначен для размещения готовых рабочих программ, реализаций алгоритмов. Это нечто вроде справочника, он наполнялся в течение 2000х годов. Ваши вопросы, особенно просьбы решить задачу, не пройдут предмодерацию. Те, кто наполнял раздел, уже не заходят на форум, а с теми, кто на форуме сейчас, лучше начинать общение в других разделах. В частности, решение задач — здесь.

 
 Ответить  Открыть новую тему 
> Записи. Record., Работа с типом Record.
сообщение
Сообщение #1


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Записи, тип 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.



Теперь рассмотрим более сложную конструкцию - массив записей. Напишем небольшую базу данных, которая будет хранить информацию о студентах группы. Операции ввода/вывода будут происходить с файлом.

Информация будет добавлена на днях smile.gif

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Как отсортировать массив записей по одному из параметров ?

Имеем массив записей : имя и возраст, отсортируем массив по возрасту и выведем его на экран.

Информация будет добавлена на днях smile.gif

Еще один пример, by Romtek

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Важно !


Сортировка массива записей по любому из параметров by Volvo


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 6.04.2025 0:16
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name