Помогите дописать прогу по поиску подстроки в строке, т.к. возникли небольшие проблемы с типом переменных да и не запускается... - Pascal
Формулировка задачи:
Решение задачи: «Помогите дописать прогу по поиску подстроки в строке, т.к. возникли небольшие проблемы с типом переменных да и не запускается...»
textual
Листинг программы
program Project1; var S, Sw : String; i, j, Len1, Len2, Cnt : Integer; begin repeat Writeln('Задайте строку:'); Readln(S); Writeln('Задайте искомую подстроку:'); Readln(Sw); Len1 := Length(S); Len2 := Length(Sw); Cnt := 0; for i := 1 to Len1 - Len2 + 1 do begin j := 1; while j <= Len2 do begin if S[i + j - 1] <> Sw[j] then Break; Inc(j); end; if j > Len2 then begin Inc(Cnt); Writeln('Найдено вхождение №', Cnt, '. Позиция: ', i); end; end; Writeln('Повторить - Enter. Выход - любой символ + Enter.'); Readln(S); until S <> ''; end.
Объяснение кода листинга программы
- Объявлены переменные: S, Sw (строки), i, j, Len1, Len2, Cnt (целые числа).
- Цикл repeat, который будет выполняться до тех пор, пока пользователь не введет пустую строку.
- В каждой итерации цикла пользователю предлагается ввести строку и искомую подстроку.
- Вычисляются длины строки S и искомой подстроки Sw.
- Переменная Cnt инициализируется нулем.
- Цикл for i := 1 to Len1 - Len2 + 1 выполняет перебор возможных начальных позиций подстроки в строке S.
- Внутри цикла for запускается цикл while j <= Len2, который завершается при несовпадении символов или достижении конца подстроки.
- Если символы совпадают, то переменная j инкрементируется.
- Если цикл while завершился, то проверяется, было ли найдено совпадение. Если да, то увеличивается счетчик Cnt и выводится сообщение с номером вхождения и позицией.
- После завершения цикла for, пользователю предлагается ввести символ для продолжения или выхода из программы.
- Цикл repeat продолжается до тех пор, пока пользователь не введет пустую строку.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д