Генерации сочетаний из N по М с выводом в файл- Pascal(Паскаль)

program sochets;
uses crt;
var
  i, j, n, m: integer;
  a: array[0 .. 100] of integer;
  f:text;
{ процедура вывода текущего сочетания }
procedure Out;
var i: integer;
begin
  writeln(f);
  for i:=1 to m do write(f,a[i]:3)
end;
 
begin
clrscr;
assign(f,'soch.txt');
rewrite(f);
write('N='); readln(n);
write('M='); readln(m);
{ формирование первого сочетания }
for i:=0 to m do a[i]:=i;
repeat
  Out;
  i:=m;
  while a[i]=n-m+i do dec(i); { поиск элемента для изменения }
  inc(a[i]);
  for j:=i+1 to m do a[j]:=a[j-1]+1; { изменение правой части сочетания }
until i=0;
close(f);
readln
end.

Leave a Comment

17 − = 13