Помогите составить программу в Паскале, которая будет выводить на экран все подмножества множества [1, 2, 3, 4].
Используя тип данных set
ДополненТак в том то и дело, что без set я и сама могу. А его, по условию, надо присобачить.
Что то типа этого
var
s : set of byte;
s1 : set of byte;
i,j,k : integer;
procedure PrintS;
var i : integer;
begin
for i := 1 to 4 do
if i in s1 then
write(i,' ');
writeln;
end;
begin
s := [1,2,3,4];
for i := 1 to 4 do begin
s1 := s- < i >;
PrintS;
for j := i+1 to 4 do begin
s1 := s-[i,j];
PrintS;
for k := j+1 to 4 do begin
s1 := s-[i,j,k];
PrintS
end;
end;
end;
readln;
end.
Тип данных set тут как корове седло. Вывести подмножества, конечно, несложно.
const M:array[0..3]of integer=(1,2,3,4); w=4;
var i,j,n:integer;
begin
n:=1 shl w;
for i:=0 to n-1 do
begin
write('{'); for j:=0 to w-1 do if i and (1 shl j)<>0 then write(M[j]:2); writeln(' }');
end;
readln
end.
Куда и зачем тут можно присобачить set, никаких идей нет.