Сложный тип данных – записи
Представьте себе, что нам нужно обрабатывать данные: Дата рождения: день, месяц, год Адрес: город, улица, дом, квартира,
Записи - сложный структурированный тип данных, состоящий из фиксированного числа компонент, которые могут быть разного типа.
Объявление записи 1 способ – в разделе описания - в подразделе описания типов type <имя типа>=record <список полей> end;
Объявление записи 2 способ – в разделе описания - в подразделе описания переменных var n:record fam:string[25]; gr:integer end;
Поле записи рассматривается как обычная переменная некоторого типа. Чтобы обратиться к некоторому полю записи, мы должны
Одну запись можно присваивать другой целиком, если они одного типа: type data=record day:1..31; month:1..12; year: integer;
Над переменными типа запись могут выполняться операции отношения = и <> (не равно)
Правила использования записей: 1) поле записи не может иметь файловый тип; 2) имена компонент (полей) одной записи могут
3) записи могут быть составными: поле одной записи может в свою очередь являться записью другого типа; type datr = record day,
4) записи могут быть компонентами массива. type datr = record day, month, y: integer end; anketa=record fam: string; dr:datr
Оператор присоединения with Так для обращения к полям записи используются составные имена, то при этом могут получаться очень
type datr = record day, month, y: integer end; anketa=record fam: string; dr:datr end; arr=array [1..20] of anketa; var n: arr;
Оператор присоединения with Так для обращения к полям записи используются составные имена, то при этом могут получаться очень
Если задан оператор with R do S, то R не должно содержать никакой переменной, изменяемой в операторе with. with n[i] do begin
Пример: var Х: record A: record B: record C: real; D: integer; end; E: integer; end; F: real end; Здесь C и D - поля записи B.
Пример: var Х: record A: record B: record C: real; D: integer; end; E: integer; end; F: real end; Здесь C и D - поля записи B.
Пример: var Х: record A: record B: record C: real; D: integer; end; E: integer; end; F: real end; Здесь C и D - поля записи B.
Пример: var Х: record A: record B: record C: real; D: integer; end; E: integer; end; F: real end; Здесь C и D - поля записи B.
Пример: var Х: record A: record B: record C: real; D: integer; end; E: integer; end; F: real end; Здесь C и D - поля записи B.
Пример: var Х: record A: record B: record C: real; D: integer; end; E: integer; end; F: real end; Здесь C и D - поля записи B.
Использование записей (лабораторная работа № 2)
Использование записей
86.71K
Категория: ПрограммированиеПрограммирование

4_записи

1. Сложный тип данных – записи

1

2. Представьте себе, что нам нужно обрабатывать данные: Дата рождения: день, месяц, год Адрес: город, улица, дом, квартира,

которые имеют разный тип:
город – string, дом – integer, но
логически связаны в одно целое.
Для представления данных такого вида
в Паскале используются записи.
2

3. Записи - сложный структурированный тип данных, состоящий из фиксированного числа компонент, которые могут быть разного типа.

Запись отличается от массива прежде всего
тем, что массив состоит из компонент одного
типа, записи же содержат компоненты разных
типов.
Компоненты записи называются полями.
3

4. Объявление записи 1 способ – в разделе описания - в подразделе описания типов type <имя типа>=record <список полей> end;

Объявление записи
1 способ – в разделе описания - в подразделе описания
типов
type
<имя типа>=record <список полей> end;
<список полей> поля отделяются друг от друга ;
<имя поля>: <тип поля>
type
anketa=record
fam:string[25];
gr:integer
end;
record end – ключевые слова
fam и gr – поля записи
var n: anketa;
запись с полями: fam и gr
4

5. Объявление записи 2 способ – в разделе описания - в подразделе описания переменных var n:record fam:string[25]; gr:integer end;

record end – ключевые слова
fam и gr – поля записи
1 способ объявления используется, если переменная
типа запись является формальным параметром
подпрограммы
5

6. Поле записи рассматривается как обычная переменная некоторого типа. Чтобы обратиться к некоторому полю записи, мы должны

написать имя переменной типа
запись, поставить . и имя нужного поля.
var
n:record
fam:string[25];
gr:integer
end;
begin
n.fam:=‘Иванов’;
n.gr:=2002;
6

7. Одну запись можно присваивать другой целиком, если они одного типа: type data=record day:1..31; month:1..12; year: integer;

end;
var d1, d2: datа;
begin
...
d1:=d2; (оператор присваивания)
Это эквивалентно:
d1.day:=d2.day;
d1.month:= d2.month;
d1.year:= d2.year;
7

8. Над переменными типа запись могут выполняться операции отношения = и <> (не равно)

Над переменными типа
запись могут выполняться
операции отношения = и <>
(не равно)
8

9. Правила использования записей: 1) поле записи не может иметь файловый тип; 2) имена компонент (полей) одной записи могут

