- •Обработка данных сложной структуры в Объектном Паскале. Тип запись
- •КЛАССИФИКАЦИЯ ДАННЫХ ПО ТИПУ
- •КЛАССИФИКАЦИЯ ДАННЫХ ПО ТИПУ
- •КЛАССИФИКАЦИЯ ДАННЫХ ПО СТРУКТУРЕ
- •Типы данных в Паскале
- •Тип запись
- •Сравнение двух типов: массив и запись
- •Описание типа запись
- •Примеры описания записей
- •Обращение к полю записи
- •Обращение к полю записи – оператор With …do
- •Обработка данных сложной структуры: что лучше использовать – строки или записи?
Обработка данных сложной структуры в Объектном Паскале. Тип запись
лекция №14
КЛАССИФИКАЦИЯ ДАННЫХ ПО ТИПУ
ТИП ДАННЫХ ХАРАКТЕРИЗУЕТ СПОСОБ (ФОРМУ) ПРЕДСТАВЛЕНИЯ ДАННЫХ В ПАМЯТИ КОМПЬЮТЕРА.
ТИП - ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ ДАННЫХ.
КЛАССИФИКАЦИЯ ДАННЫХ ПО ТИПУ
ДАННЫЕ ГРАФИЧЕСКИЕ
ЧИСЛОВЫЕ |
|
СИМВОЛЬНЫЕ |
|
ЛОГИЧЕСКИЕ |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ЦЕЛЫЕ
(С ФИКСИРОВАННОЙ ТОЧКОЙ)
ВЕЩЕСТВЕННЫЕ
(С ПЛАВАЮЩЕЙ ТОЧКОЙ)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Четырехбайтовые |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|||
БЕЗ ЗНАКА |
|
СО ЗНАКОМ |
|
||||||||||
|
|
|
|||||||||||
|
|
|
Шестибайтовые |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Однобайтовые |
|
|
Однобайтовые |
|
Восьмибайтовые |
|||||||
|
|
|
|
||||||||||
|
|
|
|
Десятибайтовые |
|||||||||
|
|
|
|||||||||||
|
Двухбайтовые |
|
|
Двухбайтовые |
|
||||||||
|
|
|
|
||||||||||
|
|
|
|
|
|
||||||||
|
Четырехбайтовые |
|
|
Четырехбайтовые |
|
|
|
||||||
|
|
|
|
|
|||||||||
|
Восьмибайтовые |
|
|
Восьмибайтовые |
|
|
|
||||||
|
|
|
|
|
КЛАССИФИКАЦИЯ ДАННЫХ ПО СТРУКТУРЕ
ДАННЫЕ
КОНСТАНТЫ ПЕРЕМЕННЫЕ
(защита от записи)
|
ДАННЫЕ |
несколько |
|
|
|
ПРОСТЫЕ |
СЛОЖНЫЕ |
ячеек |
1 ячейка |
МАССИВ СТРУКТУРА ... |
Типы данных в Паскале
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Указатель |
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Скалярные (простые) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
Сложные (составные) |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Стандартные |
|
|
|
|
Перечисление |
|
Массивы |
|
|
|
|
|
Файлы |
|
|
|
|
|
Строки |
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Записи |
|
|
Множества |
|
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
Целые |
|
|
|
Отрезок |
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
Вещественные |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
Символьные |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
Логический |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В паскале понятие «тип» заключает в себе и тип, и структуру.
Тип запись
•Запись - это переменная, состоящая из фиксированного числа компонент, вообще говоря, разного типа, причем каждая компонента имеет свое имя.
•Компоненты записи также называются полями записи.
•Записи используются для работы с данными, содержащими в себе информацию разного типа (числовую, символьную и т. д.); примеры таких документов: платежные ведомости (фамилии и имена - символьная информация, денежные суммы - числовая), карточки больных в поликлинике, библио течная информация.
Сравнение двух типов: массив и запись
•Компоненты массива имеют одинаковый тип; компоненты записи могут иметь разный тип (хотя могут быть и однотипны).
•Для обращения к элементу массива надо указать его номер (индекс), при обращении к полю записи указывается его имя.
Описание типа запись
TYPE имя_типа = RECORD
список_1_имен_полей: тип_1; список_2_имен_полей : тип_2;
.. .
список_N_имен_полей: тип_N;
END;
Память, занимаемая записью, равна сумме объемов памяти полей (если исключить из рассмотрения особенности, связанные с выравниванием). В любом случае для определения размера памяти записи можно использовать функцию sizeof(переменная_или_тип).
Примеры описания записей
TYPE COMPLEX=RECORD{значения переменныx этого типа - комплексные числа}
Re,Im:REAL {действительная и мнимая части} END;
DATE = RECORD {для описания дат (число, месяц, год)} Day : 1..31; {число}
Month = (January, February, March, April, May, June, July, August, September, October, November, December); {месяц}
Year : Integer; {год} END;
BOOK = RECORD {для описания книг в каталоге библиотеки} Author,Title,Publisher:String;
{автор, название, издательство} Year,Volume,Pages:Integer;
{год издания,том,количество страниц}
END;
Обращение к полю записи
Имя_записи.Имя_поля Пример.
VAR C:COMPLEX; D,D1:DATE; B:BOOK;
BEGIN . . . C.Re:=5; D.Month:=January; B.Author:='Smith';
{*} D1.Day:=6; D1.Month:=June; D1.Year:=1799; {*} . .