Предмет: Информатика, автор: gerafsfd

Помогите пожалуйста: Ошибка времени выполнения: Индекс находился вне границ массива. (Не могу найти ошибку)
const
n=5;
var a,b:array[1..n] of integer;
i,j:byte;

begin
for i:=1 to n do
begin
write('Введите ',i,'-ый(ой) эелемент массива = ');
readln(a[i]);
end;
writeln;

writeln(' Массив "А"');
for i:=1 to n do
write(' |',a[i],'|');
writeln;

j:=0;
for i := 1 to n do
begin
if (b[j]>0) and (b[j] mod b[j]=0) and (b[j] mod 1 =b[j]) then
begin
inc(j);
b[j] := a[i];
end;
end;
writeln;
writeln(' Массив "B"');
for i := 1 to j do
write(' |',a[i],'|');
writeln;

end.

Ответы

Автор ответа: Blogger76
1
Обратите внимание на циклfor i:=n downto p do // вставка p   for j:=1 to n+1 do     c[i+1,j]:=c[i,j];У Вас массив с описан как c:array[1..n,1..n+1] of integer;В то же время, первый индекс у Вас в цикле меняется от  n+1 до p+1 (n+1 выходит за границу), а второй - от 1 до n+1 (это допустимо)


gerafsfd: там ошибка заключается в переходе границ массива, но я её не могу найти. В Writeln верно всё же.
Blogger76: щас исправлю секунду
Blogger76: Обратите внимание на цикл
for i:=n downto p do // вставка p
   for j:=1 to n+1 do
     c[i+1,j]:=c[i,j];
У Вас массив с описан как c:array[1..n,1..n+1] of integer;
В то же время, первый индекс у Вас в цикле меняется от  n+1 до p+1 (n+1 выходит за границу), а второй - от 1 до n+1 (это допустимо)

Подробнее - на Znanija.com - https://znanija.com/task/15699228#readmore
gerafsfd: у меня в массиве нету c:array[1..n,1..n+1] of integer, у меня вообще одномерный массив)
gerafsfd: у меня нужно перевести элементы с массива А в В, (переводить только те числа, которые являются неотрицательными и простыми.)
Похожие вопросы
Предмет: Литература, автор: Аноним
Предмет: Математика, автор: marsuleimanova