совпадать с
именами полей записей других типов;
type
wife=record
name, firstname: string;
end;
husband=record
name, firstname: string;
voz: integer;
end.
var
w: wife;
h: husband;
begin
w.name:=‘Ольга’;
h.name:=‘Олег’;
9

10. 3) записи могут быть составными: поле одной записи может в свою очередь являться записью другого типа; type datr = record day,

month, y: integer
end;
anketa=record
fam: string;
dr:datr
end;
var
n: anketa;
begin
n.fam:=‘Иванов’;
n.dr.day:=31;
n.dr.month:=3;
n.dr.y:=2002;
10

11. 4) записи могут быть компонентами массива. type datr = record day, month, y: integer end; anketa=record fam: string; dr:datr

end;
arr=array [1..20] of anketa;
var
n: arr;
begin
n[1].fam:=‘Иванов’;
n[1].dr.day:=31;
n[1].dr.month:=3;
n[1].dr.y:=2002;
11

12. Оператор присоединения with Так для обращения к полям записи используются составные имена, то при этом могут получаться очень

длинные
имена. Для сокращения используется
оператор присоединения with.
with <переменная> do <оператор>;
12

13. type datr = record day, month, y: integer end; anketa=record fam: string; dr:datr end; arr=array [1..20] of anketa; var n: arr;

begin
with n[1] do begin
n[1].fam:=‘Иванов’;
fam:=‘Иванов’;
n[1].dr.day:=31;
dr.day:=31;
n[1].dr.month:=3;
dr.month:=3;
n[1].dr.y:=2002;
dr.y:=2002;
end;
13

14. Оператор присоединения with Так для обращения к полям записи используются составные имена, то при этом могут получаться очень

длинные
имена. Для сокращения используется
оператор присоединения with.
with <переменная> do <оператор>;
14

15. Если задан оператор with R do S, то R не должно содержать никакой переменной, изменяемой в операторе with. with n[i] do begin

...
i:=i+1;
...
end;
15

16. Пример: var Х: record A: record B: record C: real; D: integer; end; E: integer; end; F: real end; Здесь C и D - поля записи B.

B и E – поля записи A;
A и F – поля записи X.
Обращение к полю С
16

17. Пример: var Х: record A: record B: record C: real; D: integer; end; E: integer; end; F: real end; Здесь C и D - поля записи B.

Пример:
Обращение к полю С
var
X.A.B.C:=3.1;
Х: record
Обращение к полю D
A: record
B: record
C: real;
D: integer;
end;
E: integer;
end;
F: real
end;
Здесь C и D - поля записи B.
B и E – поля записи A;
A и F – поля записи X.
17

18. Пример: var Х: record A: record B: record C: real; D: integer; end; E: integer; end; F: real end; Здесь C и D - поля записи B.

Пример:
Обращение к полю С
var
X.A.B.C:=3.1;
Х: record
Обращение к полю D
A: record
X.A.B.D:=3;
B: record
Обращение к полю E
C: real;
D: integer;
end;
E: integer;
end;
F: real
end;
Здесь C и D - поля записи B.
B и E – поля записи A;
A и F – поля записи X.
18

19. Пример: var Х: record A: record B: record C: real; D: integer; end; E: integer; end; F: real end; Здесь C и D - поля записи B.

Пример:
Обращение к полю С
var
X.A.B.C:=3.1;
Х: record
Обращение к полю D
A: record
X.A.B.D:=3;
B: record
Обращение к полю E
C: real;
X.A.E:=5;
D: integer;
Обращение к полю F
end;
E: integer;
end;
F: real
end;
Здесь C и D - поля записи B.
B и E – поля записи A;
A и F – поля записи X.
19

20. Пример: var Х: record A: record B: record C: real; D: integer; end; E: integer; end; F: real end; Здесь C и D - поля записи B.

Пример:
Обращение к полю С
var
X.A.B.C:=3.1;
Х: record
Обращение к полю D
A: record
X.A.B.D:=3;
B: record
Обращение к полю E
C: real;
X.A.E:=5;
D: integer;
Обращение к полю F
end;
X.F:=5.1;
E: integer;
end;
F: real
end;
Здесь C и D - поля записи B.
B и E – поля записи A;
A и F – поля записи X.
20

21. Пример: var Х: record A: record B: record C: real; D: integer; end; E: integer; end; F: real end; Здесь C и D - поля записи B.

B и E – поля записи A;
A и F – поля записи X.
Обращение к полю С
X.A.B.C:=3.1;
или
with X, A, B do
C:=3.1;
Если мы хотим
оперировать с полями
двух (или более) записей
без составных имен, то
после with можно
перечислять через
запятую имена этих
разных записей.
21

22. Использование записей (лабораторная работа № 2)

22

23. Использование записей

23
English     Русский Правила