В тексте, содержащем несколько (много) предложений, найти все вхождения заданного слова и распечатать все ключевые его предложения. - 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.
Объяснение кода листинга программы
- Объявлены переменные: s, sl, s1, s2 (строки), i, j, k, p (байты).
- Задаются константы: rz (массив символов-разделителей).
- Ввод текста и слова для поиска.
- Поиск вхождений слова в текст и вывод номеров позиций.
- Если слово не найдено, выводится сообщение
Нет ни одного вхождения заданного слова!
. - Если слово найдено, выводятся предложения, содержащие это слово.
- Для каждого предложения, проверяется наличие вхождения слова.
- Если слово найдено в предложении, выводится это предложение.
- Предложение удаляется из текста.
- Повторяется пункт 6-8 для оставшегося текста.
- Завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д