Решение задачи
{ Дано предложение составить программу располагающую слова в порядке убывания длины слов }
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.