Вчем ошибка? пишет "индекс находится вне границ массива" вроде 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. в выделенной строке выдает ошибку

Впмриирсгишммп Впмриирсгишммп    3   03.06.2019 17:20    1

Ответы
megamozg40 megamozg40  03.07.2020 23:07
Задание не много не понятно, где что стоит, лучше сфотай
ПОКАЗАТЬ ОТВЕТЫ
tarasenkosasa tarasenkosasa  03.07.2020 23:07
Смотрите, в этом цикле:
while j<=length(s) do   
J может быть равно длине строки. А внутри цикла есть вот это:
  if s[j+i]<>s1[i] then f:=1;
То есть если s[J] - последний символ, то на этой строчке пойдет обращение уже к несуществующему индексу массива.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика