uses
SysUtils;
type Combination=array [1..100] of integer;
var N: byte;S:string;p:integer;
j,i:integer;
x: combination;
var a:array[0..100] of string;
// Перевод из строки
procedure Print;
begin
for i:=1 to n do
write(' ',a[x]);
writeln;
end;
procedure swap(var d,j:integer);
var x:integer;
begin
x:=d;
d:=j;
j:=x;
end;
procedure generate(k:byte);
var j:integer;
begin
if k=N then
print
else
for j:=k+1 to n do begin
swap (x[k+1],x[j]);
generate(k+1);
swap (x[k+1],x[j]);
end;
end;
begin
write('vvedite predlogenie: ');readln(s);
s:=s+' '; j:=0;
while copy (s,1,1)=' ' do delete(s,1,1);
while s<>'' do begin
j:=j+1;
while copy (s,1,1)<>' ' do begin
a[j]:=a[j]+copy (s,1,1);
delete (s,1,1);
end;
while copy (s,1,1)=' ' do delete(s,1,1);
end;
write (j,' ','slov v predlogenii');
N:=j;
for i:=1 to N do x:=i;
generate(0);
readln;
end.
помогите с задачей пожалуйста! очень очень нужно
Дано предложение, в котором слова разделены пробелами. Напечатать все предложения, которые можно получить из него перестановками слов. Все слова можно считать различными. Найти количество таких предложений.