Поиск слов в строке - PascalABC.NET
Формулировка задачи:
Ребят, нужна такая программа, например: У меня есть зарезервированное слово в константе это к примеру слово "три" нужно сделать чтоб после ввода строки мне выводилось сообщение есть ли такая строка, или ее нет.
Например в константе слово "три"
Я ввел стоку "один два три четыре"
и мне вывело есть такое слово.
Решение задачи: «Поиск слов в строке»
textual
Листинг программы
program lab_pascal;
uses Crt;
const let=['А'..'Я','а'..'я'];
sl='три';
k=Length(sl);
var s:String;
jpos:Integer;
instr:Boolean;
begin
instr:=False;
ClrScr;
Writeln('Введите строку:');
Readln(s);
jpos:=Pos(sl,s);
if (jpos<>0) and (not(s[jpos-1] in let)) and (not(s[jpos+k] in let))
then instr:=True;
if instr then Writeln('Слово присутствует в строке.')
else Writeln('Слово не присутствует в строке.');
Readln;
end.
Объяснение кода листинга программы
- Объявлены константы:
— let — это массив из 33 символов, который содержит все буквы русского алфавита в нижнем и верхнем регистре
— sl — это строка из 4 символов, которая содержит слово
три - Объявлены переменные:
— s — это строка, в которую будет записываться введенная пользователем строка
— jpos — это целочисленная переменная, которая будет хранить позицию первого символа слова
трив строке, введенной пользователем — instr — это логическая переменная, которая будет определять наличие или отсутствие словатрив строке - Задается начальное значение переменной instr равное False
- Выводится сообщение
Введите строку: - С помощью функции Readln() считывается строка, введенная пользователем, и записывается в переменную s
- С помощью функции Pos() вычисляется позиция первого символа слова
трив строке s - С помощью условного оператора if проверяется, что позиция не равна нулю и два последних символа на этой позиции не являются буквами русского алфавита в нижнем или верхнем регистре
- Если условие выполняется, то значение переменной instr изменяется на True
- С помощью оператора if проверяется значение переменной instr. Если оно равно True, то выводится сообщение
Слово присутствует в строке.. Если оно равно False, то выводится сообщениеСлово не присутствует в строке. - Программа ожидает нажатия клавиши для завершения работы