Записи Определение и правила записи
Определение: Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, каждое поле имеет свое имя (а, не номер, как элемент массива).
Объявление записи: Type Имя_типа = record Имя_поля1: Тип_поля1; Имя_поля2: Тип_поля2; … Имя_поляN: Тип_поляN; end; Var Имя_переменной: Имя_типа;
Обращение к значению поля: Значения полей записи могут использоваться в выражениях. Обращение к значению поля осуществляется с помощью имени переменной и имени поля, разделенных точкой. Такая комбинация называется составным именем. Составное имя можно использовать везде, где допустимо применение типа поля. Для присваивания полям значений используется оператор присваивания.
Использование операторов: Составные имена можно использовать в операторах ввода/вывода: Readln(m.number, m.marka,m.fio,m.adres); Write(m.number:4, m.marka:10,m.fio:13,m.adres:23); Нельзя использовать в операторах ввода/вывода запись целиком (как и массив): Writeln (m); {Ошибочная инструкция}
Массивы в записи: В ряде задач удобно пользоваться массивами из записей. Их можно описать, например, следующим образом: Type person=record fio:string[20]; age:1..99; prof:string[30]; end; Var list: array[1..50] of person;
Обращение к полям записи: Обращение к полям записи имеет несколько громоздкий вид. Для решения этой проблемы в языке Turbo Pascal имеется оператор with, в виде: With ПеременнаяТипаЗапись do Оператор; Один раз указав переменную типа запись в операторе with, можно работать с именами полей как с обычными переменными.
Например: With m do begin number:=1964; marka:=Audi-100; fio:=Петров И.И.; adres:=ул. Советская,5; end;
Применение записей: Записи часто используются при работе с динамическими структурами данных и для организации файлов записей на дисках. Применение записей может улучшить исходный текст программы, если в ней используются переменные, которые можно объединить в группы по какому-либо признаку. Например разумно использовать записи для описания комплексных чисел или координат точки на плоскости или в пространстве.
Например: Type complex=record re: real; {действительная часть} im: real; {мнимая часть} end; Var a,b,c:complex; Begin a.re:=6.8; a.im:=1.6; …
Применение записей Записи часто применяются для работы с датами(день, месяц, год) или отрезками времени (часы, минуты, секунды). В большинстве современных языков программирования есть специальные типы данных для работы с датой и временем, однако в Turbo Pascal все действия с датой и временем приходится программировать вручную.
Задача: Составить программу, которая организует ввод данных об учащихся: имя, фамилия, школа, класс и записывает их в массив записей, а затем выводит сведения об учащихся по номеру записи и по номеру класса.
Практическая работа: Составьте программу, которая описывает массив записей – телефонный справочник одноклассников – и обеспечивает ввод данных, поиск номера телефона по фамилии, подсчет и вывод списка всех абонентов по критерию «увлечение компьютерными играми». В записи о каждом однокласснике содержатся следующие сведения: фамилия, имя, телефон, хобби.
Домашнее задание: Учить материал.