
Записи с вариантами
Предположим, вы хотите создать запись, у которой есть поля для различных видов данных, но вы знаете, что не будете использовать все поля в рамках одной записи одновременно. Для этих целей служит структура - запись с вариантами.
Допустим у вас есть тип данных «Служащий», который может иметь как твердую ставку, так и ставку за час, но не оба вида сразу. Такой вид заработной платы влияет на пересчет заработной платы за определенный промежуток времени. Поэтому, при создании записи TEmployee нет необходимости и смысла хранить в памяти сразу два поля для различных видов ставок. В этом случае мы используем в записи вариативную часть, которая будет указателем на вид ставки заработной платы.
type
TEmployee = record
FirstName, LastName: string[40];
BirthDate: TDate;
case Salaried: Boolean of
True: (AnnualSalary: Currency);
False: (HourlyWage: Currency);
end;
Вариант 5.
Регистрация человека в городе
type
TPerson = record
FirstName, LastName: string[40];
BirthDate: TDate;
case Citizen: Boolean of
True: (Birthplace: string[40]);
False: (Country: string[20];
EntryDate, ExitDate: TDate);
end;
Задания:
- показать список всех людей у которых вышел срок регистрации за конкретную дату;
- показать всех людей, которые живут в данном городе;
- показать всех людей, возраст которых больше 50
Вариант 6.
Графические примитивы
type
TShapeList = (Rectangle, Triangle, Circle, Rhomb);
TFigure = record
case TShapeList of
Rectangle: (Height, Width: Real);
Triangle: (Side1, Side2, Side3: Real);
Circle: (Radius: Real);
Rhomb: (Diagonal1,Diagonal2: Real);
end;
Пусть есть массив данных типа TFigure
Задания:
- найти площади всех фигур в массиве;
- показать элементы массива для которых данные заведомо ложные. (Величина стороны не может быть отрицательным числом, не любые три отрезка образуют треугольник);
- по введенным данным осуществить построение изображения на форме.