Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, полный углублённый курс, по 4 часа в неделю)



Уроки 66 - 68
Структуры (записи)
(§39. Структуры (записи))




Содержание урока

Зачем нужны структуры?

Объявление структур

Обращение к полю структуры

Работа с файлами

Сортировка

Вопросы и задания

Задачи


Объявление структур


Как и любые переменные в Паскале, структуры необходимо объявлять. До этого мы работали с простыми типами данных (целыми, вещественными, логическими и символьными), а также с массивами этих типов. Вы знаете, что при объявлении переменных и массивов указывается их тип, поэтому для того, чтобы работать со структурами, нужно ввести новый тип данных.

Построим структуру, с помощью которой можно описать книгу в базе данных библиотеки. Будем хранить в структуре только 1:


1 Конечно, в реальной ситуации данных больше, но принцип не меняется.




• фамилию автора (строка не более 40 символов);
• название книги (строка не более 80 символов);
• имеющееся в библиотеке количество экземпляров (целое число).

Объявление такого составного типа имеет вид:

Объявления типов данных начинаются с ключевого слова type (в переводе с англ. — тип) и располагаются выше блока объявления переменных. Имя нового типа — TBook — это удобное сокращение от английских слов Type Book (тип книга), хотя можно было использовать и любое другое имя, составленное по правилам языка программирования. Слово record означает, что этот тип данных — структура (запись); далее перечисляются поля и указываются их типы. Объявление структуры заканчивается ключевым словом end.

Обратите внимание, что для строк author и title указан максимальный размер. Это сделано для того, чтобы точно определить, сколько места нужно выделить на них в памяти.

В результате такого объявления никаких структур в памяти не создаётся: мы просто описали новый тип данных, чтобы транслятор знал, что делать, если мы захотим его использовать.

Теперь можно использовать тип TBook так же, как и простые типы, для объявления переменных и массивов:

Здесь введена переменная В типа TBook и массив Books, состоящий из элементов того же типа.

Иногда бывает нужно определить размер одной структуры. Для этого используется стандартная функция sizeof, которой можно передать имя типа, а также переменную или массив:

Writeln(sizeof(TBook));
Writeln(sizeof(В));
Writeln(sizeof(Books));

Первые две команды выведут на экран размер одной структуры (124 байта), а последняя — размер выделенного массива из 100 структур. Размер структуры вызывает некоторые вопросы: каждый элемент строки занимает 1 байт, а целое число — 2 байта, поэтому простой подсчёт дает значение 40 + 80 + 2 = 122. Откуда появились ещё 2 байта? Дело в том, что строка author из 40 символов фактически занимает 41 байт, а строковое поле title — 81 байт: 1 дополнительный байт расходуется на хранение фактического размера строки.

Следующая страница Обращение к полю структуры



Cкачать материалы урока






Наверх