В тексте, содержащем несколько (много) предложений, найти все вхождения заданного слова и распечатать все ключевые его предложения. - Pascal

Узнай цену своей работы

Формулировка задачи:

помогите решить 3 задачки. заранее большое спасибо всем! 1.где n и m заданные числа 2. 3.В тексте, содержащем несколько (много) предложений, найти все вхождения заданного слова и распечатать все ключевые его предложения. Принять, что каждое предложение заканчивается точной.

Решение задачи: «В тексте, содержащем несколько (много) предложений, найти все вхождения заданного слова и распечатать все ключевые его предложения.»

textual
Листинг программы
uses crt;
const rz=[' ',',','.',';',':','?','!','-'];//разделители слов, можно добавить
var s,sl,s1,s2:string;
    i,j,k,p:byte;
begin
clrscr;
repeat
writeln('Введите текст из нескольких предложений, оканчивающихся точкой');
readln(s);
if s[length(s)]<>'.' then writeln('Вы не поставили точку в конце текста!');
until s[length(s)]='.';
writeln('Введите слово для поиска');
readln(sl);
writeln('Номера позиций вхождения данного слова в текст:');
k:=0;
for i:=1 to length(s) do
//если все символы совпадают со словом и оно или первое или последнее или отделено разделителями
if (copy(s,i,length(sl))=sl)and((i=1)or(s[i-1] in rz))
 and((i=length(s)-length(sl)+1)or(s[i+length(sl)] in rz)) then
  begin
   write(i,' ');//выводим индекс начала слова
   k:=1;//фиксируем наличие
  end;
writeln;
if k=0 then write('Нет ни одного вхождения заданного слова!')
else//если есть это слово
 begin
  writeln('Предложения, содержащие заданное слово:');
  while pos('.',s)>0 do//пока есть точки
   begin
    s1:=copy(s,1,pos('.',s));/копируем первое предложение
    for i:=1 to length(s1) do//также ищем вхождение
    if (copy(s1,i,length(sl))=sl)and((i=1)or(s1[i-1] in rz))
    and((i=length(s1)-length(sl)+1)or(s1[i+length(sl)] in rz)) then
    writeln(s1);//если есть, выводим предложение
    delete(s,1,pos('.',s));//удаляем это предложение, следующее первое
   end;
 end;
readln
end.

Объяснение кода листинга программы

  1. Объявлены переменные: s, sl, s1, s2 (строки), i, j, k, p (байты).
  2. Задаются константы: rz (массив символов-разделителей).
  3. Ввод текста и слова для поиска.
  4. Поиск вхождений слова в текст и вывод номеров позиций.
  5. Если слово не найдено, выводится сообщение Нет ни одного вхождения заданного слова!.
  6. Если слово найдено, выводятся предложения, содержащие это слово.
  7. Для каждого предложения, проверяется наличие вхождения слова.
  8. Если слово найдено в предложении, выводится это предложение.
  9. Предложение удаляется из текста.
  10. Повторяется пункт 6-8 для оставшегося текста.
  11. Завершение работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5
Похожие ответы