zadach167.PAS

{* Задача 167 *}

Unit ZADACH167;
Interface
Implementation
Begin
 writeln('В строке слова отделены пробелами, поменять местами самое длинное и самое короткое слово');
End.

Program Simple;

Uses zadach167.pas; {* Эту строку можно удалить *}
Uses CRT; {* Подключение модулей *}
Var {* В работе нам потребуются переменные: *}
  S                                                                     : String;
  / /  строковая переменная для хранения введенного предложения    Word : String;
  / /  выделяемое для проверки слово    WordMin                         : String;
  WordMax                                                               : String;
  / /  соответственно самое короткое и самое длинное слова    i         : Integer;
  / /  счетчик цикла    a                                               : Integer;
  b                                                                     : Integer;
Begin
  Clrscr; {* Очищаем экран *}
  Writeln('Введите предложение:');
  Readln(S);
  i := 1;
  a := 1;
  b := 1;
  WordMin := S;
  WordMax := '';
  While i  Length(WordMax) Then
    WordMax := Word;
  If Length(Word) < Length(WordMin) Then
    WordMin := Word;
End;
Else If i = Length(S) Then
Begin
  b := i + 1;
  Word := Copy(S, a, b - a);
  If Length(Word) > Length(WordMax) Then
    WordMax := Word;
  If Length(Word) < Length(WordMin) Then
    WordMin := Word;
End;
i := i + 1;
End;
Writeln(WordMax, ' - самое длинное слово');
Writeln(WordMin, ' - самое короткое слово');
Readln; {* Ждем подтверждения пользователя *}
End....