Информатика 10-11. Книга 2. Практика алгоритмизации и программирования. Шауцукова Л.З. - 89 стр.

UptoLike

Составители: 

i:=i+DS | и продвигаемся на длину
слова
все
кц
кон
Исполнение алгоритма
Обозначение проверяемого условия:
Текст[i : i+DS-1] = Слово1 => (1)
Для тестовых данных имеем: DS=3, длин (Текст)-DS+1= 8.
i Текст[i : i+2] (1) Текст
1
2
5
6
7
10
"2si"
"sin"
"x+s"
"+si"
"sin"
-
+
-
-
+
"2sinx+siny"
"2cosx +siny"
"2cosx+cosy"
Turbo Pascal
(эта программа, использующая стандартную функцию Pos , не требует, чтобы длины
заменяемого и вставляемого слов были одинаковыми)
Program Replace;
Uses Crt;
Var Text, Slovo1, Slovo2 : String;
i, DlinaSlova, P : Integer;
BEGIN ClrScr;
Write('Введите строку : '); ReadLn(Text);
Write('Какое слово заменить ? '); ReadLn(Slovo1);
Write('На какое слово заменить ? '); ReadLn(Slovo2);
WriteLn; WriteLn('О т в е т : ');
WriteLn('Исходный текст: ', Text); DlinaSlova:=Length(Slovo1);
DlinaSlova:=Length(Slovo1);
P:=Pos(Slovo1,Text); {номер позиции, с которой в строке Text
}
{в первый раз встречается подстрока
Slovo1 }
While P>0 do {цикл продолжается до тех пор,пока
подстрока}
{Slovo1 встречается в строке Text
}
begin
Delete(Text, P, DlinaSlova); {удаление подстроки Slovo1,
начинаю-}
{щейся с позиции P, из строки
Text }
Insert(Slovo2, Text, P); {вставка подстроки Slovo2 }
{ в строку Text с позиции Р}
P:=Pos(Slovo1, Text); {номер позиции, с которой подстрока
Slovo1}
{встречается в строке Text в
очередной раз}
end;
             i:=i+DS                          | и продвигаемся на длину
слова

       все
  кц
кон
                           Исполнение алгоритма
                      Обозначение проверяемого условия:
                   Текст[i : i+DS-1] = Слово1 => (1)
        Для тестовых данных имеем: DS=3, длин (Текст)-DS+1= 8.
                 i Текст[i : i+2] (1)              Текст
                  1
                           "2si"          -      "2sinx+siny"
                  2
                           "sin"          +     "2cosx +siny"
                  5
                           "x+s"          -
                  6
                           "+si"          -      "2cosx+cosy"
                  7
                           "sin"          +
                  10

Turbo Pascal
(эта программа, использующая стандартную функцию Pos , не требует, чтобы длины
заменяемого и вставляемого слов были одинаковыми)
Program Replace;
   Uses Crt;
   Var Text, Slovo1, Slovo2 : String;
        i, DlinaSlova, P           : Integer;
BEGIN ClrScr;
   Write('Введите строку : '); ReadLn(Text);
   Write('Какое слово заменить ? '); ReadLn(Slovo1);
   Write('На какое слово заменить ? '); ReadLn(Slovo2);
   WriteLn; WriteLn('О т в е т : ');
   WriteLn('Исходный текст: ', Text); DlinaSlova:=Length(Slovo1);
   DlinaSlova:=Length(Slovo1);
   P:=Pos(Slovo1,Text); {номер позиции, с которой в строке Text
}
                              {в первый раз встречается подстрока
Slovo1 }
   While P>0 do               {цикл продолжается до тех пор,пока
подстрока}
                              {Slovo1 встречается в строке Text
}
    begin
       Delete(Text, P, DlinaSlova); {удаление подстроки Slovo1,
начинаю-}
                                            {щейся с позиции P, из строки
Text }
       Insert(Slovo2, Text, P); {вставка подстроки Slovo2 }
                                        { в строку Text с позиции Р}
       P:=Pos(Slovo1, Text); {номер позиции, с которой подстрока
Slovo1}
                                   {встречается в строке Text в
очередной раз}
    end;