Записи.
Записи - это структурированный тип данных, позволяющих хранить вместе различные типы данных.
Запись состоит из нескольких полей, для каждого из которых при объявлении (описании) указывается имя и тип.
type
student = record;
surname: string[20];
name: string [10];
fathername: string [10];
year: integer;
end;
var
st: student;
Данная переменная st - есть тип record (запись). Состоит из 4-х полей.
Каждое поле хранит информацию разного типа. При обращении к отдельным полям указывается имя всей записи и имя отдельного поля через '.'.
st. surname:= 'Иванов';
st. year:=1905;
Для уменьшения идентификатора обращения к отдельным полям используют оператор:
WITH … DO.
with st do
begin
surname:= 'Иванов';
name:='Иван';
year:= 1905;
end;
Если при переменной student - типа record объявить
var
st: array [1…25] of student;
то имеем массив, состоящий из записей, каждое поле которого содержит определенную информацию.
st [1]. surname:='Иванов';
Задача: сформировать массив, содержащий, информацию о студентах (Ф.И.О., год рождения). Распечатать фамилии тех, которым исполнилось в 1998 году 18 лет.
Program student;
type
stud=record;
s, n: string [20]; - одинаковые типы можно объединить при описании.
y: integer;
end;
var
st: array [1…20] of stud;
i, k: integer;
begin
writeln ('Введите количество студентов в группе');
readln (k);
for i:=1 to k do
with st[i] do
Ввод информации о каждом студенте:
begin
writeln ('фамилия'); readln(s);
writeln ('имя'); readln(n);
writeln ('год рождения'); readln(y);
end;
for i:=1 to k do (см. *)
with st[i] do
if 1998 - y = 18 then
writeln (s);
end.
P.s без with st [i] do
if 1998 - st[i].y = 18 then writeln (st[i].s);
* Вэтой же задаче: распечатать Ф.И.О. студентов на букву 'А'.
for i:1 to k
if st[i].s[1] = 'A' then writeln (st[i].s, st[i].n, st[i].y)
номер номер
записи символа
(№ студента). в фамилии.
Файлы.
У понятия файл есть две стороны.
Файл - это поименованный набор информации, хранящейся на каком-либо носителе информации.
Файл - это одна из структур данных.
File of byte
байт |
байт |
|
… |
байт |
Eof |
File of char
-
Код симв.
Код симв.
…
Код симв.
Eof
File of t
где t = record
a: byte;
b: char;
c: integer;
end;
байт |
Код симв. |
Целое со знаком |
… |
байт |
Код симв. |
Целое со знаком |
Eof |
З А П И С Ь
Структура файла очень похожа на структуру массива. Однако, у массива количество элементов заранее фиксируется (при описании) и он целиком располагается в оперативной памяти.
У файла количество элементов в процессе работы программы может измениться и он располагается на внешних носителях информации. Нумерация элементов файла выполняется слева направо начиная от нуля.
В конце файла располагается признак конца файла - eof - символ с кодом 26 (ctrl/z).