Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Выход индекса за границы массива [PASCAL]

Ольга Ученик (243), закрыт 11 месяцев назад
program ok;
uses crt;
var
s,t1,t2: string;
a, b, b1, c, i : integer;
begin
writeln('Введите слово');
read(s);
for i:= 1 to length(s) do begin
if (s[i] = 'о') then
a:=i;
delete(s,a,1);
t1:=s;
a:=0;
end;
writeln(t1);
end.
(Ошибка в строке 10)
Почему ошибку выдает не понимаю, я к i ничего не прибавлял. Каким образом может за границы массива выйти не понимаю
Лучший ответ
Андрей Высший разум (437108) 5 лет назад
readln(s);
for i:= length(s) downto 1 do if s[i] = 'о' then delete(s, i, 1);
writeln(s);
ОльгаУченик (243) 5 лет назад
А, понял. Спасибо
Остальные ответы
Imobilazer Искусственный Интеллект (222453) 5 лет назад
delete(s,a,1);
Обана, и вдруг длина строки уменьшается, а цикл по старой длине строки
ОльгаУченик (243) 5 лет назад
Дак у меня же длина строки в начале цикла определяется, если длина строки меняется, цикл тоже
Imobilazer Искусственный Интеллект (222453) Значит в твоем паскале меняется, в ABC ошибок вообще нет
www www Искусственный Интеллект (125236) 5 лет назад
result:='';
for i:=1 to length(s) if not(s[i]='o') then result:=result+s[i];
Похожие вопросы