Param39. Описать функцию PosK($$S_0$$, $$S$$, $$K$$) целого типа, возвращающую номер позиции, начиная с которой в строке $$S$$ содержится $$K$$-е вхождение подстроки $$S_0$$ $$(K>0)$$. Если количество вхождений $$S_0$$ в строке $$S$$ меньше $$K$$, то функция возвращает $$0$$. Считать, что перекрывающихся вхождений подстрок $$S_0$$ строка $$S$$ не содержит. Вывести значения этой функции для пяти данных троек: $$S_0$$, $$S$$ и K.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
program Param39; type St=String; var S,S0:St; i,K:integer; Function PosK(S0,S:St;K:integer):Integer; var i,i2:integer; Stemp:Str; begin i:=0; Stemp:=S; For i2:=1 to K-1 do begin i:=i+Pos(S0,Stemp); Stemp:=Copy(S,i+1,Length(S)); end; if Pos(S0,Stemp)=0 then PosK:=0 else PosK:=i+Pos(S0,Stemp); end; begin for i:=1 to 5 do begin Write('S:'); Readln(S); Write('S0:'); Readln(S0); Write('K:'); Readln(K); Writeln(PosK(S0,S,K)); end; end. |
Другие задачи из раздела Param можно посмотреть здесь.
Комментарии: