Sign in Join
Wiki copytemporary

Record/ru: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Record/ru

OldNewLine
1+Структурный [[Type/ru|тип]] данных в [[Pascal]] .
2+
3+В то время как простые структуры данных, такие как [[Array/ru|массивы]] или [[Set/ru|множества]] состоят из элементов одного типа, запись (**record**) может состоять из нескольких элементов различных типов. Каждая отдельная часть записи называется полем.
4+
5+Примеры записей:
6+
7+``` pascal
8+type
9+ ExampleRecord = record
10+ Values: array[1..200] of Real;
11+ NumValues: Integer;
12+ Average: Real;
13+ end;
14+
15+ Member = record
16+ Firstname, Surname: string;
17+ Address: array[1..3] of string;
18+ Phone: Integer;
19+ Birthdate: TDateTime;
20+ PaidCurrentSubscription: Boolean;
21+ end;
22+```
23+
24+Запись обрабатывается программой как одно целое, и записи могут быть скопированы таким образом:
25+
26+``` pascal
27+var
28+ a, b: Member;
29+begin
30+ { Заполнение полей записи a }
31+ ...
32+ ...
33+ b := a;
34+end;
35+```
36+
37+Доступ к полям записи осуществляется через точку после имени переменной. Например:
38+
39+``` pascal
40+ a.firstname := 'George';
41+ a.surname := 'Petersen';
42+ a.phone := 789534;
43+ a.PaidCurrentSubscription := True;
44+```
45+
46+C использованием ключевого слова with, к полям записи можно обращаться без указания переменной каждый раз с названием поля.
47+
48+``` pascal
49+ with a do
50+ begin
51+ firstname := 'George';
52+ surname := 'Petersen';
53+ phone := 789534;
54+ PaidCurrentSubscription := True;
55+ end;
56+```
57+
58+---
59+*From the Free Pascal wiki, page "Record/ru", as it stood on 2020-02-25 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history