В чем ошибка? Пишет "Индекс находится вне границ массива" вроде 17

В чем ошибка? Пишет "Индекс находится вне границ массива" вроде 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 jlt;=length(s) do
begin
if s[j]=' ' then
begin
for i:=1 to len do
if s[j+i]lt;gt;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.

В выделенной строке выдает ошибку

Задать свой вопрос
Олеся Гишбелия
а что вводите?
2 ответа
Смотрите, в этом цикле:
while jlt;=length(s) do   
J может быть одинаково длине строчки. А снутри цикла есть вот это:
  if s[j+i]lt;gt;s1[i] then f:=1;
То есть если s[J] - заключительный символ, то на этой строке пойдет воззвание теснее к несуществующему индексу массива.
Шелепова Лилия
if s[j+i], если предпоследний, а I = 2? беря во внимание сообщение об ошибке, то она именно тут должна быть.
Илья Щеканов
я тупой =). зависает на данный момент либо что? и что он вывести обязан?
Женек Проненко
обязан вывести n-число слов начинающихся с какой-или приставки. Когда вводишь предложение и приставку ничего не происходит, просто так и висит, при нажатии ентера выходит из программы
Никита
постоянный цикл
Диман Хрошин
надобно опустить else j := j + 1 На строку ниже
Тимур Пуновский
благодарю
Альбина Масаликина
и else убрать - там же в любом случае надобно прирастить
Константин Жореков
f := 0 внести в цикл while и вроде работает
Геннадий Каслов
спасибо огромное, все работает х)
Задание не много не понятно, где что стоит, превосходнее сфотай
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт