• admin
  • Комментариев: 0
  • Просмотров: 794
  • 17-06-2015, 14:00

Условие: даны три строки: S1, S2, S3. Заменить в строке S1 последнее вхождение строки S2 на S3. 

Решение:

Program stroka;
var S1, S2, S3, dops1, dops2: string;
i, x: integer;
begin
writeln ('Основная строка!');
readln (S1);
writeln ('Подстрока, которую заменять');
readln (S2);
writeln ('Подстрока, которой заменять');
readln (S3);
dops1:=S1;
dops2:=S2;
for i:=1 to length(S2) do
dops2[i]:='*';
while pos(S2, dops1)>0 do begin
x:=pos(S2, dops1);
insert(dops2, dops1, pos(S2, dops1));
delete(dops1, pos(S2, dops1), length(S2));
end;
if x<>0 then begin
delete(S1, x, length(S2));
insert(S3, S1, x);
end;
writeln (S1);
end.

Пояснение констант, значений, операций и операторов:

 var S1, S2, S3, dops1, dops2: string - вводим данные, типа string (тип строка)

i, x: integer - данные типа integer (целые числа)

begin - тело программы, скобки выполнения операций

writeln ('Основная строка ') - вывод текста с задержкой окна, в нашем случае на экране увидим текст: Основная строка

readln (S1) - считывание информации с задержкой окна, в данном случае строки S

for i:=1 to length(S) do - если i входит в промежуток от единицы до длины строки, то

end - конец программы