Массивы. Возможные ошибки
Материал из Вики проекта PascalABC.NET
Попытка вывести массив не поэлементно, а целиком
const Sz = 100; var a: array [1..Sz] of integer; i: integer; begin read(a); // неверно: массив необходимо вводить поэлементно end.
Использование записи a[i] вне цикла
const Sz = 10; var a: array [1..Sz] of integer; i: integer; begin var N := Sz; for i:=1 to N do a[i] := Random(100); a[i] := 666; // Ошибка: переменной i нельзя пользоваться вне цикла for end.
Выход за границы диапазона изменения индекса
const Sz = 10; var a: array [1..Sz] of integer; begin var N := Sz; for var i:=1 to N+1 do a[i] := Random(100); // При i=N+1 происходит ошибка: индекс вне границ массива end.
Затирание элементов при сдвиге
const Sz = 100; var a: array [1..Sz] of integer; begin var N := 10; for var i:=1 to N do a[i] := Random(100); for var i:=1 to N do write(a[i],' '); writeln; for var i:=1 to N-1 do // ошибка: алгоритм сдвига вправо надо начинать с конца a[i+1] := a[i]; for var i:=1 to N do write(a[i],' '); end.
