Студопедия — Тип запись. Массивы записей
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Тип запись. Массивы записей






При выполнении работы необходимо знать:

  • Что такое тип запись
  • Как правильно объявить тип запись и переменные типа запись
  • Как обращаться к полям записи
  • Как организовать работу с массивом записей

 

Теоретический минимум:

Тип запись представляет собой сложный (структурированный) тип данных и включает в себя ряд компонент, называемых полями, которые могут быть различных типов. При задании типа записи после зарезервированного слова Record следует указать все поля типа записи и завершить задание типа словом End; Поля отделяются друг от друга точкой с запятой. Количество полей записи может быть любым.

 

Пример объявления типа запись:

Type

Data=record {название типа запись Data (дата) }

Year: integer; {поле год имеет целый тип}

Month: 1..12; {поле месяц имеет тип диапазон от 1 до 12}

Day: 1..31; {поле день имеет тип диапазон от 1 до 31}

End; {конец описания типа запись}

Если несколько полей типа запись имеют один и тот же тип, то их имена можно перечислить через запятую и затем после двоеточия указать этот общий тип:

 

Type

Person=record {название типа запись Person (персона) }

Name, Family: string [20]; {поля имя, фамилия человека имеют строковый тип}

Sex: (Men, Women); {поле пол имеет перечисляемый тип мужчина, женщина}

Age: Byte; {поле возраст имеет целый тип Byte}

Married: Boolean; {поле семейное положение имеет логический тип}

End; {конец описания типа запись}

После введения типа записи можно затем задать переменные или типизированные константы этого типа.

При задании значений константе ее поля записываются в круглых скобках через точку с запятой. Для задания значения каждого поля сначала указывается имя поля, а затем через двоеточие – его значение. Так, для описанных выше типов можно задать, например, следующие константы и переменные:

 

Пример описания констант и переменных типа запись:

Const

Birthday: Data = (Year: 1971; Month: 9; Day: 24);

Ivanov: Person = (Name: ’Михаил’; Family: ‘Иванов’; Sex: Men; Age: 42; Married: True);

Var

D1, D2, D3: Data; {переменные типа запись Data}

Per1, Per2: Person; {переменные типа запись Person}

 

Доступ к полям записи осуществляется с указанием имени переменной (константы) и имени поля, записываемого через точку, например:

Ivanov.Age, Per1.Name, D1.Year, D1.Month, D1.Day и так далее.

Пример использования полей записи:

Per1.Name: =’Виталий’;

Per1.Family: =’Кротов’;

Per1.Sex: =Men;

Per1.Age: =26;

Per1.Married: =False;

 

Для того, чтобы не вписывать каждый раз имя записи при обращении к ее полям, можно использовать оператор над записями With. Его структура выглядит следующим образом:

With < имя записи> do < оператор>

В этом случае внутри оператора можно указывать только поле записи, так как имя записи уже названо:

 

Пример использования оператора над записями With:

With Per1 do begin

Name: =’Виталий’;

Family: =’Кротов’;

Sex: =Men;

Age: =26;

Married: =False;

End;

Большие группы разнородных данных можно организовать в виде массива записей. Например, используя тип запись Person (персона) объявить одномерный массив из нескольких записей, для того, чтобы хранить информацию о сотрудниках отдела.

Пример использования массива типа запись:

Type

Person=record {название типа запись Person (персона) }

Name, Family: string [20]; {поля имя, фамилия человека имеют строковый тип}

Sex: (Men, Women); {поле пол имеет перечисляемый тип мужчина, женщина}

Age: Byte; {поле возраст имеет целый тип Byte}

Married: Boolean; {поле семейное положение имеет логический тип}

End; {конец описания типа запись}

Var Otdel: array [1..5] of Person;

Begin

For i: =1 to 5 do begin

With Otdel[i] do begin

Writeln(‘Введите имя сотрудника ’);

Readln(Name);

Writeln(‘Введите фамилию сотрудника ’);

Readln(Family);

Writeln(‘Введите пол ’);

Readln(Sex);

Writeln(‘Введите возраст ’);

Readln(Age);

Writeln(‘Введите семейное положение 1 или 0 ’);

Readln(Married);

End;

End;


Задача 11.

Задать одномерный массив типа запись для хранения данных о книгах. Запись о каждой книге должна содержать следующие сведения: автор книги, название книги, год издания, количество страниц, цена. Заполнить массив сведениями о книгах, затем найти книги, изданные до определенного года, вывести на экран сведения о них, и книгу с наибольшей ценой.

Решение:

Следует объявить тип запись «Книги». По условию задачи этот тип запись должен иметь 5 полей: автор книги, название книги, год издания, количество страниц, цена. Полям записи будут присвоены различные типы. Затем следует объявить массив записей. Порядковый номер элементов массива будет соответствовать порядковому номеру записи о книге.

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

Затем требуется найти книгу с наибольшей ценой. При этом поиске будем обращаться к полю «цена» каждой записи в массиве, и сравнивать каждую цену с максимумом. Если находиться цена больше, чем мы приняли, то максимум становиться равным этой цене. Таким образом, просмотрев весь массив, найдем книгу с наибольшей ценой. Одновременно с поиском максимальной цены надо запоминать номер элемента массива, у которого цена книги масимальна. Этот номер пригодиться для вывода всех сведений о книге с максимальной ценой. В самом деле, чтобы вывести на экран эти сведения, нужно обратиться к элементу массива записей с нужным номером и вывести значения всех ее полей.







Дата добавления: 2014-11-12; просмотров: 567. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Механизм действия гормонов а) Цитозольный механизм действия гормонов. По цитозольному механизму действуют гормоны 1 группы...

Алгоритм выполнения манипуляции Приемы наружного акушерского исследования. Приемы Леопольда – Левицкого. Цель...

ИГРЫ НА ТАКТИЛЬНОЕ ВЗАИМОДЕЙСТВИЕ Методические рекомендации по проведению игр на тактильное взаимодействие...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия