Упорядочить слова по убыванию длины

Введите предложение длинной не более 80 символов. Упорядочите его слова по убыванию длины. Выведите на экран слова в столбик.

code: #pascal
  1. program PascalGuru;
  2. var s,slovo:string;
  3.     i,p,n,nn:integer;
  4.     m:array [1..50] of string;
  5.     swop:boolean;
  6. procedure exchange(var a,b:string);
  7. var c:string;
  8. begin
  9.  c:=a; a:=b; b:=c; end;
  10.  begin
  11.   write('Predlojenie: '); readln (s);
  12.   i:=1;
  13. repeat
  14.  if copy(s,i,2)='  ' then delete(s,i,1) else inc(i);
  15. until i>length(s);
  16. i:=0;
  17.         p:=pos(' ',s);
  18.         repeat
  19.         inc(i);
  20.         slovo:=copy(s,1,p-1);
  21.         m[i]:=slovo;
  22.         delete(s,1,p);
  23.         p:=pos(' ',s);
  24.         until p=0;
  25.         n:=i+1;
  26.         m[n]:=s;
  27. writeln;
  28. nn:=n;
  29. repeat
  30. swop:=false;
  31. for i:=1 to n-1 do
  32. if length(m[i])<length(m[i+1]) then begin      
  33. exchange(m[i],m[i+1]); swop:=true; end;
  34. n:=n-1;
  35. until not swop;        
  36. for i:=1 to nn do writeln(m[i]);
  37. readln;
  38. end.
Поделиться:

Похожие статьи: