Каждое вхождение 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);

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

  1. Переменная i инициализируется значением 1.
  2. Затем, в цикле while, происходит проверка условия i <= Length(s) - Length(s1) + 1.
  3. Если это условие истинно, то выполняется блок begin.
  4. Внутри блока begin проверяется условие If copy(s, i, Length(s1)) =s1.
  5. Если это условие истинно, то выполняется блок for j:=0 to Length(s1)-1 do.
  6. В этом блоке происходит замена каждого символа подстроки s1 в позиции i+j на символ подстроки s1[Length(s1)-j].
  7. После выполнения блока for, переменная i увеличивается на длину подстроки s1 (i:=i+ Length(s1)).
  8. Если условие If copy(s, i, Length(s1)) =s1 не выполнилось, то переменная i увеличивается на 1 (i:= i + 1).
  9. Цикл while продолжается, пока условие не станет ложным.
  10. По завершении цикла, строка s выводится на экран с помощью функции writeln(s).

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


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

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

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