Массивы. Возможные ошибки
Материал из Вики проекта 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.