Слайд 1Обработка данных сложной структуры в Объектном Паскале. Тип запись
лекция №5
Слайд 2КЛАССИФИКАЦИЯ ДАННЫХ ПО ТИПУ
ТИП ДАННЫХ ХАРАКТЕРИЗУЕТ СПОСОБ (ФОРМУ) ПРЕДСТАВЛЕНИЯ ДАННЫХ
В ПАМЯТИ КОМПЬЮТЕРА.
ТИП - ВНУТРЕННЕЕ ПРЕДСТАВЛЕНИЕ ДАННЫХ.
Слайд 3КЛАССИФИКАЦИЯ ДАННЫХ ПО ТИПУ
ДАННЫЕ
ЧИСЛОВЫЕ
СИМВОЛЬНЫЕ
ЛОГИЧЕСКИЕ
ГРАФИЧЕСКИЕ
ЦЕЛЫЕ
(С ФИКСИРОВАННОЙ ТОЧКОЙ)
ВЕЩЕСТВЕННЫЕ
(С ПЛАВАЮЩЕЙ ТОЧКОЙ)
БЕЗ ЗНАКА
СО ЗНАКОМ
Слайд 4КЛАССИФИКАЦИЯ ДАННЫХ
ПО СТРУКТУРЕ
Слайд 5Типы данных в Паскале
В паскале понятие «тип» заключает в себе
и тип, и структуру.
Слайд 6Тип запись
Запись - это переменная, состоящая из фиксированного числа компонент,
вообще говоря, разного типа, причем каждая компонента имеет свое имя.
Компоненты записи также называются полями записи.
Записи используются для работы с данными, содержащими в себе информацию разного типа (числовую, символьную и т. д.); примеры таких документов: платежные ведомости (фамилии и имена - символьная информация, денежные суммы - числовая), карточки больных в поликлинике, библиотечная информация.
Слайд 7Сравнение двух типов: массив и запись
Компоненты массива имеют одинаковый
тип; компоненты записи могут иметь разный тип (хотя могут быть
и однотипны).
Для обращения к элементу массива надо указать его номер (индекс), при обращении к полю записи указывается его имя.
Слайд 8Описание типа запись
TYPE имя_типа = RECORD
список_1_имен_полей: тип_1;
список_2_имен_полей : тип_2;
. . .
список_N_имен_полей:
тип_N;
END;
Память, занимаемая записью, равна сумме объемов памяти полей (если исключить
из рассмотрения особенности, связанные с выравниванием). В любом случае для определения размера памяти записи можно использовать функцию sizeof(переменная_или_тип).
Слайд 9Примеры описания записей
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;
Слайд 10Обращение к полю записи
Имя_записи.Имя_поля
Пример.
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;{*} . .
Слайд 11Обращение к полю записи – оператор With …do
WITH Имя_записи DO
оператор
Оператор используется, чтобы не писать многократно имя записи при работе
с ее полями.
WITH D1 DO
BEGIN Day:=6; Month:=June; Year:=1799
END;{эквивалентно *…*}
простой или составной
Слайд 12Обработка данных сложной структуры: что лучше использовать – строки или
записи?
Программа, использующая запись, алгоритмически проще, чем программа со строками.
Платой
за упрощение является разрушение структуры таблицы при вводе: строка таблицы распределяется по нескольким строкам экрана монитора компьютера.