Строки и множества. Случайным образом заполнить множество рабочих дней в цикле из 6 повторений - Turbo Pascal
Формулировка задачи:
Строки и множества. Случайным образом заполнить множество рабочих дней в цикле из 6 повторений.
Решение задачи: «Строки и множества. Случайным образом заполнить множество рабочих дней в цикле из 6 повторений»
textual
Листинг программы
type
TWeekDay = (mon, tue, wed, thu, fri, sat, sun);
const
DAYNAMES: Array[TWeekDay] Of String = ('понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота', 'воскресенье');
var
d: TWeekDay;
used: Set Of TWeekDay;
begin
Randomize;
used := [Low(TWeekDay)..High(TWeekDay)];
Exclude(used, TWeekDay(Random(7)));
for d := Low(TWeekDay) to High(TWeekDay) do
if (d in used)
then
WriteLn(DAYNAMES[d]);
end.
Объяснение кода листинга программы
- Создаётся тип данных
TWeekDay, который представляет собой набор дней недели. - Создаётся константа
DAYNAMES, которая представляет собой массив имен дней недели на русском языке. - Создаётся переменная
dтипаTWeekDay, которая будет использоваться для выбора случайного дня недели. - Создаётся множество
used, которое будет использоваться для отслеживания использованных дней недели. - С помощью функции
RandomizeиRandom(7)генерируется случайное число от 0 до 6, которое используется для выбора случайного дня недели из диапазона отLow(TWeekDay)доHigh(TWeekDay). - Используя функцию
Exclude, из множестваusedудаляются все элементы, кроме выбранного случайного дня недели. - В цикле
forперебираются все дни недели отLow(TWeekDay)доHigh(TWeekDay). - Внутри цикла проверяется, является ли текущий день недели одним из элементов множества
used. Если это так, то выводится имя этого дня недели. - После завершения цикла выводится сообщение с именем выбранного случайного дня недели.