Pascal. Записи

Слайд 2

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

Определение записи

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

числа компонент (полей) разного типа.

var <имя_записи> = record
<имя_поля_1>:<тип_поля_1>;
<имя_поля_2>:<тип_поля_2>;
...
<имя_поля_k>:<тип_поля_k>;
end;

Рис. 1 – Общее описание записи

type date = record
day : 1..31;
month : 1..12;
year : integer
end;
var d : date;

Рис. 2 – Объявление записи для работы с датами

Слайд 3

Пример Рис. 3 – Информационная структура анкетных данных студента вуза type

Пример

Рис. 3 – Информационная структура анкетных данных студента вуза

type profile =

record
name : string[60]; //ФИО
gender : char;
dateBirth : string[8];
address : string[50];
cource : 1..5;
group : string[3];
end;
var stud1, stud2 : profile;

Рис. 4 – Запись с анкетными данными студента

Слайд 4

Обращение к полям записи . Рис. 5 – Общая форма обращения

Обращение к полям записи

<имя_записи>.<имя_поля>

Рис. 5 – Общая форма обращения к полям

записи

type profile = record
name : string[60]; //ФИО
gender : char;
dateBirth : string[8];
address : string[50];
course : 1..5;
group : string[3];
end;
var stud1, stud2 : profile;
begin
stud1.name := 'Иванов М. А.';
stud1.course := 2;
stud2.name := 'Петров И. А.';
stud2.course := 1;
writeln(concat(stud1.name, ' курс = '), stud1.course);
writeln(concat(stud2.name, ' курс = '), stud2.course)
end.

Рис. 6 – Пример

Слайд 5

Запись как компонента других структур Рис. 7 – Пример const m

Запись как компонента других структур

Рис. 7 – Пример

const m = 100;
type

profile = record
name : string[60]; //ФИО
gender : char;
dateBirth : string[8];
address : string[50];
course : 1..5;
group : string[3];
end;
var student : array[1..m] of profile;
count : integer;
procedure dataInput;
var i : integer;
begin
for i := 1 to count do
begin
writeln('ведите ФИО студента:');
readln(student[i].name);
writeln('Введите курс:');
readln(student[i].course);
writeln('Введите группу студента:');
readln(student[i].group)
end
end;
procedure dataOutput;
var i : integer;
begin
for i := 1 to count do
writeln('ФИО: ', student[i].name, ' Курс: ', student[i].course, ' Группа: ', student[i].group)
end;


procedure dataOutput(course : integer);
var i : integer;
begin
for i := 1 to count do
if student[i].course = 3 then
writeln(student[i].name)
end;
begin
writeln('Введите количество студентов:');
readln(count);
//ввод данных
dataInput;
//вывод данных всех студентов на экран
dataOutput;
writeln;
//вывод ФИО студентов 3 курса
dataOutput(3)
end.

Слайд 6

Оператор with type date = record day : 1..31; month :

Оператор with

type date = record
day : 1..31;
month : 1..12;

year : integer
end;
var myBirthday : date;
begin
myBirthday.day := 11;
myBirthday.month := 12;
myBirthday.year := 1990;
writeln(myBirthday.day);
writeln(myBirthday.month);
writeln(myBirthday.year)
end.

type date = record
day : 1..31;
month : 1..12;
year : integer
end;
var myBirthday : date;
begin
with myBirthday do
begin
day := 11;
month := 12;
year := 1990;
writeln(day);
writeln(month);
writeln(year)
end
end.

Рис. 8 – Пример на работу с полями записи

Рис. 9 – Пример на работу с полями записи без постоянного префикса с помощью оператора with