Файл: вывести сначала предложения, начинающиеся с однобуквенных слов, затем остальные - Pascal ABC
Формулировка задачи:
написать программу, которая считывает текст из файла и выводит на экран сначала предложения, начинающиеся с однобуквенных слов, а затем все остальные. Вводятся именно предложения, которые заканчиваются или '.' или '!' или '?'
Решение задачи: «Файл: вывести сначала предложения, начинающиеся с однобуквенных слов, затем остальные»
textual
Листинг программы
uses crt; const z:set of char=[' ',',',';',':','-','…']; k:set of char=['.','!','?']; var f: text; s,p: string; i: byte; begin assign(f,'D:\in.txt'); reset(f); p:=''; while not (eof(f)) do begin readln(f,s); for i:=1 to length(s) do if not (s[i] in k) then p:=p+s[i] else begin p:=p+s[i]; while p[1]=' ' do delete(p,1,1); if p[2] in z then writeln(p); p:=''; end; end; reset(f); p:=''; while not (eof(f)) do begin readln(f,s); for i:=1 to length(s) do if not (s[i] in k) then p:=p+s[i] else begin p:=p+s[i]; while p[1]=' ' do delete(p,1,1); if not (p[2] in z) then writeln(p); p:=''; end; end; close(f); end.
Объяснение кода листинга программы
- Установка начального значения переменной
f
— файл с предложениями. - Открытие файла
f
для чтения. - Инициализация переменной
p
пустой строкой. - Чтение предложений из файла
f
и сохранение их в переменнойs
. - Проверка каждого символа в предложении
s
на принадлежность к набору символовk
, который включает точки, восклицательные и вопросительные знаки. - Если символ не принадлежит к
k
, то он добавляется к переменнойp
. - Если символ принадлежит к
k
, то он добавляется к переменнойp
, а затем удаляется первый символ, если он является пробелом, и проверяется второй символ на принадлежность к набору символовz
, который включает пробел, запятую, точку, двоеточие, тире и многоточие. - Если второй символ не принадлежит к
z
, то предложениеp
выводится на экран. - После окончания чтения файла
f
закрывается.