В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География

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

Показать ответ
Ответ:
сонечка3332002
сонечка3332002
03.07.2020 23:07
Задание не много не понятно, где что стоит, лучше сфотай
0,0(0 оценок)
Ответ:
earthas
earthas
03.07.2020 23:07
Смотрите, в этом цикле:
while j<=length(s) do   
J может быть равно длине строки. А внутри цикла есть вот это:
  if s[j+i]<>s1[i] then f:=1;
То есть если s[J] - последний символ, то на этой строчке пойдет обращение уже к несуществующему индексу массива.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота