Решение задачи
{ Дано предложение составить программу располагающую слова в порядке убывания длины слов }
uses crt;
type slov = array [1..10] of string;
var p,b : string;
s : slov;
i,j,l : integer;
q : boolean;
procedure maxdl( ii,jj : integer;
ss : slov;
var ll : integer );
var t:integer;m:string;
begin
m:=ss[ii]; { считает max(t) }
ll:=ii; { l-номер max }
for t:=ii+1 to jj do
if length(m)>length(ss[t]) then
begin
m:=ss[t];
ll:=t;
end;
end;
begin
clrscr;
write('текст p=');readln(p);
j:=1;
for i:=1 to length(p) do
begin
b:=p[i];
if b=' ' then j:=j+1
else s[j]:=s[j]+b;
{ склеивание слова и заносим в таб }
end;
b:='';
for i:=1 to j do
begin
maxdl(i,j,s,l);
{ находим номер мах элм }
b:=s[i];
{ меняем местами мах элм: }
s[i]:=s[l];
s[l]:=b;
end;
for i:=1 to j do write(s[i],' ');
readln;
end.

