Вчем ошибка? пишет "индекс находится вне границ массива" вроде 17 сторока program test; uses crt; var s, s1: string; n, f, i, j, len: integer; begin clrscr; writeln('введите предложение'); readln(s); s: =' '+s; writeln('ведите приставку'); readln(s1); len: =length(s1); n: =0; f: =0; while j< =length(s) do begin if s[j]=' ' then begin for i: =1 to len do if s[j+i]< > s1[i] then f: =1; if f=0 then begin n: =n+1; j: =j+len; end else j: =j+1; end; end; writeln('n=',n); readln; end. в выделенной строке выдает ошибку
while j<=length(s) do
J может быть равно длине строки. А внутри цикла есть вот это:
if s[j+i]<>s1[i] then f:=1;
То есть если s[J] - последний символ, то на этой строчке пойдет обращение уже к несуществующему индексу массива.