Массивы. Возможные ошибки: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) Нет описания правки |
Mikst (обсуждение | вклад) (→Ссылки) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
__NOTOC__ | |||
===Попытка вывести массив не поэлементно, а целиком=== | ===Попытка вывести массив не поэлементно, а целиком=== | ||
<source lang="Pascal">const Sz = 100; | <source lang="Pascal">const Sz = 100; | ||
Строка 56: | Строка 57: | ||
== Ссылки == | == Ссылки == | ||
[[Программы для начинающих]] | *[[Программы для начинающих]] | ||
*[http://pascalabc.net/ru/programmyi-i-algoritmyi-dlya-nachinayuschih.html Сайт PascalABC.NET: Программы и алгоритмы для начинающих] |
Текущая версия от 15:50, 19 января 2010
Попытка вывести массив не поэлементно, а целиком
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.