Program TEXT01; {Hledani podretezce X v retezci Z} uses CRT; type RET = string[80]; var X, Z, Y : RET; P, I, J, K, N, M : byte; D : shortint; T : Boolean; begin ClrScr; Write('Zadej podretezec X: '); Readln(X); Write('Zadej retezec Z: '); Readln(Z); Write('Zadej substituenta Y: '); Readln(Y); K:= length(X); N:= length(Z); M:= length(Y); I:=1; repeat J:=1; repeat T:=(X[J]=Z[J+I-1]); J:=J+1 until (not T) or (J>K); I:=I+1 until T or (I>N); P:=I-1; if T then Writeln('Podretezec se nachazi v retezci od ',P,'. pozice') else Writeln('Podretezec v retezci nenalezen'); if T then begin D:=M-K;Writeln(D); if D<0 then {posun o D-mist vlevo v retezci Z} begin I:=1; while (P+M+I)<=N do begin Z[P+M+I-1]:=Z[P+K+I-1]; I:=I+1 end end else {posun o D-mist vpravo v retezci Z} begin I:=N; while I>=P+M do begin Z[I+M]:=Z[I]; I:=I-1 end; end; for I:=P to P+M-1 do Z[I]:=Y[I-P+1]; end; N:=N+D; for I:=1 to N do write(Z[I]); Writeln; Z[0]:=chr(N); for I:=1 to length(Z) do write(Z[I]); end.