pascalabcnet/TestSamples/CompilationSamples/Posl.pas
Бондарев Иван e6e67c193c initial commit
2015-05-14 21:35:07 +02:00

48 lines
833 B
ObjectPascal

// Â ìàññèâå B çàäàíî ìíîæåñòâî ýëåìåíòîâ. Âûâåñòè âñå åãî ïîäìíîæåñòâà
const Sz=100;
type IArr=array [1..Sz] of integer;
procedure PrintArr(const A: IArr; n: integer);
var i: integer;
begin
for i:=1 to n do
write(A[i],' ');
writeln;
end;
procedure TrySolve(const B: IArr; nb: integer);
var
Subset: IArr;
ns: integer;
procedure TrySolve0(i: integer);
begin
if i>nb then PrintArr(Subset,ns)
else
begin
TrySolve0(i+1); // ïîïðîáîâàòü íå âçÿòü i-òûé ýëåìåíò
Inc(ns); Subset[ns]:=B[i]; TrySolve0(i+1); Dec(ns); // ïîïðîáîâàòü âçÿòü i-òûé ýëåìåíò
end;
end;
begin
TrySolve0(1);
end;
procedure FillArr(var B: IArr; var n: integer);
begin
n:=5;
B[1]:=5; B[2]:=3; B[3]:=8; B[4]:=13; B[5]:=15;
end;
var
B: IArr;
nb: integer;
begin
cls;
FillArr(B,nb);
TrySolve(B,3);
end.