Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
D.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
109.06 Кб
Скачать

3.6 Константы - записи

Определение константы - записи имеет следующий вид:

<идентификатор>: <тип записи>=(<список значений полей>);

Идентификатор - имя константы. Список значений полей представляет собой список из последовательностей вида: имя поля, двоеточие и константа. Элементы списка отделяются друг от друга точкой с запятой, например:

type

point = record

x, y: real

end;

vector = array [0..1] of point;

month = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Okt, Nov, Dec);

data = record

d: 1..31;

m: month;

y: 1900..1999

end;

const

point1: point = (x: 0; y: -1);

line: vector = ((x: -3.1; y:1.5), (x: 5.9; y: 3.0));

SomeDay: data = (d: 16; m: Mar; y: 1989);

Поля должны указываться в той последовательности, в какой они перечислены в объявлении типа. Если в записи используется хотя бы одно поле файлового типа (см. § 4), то такую запись нельзя объявить типизированной константой. Для записей с вариантными полями указывается только один из возможных вариантов констант. Например:

type

forma = record

case Boolean of

true : (BirthPlase:string [40]); {место рождения}

false: (Country : string [20]; {страна}

Gorod : string [20]; {город}

FIO : string[20];

BirthData : array [1..3] of word;{дата рождения}

vozrast : word)

end;

const {если значение селектора есть false}

Person1: forma = (Country : 'Россия';

Gorod : ‘Орел’;

FIO : ‘Иванов И.И.’;

BirthData : (16,3,78);

vozrast : 20);

{если значение селектора есть true}

Preson2: forma = (BirthPlase: 'г. Орел, пос. Кромы');

Задачи для самостоятельного решения.

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

2. В справочной аэропорта хранится расписание вылета самолетов на следующие сутки. Для каждого рейса указаны его номер, тип самолета, пункт назначения, время вылета. Определить все номера рейсов, типы самолетов и время их вылета для заданного пункта назначения.

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

4. У администратора железнодорожных касс хранится информация о свободных местах в поездах по всем направлениям на ближайшую неделю. Информация представлена в следующем виде: дата выезда, конечный пункт назначения, время отправления, число свободных купейных мест, число свободных плацкартных мест. Оргкомитет международной конференции обращается к администратору с просьбой зарезервировать 50 купейных мест до Берлина на субботу. При этом время отправления поезда должно быть не позднее 10 часов вечера. Выдать на печать время отправления или сообщение о невозможности выполнить заказ в полном объеме.

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

6. Написать программу форматирования ведомости об успеваемости студентов. Каждая запись в этой ведомости должна содержать номер группы, фамилию студента, средний балл за последнюю сессию. Необходимо распечатать списки студентов по группам. В каждой группе фамилии студентов разместить в порядке убывания среднего балла.

7. На складе комплектующих деталей хранится N деталей, каждая из которых характеризуется записью следующего вида:

Type

ZAP= Record

DTL: string [10];

PR1: integer;

PR2, PR3: boolean;

End;

Здесь DTL – наименование детали; PR1, PR2, PR3 – некоторые признаки детали. Необходимо подготовить детали к запуску в сборочный цех. Для этого их следует разбить на пары (Z1, Z2), где Z1, Z2 – переменные типа ZAP, таким образом, чтобы разность Z1.PR1–Z2.PR1 была как можно меньше для каждой пары (Z1, Z2). Вывести на печать все наименования пар запуска.

8. В библиотеке имеется список книг. Каждая запись этого списка содержит фамилии авторов, название книги, год издания. Определить, имеются ли в данном списке книги, в названии которых встречается некоторое ключевое слово (например, MS–DOS). Если имеются, то выдать на печать фамилии авторов, название и год издания всех таких книг. Ключевое слово ввести с клавиатуры.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]