Язык программирования Pascal. Строки и записи. Васильев В.В - 21 стр.

UptoLike

21
begin
writeln('* Введите информацию о ',i,'-м студенте
*');
write('Фамилия : '); readln(sp[i].fam);
write('Имя : '); readln(sp[i].im);
write('Пол (м/ж): ');
repeat readln(sp[i].pol)
until (sp[i].pol='м') or (sp[i].pol='ж');
write('Курс : '); readln(sp[i].kurs);
end;
writeln('Наибольший процент мужчин на курсе ',
man(sp));
name(sp);
readkey
End. {Student_}
Различают фиксированные и вариантные записи. Фиксированная за-
пись состоит из одних и тех же полей . В задачах 1-5 мы использовали только
фиксированные записи.
Вариантная запись состоит из фиксированной части (списка постоян -
ных полей) и вариантной части альтернативных групп полей , включаемых в
зависимости от значения поля признака.
Пусть нужно определить геометрические фигуры: окружность , прямо-
угольник и треугольник. Для всех фигур нужно указать их цвет и основные ха-
рактеристические параметры.
Определим три вспомогательных типа тип фигур, тип цветов и точка.
type tFigure = (circle, rectangle, triangle);
tColor = (red, green, blue);
Point = record x, y: real end;
Определим вариантную запись Фигуры , состоящую из фиксированного по-
ля Цвет и вариантной части. В зависимости от значения поля признака Тип фи-
гуры , в запись включается одна из трех альтернативных групп полей основ-
ных числовых характеристик этой фигуры.
type Figures = record
{Фиксированная часть записи}
color: tColor;
{Вариантная часть записи}
case FigureType: tFigure of
circle: (center: point; radius: real);
rectangle: (s1, s2: point);
triangle: (t1, t2, t3: point)
end;
В записи с вариантами одна вариантная часть , которая располагается за
всеми фиксированными полями. Память для вариантной части записи выделя-
ется под необходимую в данный момент времени альтернативную группу по-
лей . Необходимость задается значением поля признака. В нашем примере по-