Обработка текста - Turbo Pascal
Формулировка задачи:
Дан текст. Способ описания текста (массив символов, строка, текстовый файл) зависит от языка программирования и целей обучения. Текст разбит на слова. Предполагается, что слова - это группа символов, не содержащая пробелов и отделенная пробелами от других слов. составить программу для обработку текстовой информации по поставленному условию.
Выбрать из заданного текста слова, содержащие только те буквы, которые содержит заданное слово.
Решение задачи: «Обработка текста»
textual
Листинг программы
var s, t: String; i, j: Integer; p, q: set of Char; b: Boolean; begin Write('Введите текст: '); ReadLn(s); s:=s+' '; Write('Введите слово: '); ReadLn(t); for i:=1 to Length(t) do Include(p,t[i]); b:=True; repeat t:=Copy(s,1,Pos(' ',s)-1); Delete(s,1,Length(t)+1); q:=[]; for i:=1 to Length(t) do Include(q,t[i]); if q-p=[] then begin WriteLn(cs); b:=False; end; until s=''; if b then WriteLn('нет таких слов'); end.
Объяснение кода листинга программы
- Сначала пользователю предлагается ввести текст и слово для поиска.
- Затем программа находит длину введенного слова и добавляет каждый символ в множество
p
. - Переменная
b
устанавливается в True. - Затем начинается цикл, который повторяется до тех пор, пока строка
s
не станет пустой. - Внутри цикла, программа извлекает подстроку из строки
s
до первого пробела и добавляет каждый символ в множествоq
. - Затем программа проверяет, равны ли множества
q
иp
. Если они равны, то программа выводит сообщениеcs
и устанавливает переменнуюb
в False. - Если во время цикла не было найдено совпадений, то после окончания цикла программа выводит сообщение
нет таких слов
. - Если во время цикла было найдено совпадение, то программа продолжает цикл с начала.
- Если строка
s
становится пустой и совпадений не найдено, то программа выводит сообщениенет таких слов
. - Если совпадения были найдены, то программа продолжает цикл с начала.