У меня есть код, в который я ввожу каждый номер на новую строку, пока не напишу 0. Я смущен размером массива. В начале я объявляю, что A - массив с индексами от 1 до 5. Но когда я продолжаю писать и помещать более 5 чисел, кажется, что он все еще сохраняется, а затем используется вторым во время цикла. Как это возможно? Я думал, что если у меня закончится индексы, я получу ошибку.Pascal - размер массива
program testarray;
var hmez,
i:integer;
A:array [1..5] of integer;
begin
i:=0;
repeat
inc(i);
readln(A[i]);
if A[i]=0 then hmez:=i-1;
until A[i]=0;
for i:=1 to hmez do
writeln(A[i]);
end.
спасибо, поэтому вы предлагаете включить проверку диапазона, чтобы сделать мою программу правильной? – cgnx
Вы должны проверить, действительно ли индекс действителен в вашем коде. Проверки диапазона с использованием компилятора являются защитной сетью. Однако, да, вы обязательно должны включить их в любое время. –
Ваша программа неверна в вашей природе. Проверка поворотных диапазонов не приведет к правильности; это позволит вам точно знать, что это неверно. –