Курсовая работа: Некоторые способы разбиения множеств

var i,j,k,n:byte;wper:array[1..255]of boolean;

sled,pred,blok:array[1..255]of byte;

procedure write_razbienie; {процедура, выписывающая разбиение на экран }

var

i,j:byte;

begin

j:=1; {номер первого блока }

repeat

write('( ');

for i:=j to n do if blok[i]=j then write(i, ' '); { если число і из блока j, то пишем это число }

j:=sled[j]; {следующий по номеру блок }

write(')');

until j=0;

WRITELN

end;

begin

write('input n:');

readln(n); {вводим количество элементов множества }

for i:=1 to n do begin { строим разбиение {{1, …, n}} }

blok[i]:=1;

wper[i]:=true

end;

sled[1]:=0;

write_razbienie; { выписать разбиение }

j:=n; {активный элемент }

while j>1 do begin {задача цикла – перемещение «активного» элемента j в соседний блок – в предыдущий или последующий (в последнем случае может возникнуть необходимость создания нового блока вида { j }, а затем определение активного элемента во вновь образованном разбиении }

k:=blok[j]; {процесс переноса активного элемента; k – номер активного блока }

if wper[j] then begin {j движется вперёд }

if sled[k]=0 then begin {k последний блок }

К-во Просмотров: 325
Бесплатно скачать Курсовая работа: Некоторые способы разбиения множеств