Комбинированный тип данных
СОДЕРЖАНИЕ:
- Комбинированный тип. Записи
- Описание записей
- Операции с записями
- Оператор With
- Пример программы с использованием записи
- Работа с файлами записей*
Комбинированный тип. Записи
Все структурированные типы данных, с которыми мы уже познакомились, представляют собой совокупности однотипных величин. Но программирование часто используют для моделирования каких-либо объектов или явлений. Для того чтобы смоделировать объект, необходимо указать его характеристики. Так, например, 1) объект окружность имеет следующие характеристики: координаты центра, радиус; 2) объект преподаватель имеет характеристики: фамилия, имя, отчество, название предмета, который он преподает, номер группы, у которой он ведет свой предмет.
Указывать характеристики (свойства) объектов в программе гораздо удобнее, если все свойства одного объекта объединить в одну группу. Для этого в Паскале существует такой тип как записи. Запись – комбинация объектов разного типа. Составляющие запись характеристики называются полями. В записи каждое поле имеет свой идентификатор (имя). Так, например, полями для типа круг будут x, y, R.
Таким образом, комбинированный тип данных (запись) – это структурированный тип, состоящий из фиксированного числа компонент (полей) разного типа.
Описание записей
Описание комбинированного типа представляет собой список описаний его элементов (полей). Описание записи выглядит следующим образом:
Type <имя типа> = Record <имя поля1> : <тип поля1>; <имя поля2> : <тип поля2>; End;
Здесь Record и End — служебные слова.
Поля могут иметь любой тип, в том числе они могут быть массивом или записью. В разделе описания переменных можно описать переменные этого типа.
Пример:
Type Round = Record x, y : Real; R : Real; End; Var Circle1, Circle2 : Round; Krugi : Array[1..5] Of Round;
Операции с записями
Переменной типа запись можно присвоить только значение переменной такого же типа, т.е.
Circle1:= Circle2; Circle2:= Krugi[1]; Krugi[5]:= Krugi[3];
(см. Описание записей)
К каждому элементу записи можно обратиться, используя составное имя, которое имеет следующую структуру:
<имя переменной> . <имя поля>
Пример:
Circle1.x := 5; Circle1.y := 8; Circle1.R := 2; Read(Krugi[i].R); Writeln(Krugi[i].x); и т.д.
Оператор With
Легко заметить, что постоянно указывать имя записи – не очень удобно. Чтобы облегчить работу программиста, существует оператор присоединения With. Общий вид оператора With:
With <имя переменной> Do <оператор>;
В качестве оператора используется любой простой или составной оператор. В операторе имя записи указывать не обязательно, достаточно указать имя поля.
Пример: часть программы
Circle1.x := 5; Circle1.y := 8; Circle1.R := 2; может выглядеть следующим образом: With Circle1 Do Begin x := 5; y := 8; R := 2; End;
Пример программы с использованием записи
Пример: сформировать список записей, содержащих информацию о десяти студентах (фамилия, номер группы, 5 оценок за последнюю сессию). Вывести фамилии студентов имеющих средний балл => 4.
Type student = record name: string[10]; group: integer; ball: array[1..5] of 2..5; {массив, содержащий оценки} srednball: real; {средний балл} End; Var st: array[1..10] of student; i, j, d: integer; Begin For i:=1 To 10 Do Begin WriteLln (?Введите фамилию студента?); ReadLn (st [i].name); WriteLln (? Введите номер его группы?); ReadLn (st [i]. group); WriteLln (? Введите ?); For i:=1 To 5 Do ReadLn (st [i].ball[j]); d:=0; For i:=1 To 5 Do d:= d + st [i].ball[j]; st [i].srednball := d /5; End; For i:=1 To 10 Do If st [i].srednball >= 4 Then WriteLln (st [i].name) End.
Работа с файлами записей*
Чаще всего записи используются как элементы файлов, составляющих компьютерные информационные системы. Пример программы см. на стр. 132-133 учебника И.Г. Семакин, А.П. Шестаков «Основы программирования».
- Прямой доступ к записям файла*
В стандарте языка Паскаль допустим только последовательный доступ к элементам файла. Одной из дополнительных возможностей, реализованных в Турбо Паскале, является прямой доступ к записям файла.
Т. к. элементы файла пронумерованы в порядке их занесения в файл, начиная с нуля, то, задав номер элемента файла, можно непосредственно установить на него указатель. После этого можно читать или перезаписывать данный элемент. Установка указателя на нужный элемент производится процедурой:
Seek (FV, n)
Здесь FV — имя файловой переменной, n — порядковый номер.
Пример программы см. на стр. 133-134 учебника И.Г. Семакин, А.П. Шестаков «Основы программирования».
Контрольные вопросы
- Понятие записи в Паскале.
- Что называют комбинированным типом данных?
- Как описывается комбинированный тип данных?
- Назовите основные типы операций работы с записями.
- С помощью какой процедуры производится прямой доступ к записям файла?