Каждое вхождение s1 в строку s в качестве подстроки заменить на обращенную подстроку s1. Найдите ошибку - Turbo Pascal
Формулировка задачи:
дана строка s и s1. каждое вхождение s1 в строку s в качестве подстроки заменить на обращенную подстроку s1
Решение задачи: «Каждое вхождение s1 в строку s в качестве подстроки заменить на обращенную подстроку s1. Найдите ошибку»
textual
Листинг программы
i:= 1; While i<= Length(s) - Length(s1) + 1 do begin If copy(s, i, Length(s1)) =s1 then begin for j:=0 to Length(s1)-1 do s[i+j]:=s1[Length(s1)-j]; i:=i+ Length(s1); end else i:= i + 1; end; writeln(s);
Объяснение кода листинга программы
- Переменная i инициализируется значением 1.
- Затем, в цикле while, происходит проверка условия i <= Length(s) - Length(s1) + 1.
- Если это условие истинно, то выполняется блок begin.
- Внутри блока begin проверяется условие If copy(s, i, Length(s1)) =s1.
- Если это условие истинно, то выполняется блок for j:=0 to Length(s1)-1 do.
- В этом блоке происходит замена каждого символа подстроки s1 в позиции i+j на символ подстроки s1[Length(s1)-j].
- После выполнения блока for, переменная i увеличивается на длину подстроки s1 (i:=i+ Length(s1)).
- Если условие If copy(s, i, Length(s1)) =s1 не выполнилось, то переменная i увеличивается на 1 (i:= i + 1).
- Цикл while продолжается, пока условие не станет ложным.
- По завершении цикла, строка s выводится на экран с помощью функции writeln(s).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д