Top.Mail.Ru
Ответы

Помогите составить программу в Паскале, которая будет выводить на экран все подмножества множества [1, 2, 3, 4].

Используя тип данных set

Дополнен

Так в том то и дело, что без set я и сама могу. А его, по условию, надо присобачить.

По дате
По рейтингу
Аватар пользователя
Мастер
12лет

Что то типа этого

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.

Аватар пользователя
Гений
12лет

Тип данных 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, никаких идей нет.



Видео по теме