Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 21.11.2017, 21:06   #1
Max$$
Пользователь
 
Регистрация: 23.09.2017
Сообщений: 17
По умолчанию Индекс находится вне границы массива

pascal abc, при отладке выдает ошибку, в чем дело, подскажите?
uses crt;
function MyPos(ps,st:string):byte;
var n,m,i,j,p:byte;
s:string;
begin
p:=0;
n:=ord(st[1]);
m:=ord(ps[1]);
for i:=1 to n-m+1 do
if st[i]=ps[1] then
begin
s:='';
for j:=i to i+m-1 do
s:=s+st[j];
if s=ps then
begin
p:=i;
break;
end;
end;
MyPos:=p;
end;
var s,s1:string;
begin
clrscr;
writeln('Строка:');
readln(s);
writeln('Подстрока:');
readln(s1);
write(MyPos(s1,s));
readln
end.
Max$$ вне форума Ответить с цитированием
Старый 21.11.2017, 21:15   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,061
По умолчанию

Код:
n:=ord(st[1]);
m:=ord(ps[1]);
Это что?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.11.2017, 09:02   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,803
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Это что?
Похоже это порядковый номер первого символа в таблице ASCII

Код:
function MyPos(ps,st:string):byte;
var i,j,p:byte;
    s:string;
begin
   p:=0;
   for i:=1 to Length(st)-Length(ps)+1 do
      if st[i]=ps[1] then
      begin
         s:='';
         for j:=i to i+Length(ps)-1 do
            s:=s+st[j];
         if s=ps then
         begin
            p:=i;
            break;
         end;
      end;
   MyPos:=p;
end;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.narod.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C#] Не компилирует программу. пишет,что Индекс находится вне границ массива Baldr Помощь студентам 2 02.10.2017 17:41
Индекс находится вне границ массива. stopping Помощь студентам 3 04.11.2016 21:34
индекс находится вне границ массива (паскаль) max75025 Помощь студентам 5 20.12.2014 08:06
Индекс находился вне границ массива Pikovaya_dama C# (си шарп) 2 28.11.2014 17:37
[C#] Индекс находился вне границ массива JonMagon Помощь студентам 12 22.01.2012 22:06


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840