Предмет: Информатика, автор: Sayu

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

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

Ответы

Автор ответа: Kiyanitsinaaaa
0
задание не много не понятно, где что стоит, лучше сфотай
Автор ответа: emblerik
0
Смотрите, в этом цикле:
while j<=length(s) do   
J может быть равно длине строки. А внутри цикла есть вот это:
  if s[j+i]<>s1[i] then f:=1;
То есть если s[J] - последний символ, то на этой строчке пойдет обращение уже к несуществующему индексу массива.
Автор ответа: emblerik
0
надо опустить else j := j + 1 На строчку ниже
Автор ответа: Sayu
0
благодарю
Автор ответа: emblerik
0
и else убрать - там же в любом случае надо увеличить
Автор ответа: emblerik
0
f := 0 внести в цикл while и вроде работает
Автор ответа: Sayu
0
спасибо огромное, все работает х)
Похожие вопросы
Предмет: Математика, автор: sultanbaevshahruz
Предмет: Химия, автор: sanya7029
Предмет: Қазақ тiлi, автор: annigilator
Жер бетіндегі әрбір адам өз елінің елордасын мақтан тұтады. Біздің мақтанышымыз –Сарыарқа төсіне қанат жайған шырайлы шаһар. Нұр-Сұлтан жыл санап көркейіп, гүлденіп, ажарланып келеді. Келбеті де асқақ, айбарлы. Өзге жұрт қызыға, қызғана қарайды. Тамсанып, таңдай қағады. Нұр-Сұлтан - бүгін өскелең қала. Кемел де келісімді ойлардың, ізгі ниет пен игі тілеудің қаласы. Есілдің мәрмәр жағалауынан зәулім ғимараттар салуға да, қаланың орталық бөлігінде еуропалық үлгідегі шағын орамдар тұрғызуға да орын жетерлік. Нұр-Сұлтан – Қазақ елі болашағының қаласы. Мәдениеттің ошағы, ғылым мен білімнің ордасы.
Еліміздің көгілдір туы желбіреген тәуелсіздігіміздің ордасы. Жаңа Нұр-Сұлтан құрылысы - жас мемлекетіміздің жасампаздықка ұмтылысының, бүкіл қоғамымыздың жаңаруының ерекше символына айналған құбылыс. Адамзат тарихында астанасын жаңғыртқан мемлекеттер жетерлік. Біз жаңа ғасырға, жаңа мыңжылдыққа өркениетті ұлт ретінде, тарих сахнасына егеменді ел ретінде ендік. Әлемдік қауымдастықтың көшіне жеке керуен болып қосылдық. Тәуелсіздігіміздің айғағындай, елдігіміздің белгісіндей, алтын күндей Елтаңбамызды, желбіреген көк байрағымызды көргенде, әуелеген Әнұранымызды естігенде бойыңды ерекше бір асқақ азаматтық сезім билейді. Бұны көру, сезінудің өзі бір бақыт, маңдайға біткен бақ. Аз уақыттың ішінде көркейіп, түрленіп, тәуелсіздігіміздің түлегі, Отанымыздың жүрегі - Нұр-Сұлтан елдігіміздің жаңа беттерін ашқандай, тәуелсіздігімізді әйгілеп тұр. Жастарымызды болашаққа бастайтын бас қаламыз, арман қала - жас қаламыз -өнер, білім мен мәдениеттің, ғылымның ордасына айналуда.
2.ТАПСЫРМА
Оқылған мәтінге сүйеніп, «Нұр-Султан елімнің жүрегі ме?» деген тақырыпта келісу не келіспеу эссесін жазыңыз. Жазба жұмысыңызда неологизм, термин, диалект сөз, кәсіби сөздерді қолданыңыз. Эссеңізде мәтіннен іріктелген мысалдарды қолданыңыз. ЭССЕ 50-60 сөзден тұруы керек.