Преобразование множества в массив множеств - Turbo Pascal
Формулировка задачи:
Составить процедуру, которая преобразует множество в массив множеств, состоящих из трех элементов.
Решение задачи: «Преобразование множества в массив множеств»
textual
Листинг программы
procedure gen_mnz(m: mnz; var a: mas; var n: Integer); var i, j, k: Integer; begin j:=0; n:=1; for i:=0 to 255 do if i in m then begin Include(a[n],i); j:=(j+1) mod 3; if j=0 then Inc(n); end; Dec(n); end;
Объяснение кода листинга программы
- В процедуре
gen_mnzесть три переменные:m,aиn. Переменнаяmпредставляет собой множество, которое мы преобразуем в массив множеств. Переменнаяaявляется массивом множеств, который мы будем заполнять. Переменнаяnявляется счетчиком индексов массиваa. - В начале процедуры устанавливаются начальные значения для переменной
jиn. Переменнаяjбудет использоваться для отслеживания индекса текущего элемента в массивеa, а переменнаяnбудет использоваться для отслеживания индекса текущего элемента в исходном множестве. - Затем следует цикл
for, который выполняется 256 раз (от 0 до 255). На каждой итерации цикла проверяется, содержится ли текущий элемент в множествеm. Если элемент содержится в множествеm, то он добавляется в массивaс помощью функцииInclude. Затем переменнаяjобновляется, чтобы перейти к следующему элементу в массивеa, и еслиjстановится равным 0, то увеличивается значение переменнойn. - После завершения цикла
forпеременнаяnуменьшается на единицу. - В итоге, после выполнения процедуры
gen_mnz, массивaбудет содержать все элементы из исходного множестваm.