Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

помогите довести программу

53K
23 ноября 2009 года
Work Group
3 / / 23.11.2009
тут написал прогу,которая находит индекс символа(подстроки) в строке с которого начинается N-ое вхождение данной подстроки.
всё работает,только есть одно но...если есть строка фбсфбсфбс и подстрока фбс, и Н=3, то прога выдает ответ 0..

вот сама программа
Код:
uses crt;
var st,p:string;
i,j,n,nn,t,count:integer;
f:boolean;
begin
 clrscr;
 write('введите строку S: ');
 readln(st);
 write('введите подстроку P: ');
 readln(p);
 write('введите N: ');
 readln(n);
 count:=0;

 for i:=1 to length(st)-length(p) do
 begin
   f:=true;
   t:=i;
   for j:=1 to length(p) do
     begin
       if st[t]<>p[j] then f:=false;
       inc(t);
     end;
   if f then
     begin
      inc(count);
      nn:=i;
     end;
  if count=n then break;
 end;

 //for i:=1 to length(st) do
 //writeln(st);
 
 if count=n then writeln(nn) else write('0');
 readln;

end.
12K
23 ноября 2009 года
Ghox
297 / / 26.07.2009
Ошибка в этой строчке:
 
Код:
for i:=1 to length(st)-length(p) do

В описанном вами примере, когда наблюдается ошибка, обработка пройдет для значений i от 1 по 9 - 3 = 6, а нужно от 1 по 7.
Соответственно нужно так:
 
Код:
for i:=1 to length(st)-length(p)+1 do

P.S. На общем фоне набега халявщиков очень приятно видеть человека, который сам написал программу, сам проверил для разных случаев, а при обращении с просьбой помочь найти ошибку - привел пример входных данных при которых она проявляется. Большой Вам +. :)
53K
23 ноября 2009 года
Work Group
3 / / 23.11.2009
Спасибо большое...
вот как всегда,какая-то фигня оказалась)))
не внимательный я)
я вообще хотел сделать через while что бы break избежать,но в принципе и так хорошо получается
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог