zadach176.PAS

{* Задача 176 *}

Unit ZADACH176;
Interface
Implementation
Begin
 writeln('Вводится строка с количеством слов от 1 до 10. В каждом из них от 1 до 5 строчных букв. Слова разделены запятой и пробелом, в конце строки - точка. 1)На всё это нужна проверка, типа если нет точки в конце пишится НЕТ ТОЧКИ и выход и тд. 2)Напечатать все слова в алфавитном порядке');
End.

Program pas0;

Uses zadach176.pas; {* Эту строку можно удалить *}
Var {* В работе нам потребуются переменные: *}
  s    : String;
  sc   : String;
  buf  : String;
  i    : integer;
  j    : integer;
  n    : integer;
  a    : Array [1..100] Of String;
  bool : boolean;
Begin
  assign(input, 'input.txt'); {* Подключение к файлу 'input.txt' через переменную input *}
  reset(input); {* Открытие файла для чтения *}
  assign(output, 'output.txt'); {* Привязка переменной output к файлу 'output.txt' *}
  rewrite(output); {* Запись в файл через переменную output *}
  read(s);
  sc := '';
  j := 0;
  For i := 1 To length(s) Do {* Увеличиваем i от 1 до length(s) с шагом 1 *}
  Begin
    If (s[i] In ['A'..'Z'])Or(s[i] In ['a'..'z']) Then
      sc := sc + s[i]
    Else If sc'' Then
    Begin
      inc(j); {* j++ *}
      a[j] := sc;
      sc := '';
    End;
    
  End;
  n := j;
  For i := 1 To n - 1 Do {* Увеличиваем i от 1 до n с шагом 1 *}
    For j := i + 1 To n Do
      If a[i] > a[j] Then
      Begin
        buf := a[i];
        a[i] := a[j];
        a[j] := buf;
      End;
  bool := false;
  For i := 1 To length(s) Do {* Увеличиваем i от 1 до length(s) с шагом 1 *}
    If ((s[i] = ' ')And(s[i - 1]', '))Or((s[i] = ', ')And(s[i + 1]' ')) Then
      bool := true;
  If s[length(s)]'.' Then
    write('НЕТ ТОЧКИ')
  Else If bool Then
    write('В ТЕКСТЕ СОДЕРЖИТСЯ ОШИБКА')
  Else For i := 1 To n Do {* Увеличиваем i от 1 до n с шагом 1 *}
    writeln(a[i]);
  close(input); {* Закрытие файла *}
  close(output); {* Файл output будет закрыт *}
End.