Const nx=30;
var a:array[1..nx] of string; p,i,j,n,k:integer; s,d:string;begin
s:='Дана строка символов состоящий из отдельных слов разделенных пробелом';
s:= s + ' Упорядочить слова по длине в убыванию и вывести на печать';
p:=1;while p>0 do begin
i:= i + 1; p:= pos(' ',s);
if p>0 then a[i]:=trim(copy(s,1,p)) else a[i]:=s;writeln(a[i]);Delete(s,1,p);end;
for k:=1 to i do begin
for j:=2 to i do begin
if length(a[j-1]) < length(a[j]) then begin
d:=a[j-1];a[j-1]:=a[j];a[j]:= d;end;end;end;
writeln;
for k:=1 to i do
<span>writeln(a[k]);end.</span>
Клавишу Shift - если я не ошибаюсь
<span>AB=10*161+11*160=160+11=171</span>
1. если слово из 2-х букв
var a,b:char;
begin
readln(a,b);
writeln(a,b);
writeln(b,a);
writeln(a,a);
writeln(b,b);
end.
2, если не из двух букв
тут сначала вводится n - максимальная длина слова, а уже потом 2 буквы
var a,b:char;
n:integer;
procedure gen(i:integer;s:string);
begin
if i>n then exit;
if i<>0 then writeln(s);
gen(i+1,s+a);
gen(i+1,s+b);
end;
begin
readln(n);
readln(a,b);
gen(0,'');
end.