z14.PAS

{* Слова в в порядке возрастания числа букв *}

Unit Z14;
Interface
Implementation
Begin
 writeln('Расположить слова в нём в порядке возрастания числа букв в словах');
End.

Program z14;

Uses z14.pas; {* Эту строку можно удалить *}
Uses crt; {* Подключение модулей *}
Var {* Необходимые переменные *}
  a   : String;
  d   : String;
  sl1 : String;
  sl2 : String;
  i   : longint;
  l   : longint;
  k   : longint;
  j   : longint;
  b   : Array [1..50] Of String;
Begin
  clrscr; {* Очистка экрана *}
  write('введите предложение: ');
  readln(a);
  l := length(a);
  If a = '' Then
    halt;
  If a[l]' ' Then
  Begin
    inc(l); {* Прибавим к l единицу *}
    a[l] := ' ';
  End;
  For i := 1 To l Do {* Цикл для i => [1 .. l] *}
    If a[i] = ' ' Then
    Begin
      inc(j); {* Увеличиваем j на 1 *}
      b[j] := d;
      d := '';
    End;
    Else d := d + a[i];
      For i := 1 To j - 1 Do {* Цикл для i => [1 .. j] *}
        For k := i + 1 To j Do
        Begin
          sl1 := b[i];
          sl2 := b[k];
          If length(sl1) > length(sl2) Then
          Begin
            b[i] := sl2;
            b[k] := sl1;
          End;
          
        End;
  For i := 1 To j Do {* Переменная i увеличивается с 1 до j *}
    write(' ', b[i]);
  readln; {* Приостановка программы. Ожидание Enter *}
End.