русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Лабораторная работа №10


Дата добавления: 2014-11-28; просмотров: 732; Нарушение авторских прав


Записи

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

Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов разного типа. Определение типа начинается идентификатором Record и заканчивается ключевым словом end. Между ними заключён список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля.

Формат описания типа запись:

Type

<имя типа> = Record

<Идентификатор поля>:<Тип компонента>;

.......

<Идентификатор поля>:<Тип компонента>;

end;

Var

<Идентификатор, ...> : <Имя типа>;

Пример 1.

Type

avto = Record

Nomer:string[6]; { Регистрационный номер }

Marka:string[15]; { Марка автомобиля }

God:integer; { Год выпуска }

Color: string[20]; { Цвет }

Fam:string[20]; { Фамилия владельца }

Adress:string[40]; { Адрес владельца }

end;

Var

m,v:avto;

В данном примере запись avto содержит 6 компонентов: номер, марка машины, год выпуска, цвет, фамилия владельца, его адрес. Доступ к полям записи осуществляется через переменные m и v типа Record.

Имя поля должно быть уникальным в пределах записи. Объём памяти, необходимый для хранения записи, складывается из длин полей.

Значения полей записи могут быть использованы в выражениях. Обращение к значению поля осуществляется с помощью составного имени, включающего идентификатор переменной и идентификатор поля, разделённые точкой. Например, чтобы получить доступ к полям записи m типа avto, надо записать:



m.nomer, m.marka, m.god, m.color, m.fam, m.adress.

Для присваивания полям записей значений используются оператор присваивания:

m.nomer:=’ав345х’;

m.marka:=’ВАЗ 2110’;

m.god:=1995;

Составные имена можно использовать, в частности, в операторах ввода-вывода:

Write(’Введите фамилию владельца автомобиля ’,m.nomer, ’ ’);

Readln(m.fam);

Допускается применение оператора присваивания к записям в целом, если они имеют один и тот же тип, например m:=v. После этого значения полей записи m станут равны значениям соответствующих полей записи v.

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

Type

Person = record

Fam:string[20]; { фамилия сотрудника }

Pol:char; { Пол сотрудника }

Age:16..60; { Возраст сотрудника}

Dolgnost: string[20]; { Должность }

end;

Var

otdel:array [1..50] of Person;

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

With <переменная типа record> do <оператор>;

Один раз указав имя переменной типа Record в операторе With, далее в пределах блока <оператор> можно работать с именами полей, как с обычными переменными, то есть без указания перед идентификатором поля имени переменной, определяющей запись:

With Otdel[25] do

begin

fam:=’Васильев’;

Pol:=’М’;

Age:=45;

Dolgnost:=’Директор’;

end;

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

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

Задания

Организовать ввод, хранение в массиве, вывод на экран следующих данных:

1. Информация о движении поездов включающая номер поезда, пункт отправления, пункт назначения, дата и время отправления, время в пути.

2. Информация о продаже билетов в кинотеатре, включающая дату, время сеанса, ряд, место, признак проданного билета.

3. Информация о знакоместах экрана монитора, работающего в текстовом режиме: строка, позиция в строке, символ, цвет символа, цвет фона.

4. Информация об адресе человека: почтовый индекс, страна, город, улица, номер дома, номер квартиры.

5. Информация о владельцах животных: фамилия владельца, вид животного, порода, окрас, пол, возраст животного.

6. Экзаменационная ведомость: предмет, номер группы, дата экзамена, 10 строчек с фамилиями студентов, номерами их зачётных книжек, оценками.

7. Информация о движении самолетов: номер рейса, пункт назначения, периодичность, тип самолета, время вылёта, время прилёта.

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

9. Информация о лекарствах, имеющихся в аптеке: название, фирма-производитель, вид (таблетки, мазь, микстура и т.д.), цена, дата изготовления, срок годности, признак разрешения свободной продажи.

10. Информация о квартиросъёмщиках в многоквартирном доме: номер квартиры, фамилия квартиросъёмщика, подъезд, этаж, общая площадь, жилая площадь, количество проживающих.

11. Информация о выдаче книг в библиотеке: шифр книги, тематика, автор, название, издательство, год издания, количество страниц.



<== предыдущая лекция | следующая лекция ==>
Процедуры и функции пользователя в языке Паскаль | Работа с файлами


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 7.496 сек.