ВУЗ:
Составители:
Рубрика:
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);
Страницы
- « первая
- ‹ предыдущая
- …
- 20
- 21
- 22
- 23
- 24
- …
- следующая ›
- последняя »