Индексы Паскаля
Код:
var fi, fo: text;
s: string;
a: array [-2..1100] of Integer;
b: array [1..1110] of string;
i, j, m, n, c: Integer;
procedure Out; {процедура вывода текущего сочетания из слов строки}
var i: Integer;
begin
Write(fo, ' ');
for i := 1 to n do Write(fo, b[a[i]]);
WriteLn(fo)
end;
begin
Write(' Из скольких элементов задать сочетания: n = '); ReadLn(n);
Assign(fi, 'input.txt'); Reset(fi);
Assign(fo, 'output.txt'); ReWrite(fo);
s := ' ';
While not EoF(fi) do
begin
Readln(fi, s);
while s[1] = ' ' do delete(s, 1, 1);
while Pos(' ', s) > 0 do delete(s, Pos(' ', s), 1);
while s[Length(s)] = ' ' do delete(s, Length(s), 1);
s := s + ' ';
m:=0;
repeat
Inc(m);
b[m] := Copy(s, 1, Pos(' ', s));
Delete(s, 1, Pos(' ', s));
until s = '';
for i := 1 to n do
a[i] := i;
c := 0;
repeat
Out;
i := n;
while (a[i] = m - n + i) do
dec(i); {поиск элемента для изменения}
inc(a[i]);
for j := i + 1 to n do
a[j] := a[j - 1] + 1; {изменение правой части сочетания}
until i = 0;
inc(c);
end;
Close(fi); Close(fo);
Writeln(' Выполнено');
Readln
end.
s: string;
a: array [-2..1100] of Integer;
b: array [1..1110] of string;
i, j, m, n, c: Integer;
procedure Out; {процедура вывода текущего сочетания из слов строки}
var i: Integer;
begin
Write(fo, ' ');
for i := 1 to n do Write(fo, b[a[i]]);
WriteLn(fo)
end;
begin
Write(' Из скольких элементов задать сочетания: n = '); ReadLn(n);
Assign(fi, 'input.txt'); Reset(fi);
Assign(fo, 'output.txt'); ReWrite(fo);
s := ' ';
While not EoF(fi) do
begin
Readln(fi, s);
while s[1] = ' ' do delete(s, 1, 1);
while Pos(' ', s) > 0 do delete(s, Pos(' ', s), 1);
while s[Length(s)] = ' ' do delete(s, Length(s), 1);
s := s + ' ';
m:=0;
repeat
Inc(m);
b[m] := Copy(s, 1, Pos(' ', s));
Delete(s, 1, Pos(' ', s));
until s = '';
for i := 1 to n do
a[i] := i;
c := 0;
repeat
Out;
i := n;
while (a[i] = m - n + i) do
dec(i); {поиск элемента для изменения}
inc(a[i]);
for j := i + 1 to n do
a[j] := a[j - 1] + 1; {изменение правой части сочетания}
until i = 0;
inc(c);
end;
Close(fi); Close(fo);
Writeln(' Выполнено');
Readln
end.