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

UptoLike

22
лем признаком является FigureType.
Предложение case of не требует служебного слова end, потому что данное
предложение обозначает начало вариантной части и лишь внешне похоже на
оператор выбора. Поскольку вариантная часть стоит после фиксированной , то в
конце нужно ставить end как пару к record.
Для выбора альтернативных групп полей , наряду с полем признака
используется ключ выбора (переменная или имя типа ).
Ключ выбора и поле признака должны быть стандартным или предвари-
тельно объявленным порядковым типом .
Ключу выбора можно присваивать значения в исполняемой части про-
граммы и таким образом влиять на выбор полей .
Решим задачу, в которой используется массив из вариантных записей .
Задача 6. Пусть дан фрагмент программы :
type tFigure = (circle, rectangle, triangle);
tColor = (red, green, blue);
Point = record x, y: real end;
Figures = record
{Фиксированная часть записи}
color: tColor;
{Вариантная часть записи}
case FigureType: tFigure of
circle: (center: point; radius: real);
rectangle: (s1, s2: point);
triangle: (t1, t2, t3: point)
end;
tList = array [1..20] of Figures;
var List: TList;
Определите, какое количество новых цветов возникает в результате нало-
жения прямоугольников различных цветов.
Из условия следует, что максимально возможное количество новых цве -
тов равно четырем. Новый цвет может получиться при наложении красного и
зеленого, красного и синего, зеленого и синего, красного, зеленого и синего.
Решение задачи разобьем на две части:
1. Заполнение массива List вариантными записями.
2. Подсчет количества новых цветов.
Для решения второй задачи сформируем массив Mas из цветов имеющихся
прямоугольников. В логические переменные r, g, b запишем значение true, если
имеется соответственно красный , зеленый , синий прямоугольник. В зависимо-
сти от значений логических переменных r, g, b определим количество новых
цветов.
Program New_Color;
Uses crt;
Const n=5;
Type tFigure = (circle, rectangle, triangle);