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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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, 22:15   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,994
Репутация: 6725
По умолчанию

Код:
n:=ord(st[1]);
m:=ord(ps[1]);
Это что?
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар на форуме   Ответить с цитированием
Старый 26.11.2017, 10:02   #3
newerow1989
Я самый любопытный
Профессионал
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Адрес: RU, Алтайский край, Красногорский р-н, с. Балыкса, ул. Центральная Сообщений: 7,541 Репутация: 37104
Сообщений: 1,776
Репутация: 1673

skype: newerow1989
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Это что?
Похоже это порядковый номер первого символа в таблице 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


17:03.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.