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

Вернуться   Форум программистов > Delphi > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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


Ответ
 
Опции темы
Старый 23.01.2020, 17:33   #1
Alikcool
Новичок
Джуниор
 
Регистрация: 21.01.2020
Сообщений: 6
Сообщение Ошибка времени выполнения: Индекс находился вне границ массива

Данный код срабатывает через раз и выдаёт ошибку " Ошибка времени выполнения: Индекс находился вне границ массива."
а также : Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла

Код:
const n = 10;
var a: array[1..10] of integer;
begin
 write('Исходный массив: '); 
 for var i := 1 to n do begin
  a[i] := random(-9,9);
  write('a[', i, ']=', a[i], ' ');
 end;
 writeln;
 var i := 1; var x := n;
 while i <= n do
  if a[i] < 0 then begin
   x -= 1;
   for var ii := i to x do
    a[ii] := a[ii + 1];
  end else i += 1;
 write('Конечный массив: ');
 for i := 1 to x do write(a[i], ' ');
end.

Последний раз редактировалось Alikcool; 23.01.2020 в 17:40.
Alikcool на форуме Ответить с цитированием
Старый 23.01.2020, 21:20   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 2,173
По умолчанию

Не знаю, как там в ABC, но вообще-то переменные следовало бы описывать в соответствующей секции, чтоб не дурить бошку компилятору и себе. И форматировать текст хорошо бы так, чтоб читать его можно было без мата.
Код:
const n = 10;
var a: array[1..10] of integer;
var i,ii,x: integer ;
begin
 write('Исходный массив: '); 
 for  i := 1 to n do
   begin
     a[i] := random(-9,9);
     write('a[', i, ']=', a[i], ' ');
   end;
 writeln;
 i := 1;  x := n;
 while i <= n do
  if a[i] < 0 then
    begin
      x -= 1;
      for ii := i to x do  a[ii] := a[ii + 1];
    end
  else i += 1;
 write('Конечный массив: ');
 for i := 1 to x do write(a[i], ' ');
end.
-= - это в АВС такие Сишные выверты запупырены ?

Последний раз редактировалось digitalis; 24.01.2020 в 12:29.
digitalis вне форума Ответить с цитированием
Ответ

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

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
индекс находился вне границ массива Vantus Паскаль, Turbo Pascal, PascalABC.NET 2 02.05.2017 20:21
ошибка индекс находился вне границ массива stopping Помощь студентам 1 03.11.2016 20:33
Ошибка времени выполнения: Индекс находился вне границ массива (pascal) dijetol Помощь студентам 2 10.04.2014 16:16
Ошибка: Индекс находился вне границ массива archi-boy C# (си шарп) 11 15.11.2013 12:45
[C#] Индекс находился вне границ массива JonMagon Помощь студентам 12 22.01.2012 23:06


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS