profile
Опубликовано 5 лет назад по предмету Информатика от alsaher1503

Ошибка времени выполнения: Индекс находился вне границ массива...чтто не так?
const n=30;
var i,j,p,q:integer;
c:array[1..n,1..n+1] of integer;
a:array[1..n+1] of integer;
b:array[1..n+1] of integer;

begin
readln(q,p);


For i:=1 to n do
For j:=1 to n+1 do
c[i,j]:=random(28)+1;


begin
for i:=1 to n+1 do
p:=random(28)+1;
end;

for j:=1 to n+1 do
begin
q:=random(28)+1;
end;

for i:=n downto p do// вставка p
for j:=1 to n+1 do//
c[i+1,j]:=c[i,j];//

for j:=1 to n+1 do c[p,j]:=a[i];
for j:=n+1 downto q do
for i:=1 to N+1 do
c[i,j+1]:=c[i,j];
for i:=1 to n+1 do c[i,q]:=b[i];

for i:=1 to n+1 do begin
for j:=1 to n+1 do
write(c[i,j]:2);
writeln;//
end;
end.

  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 (это допустимо)

    1. Ответ
      Ответ дан Аккаунт удален
      Откуда же я знаю, что надо? Зависит от того, каков алгоритм. Вы просили указать место ошибки и причину - я указал. А для того, чтобы ответить на вопрос о том, как это все должно быть на самом деле - это надо знать исходную постановку задачи и проверять, насколько заложенный алгоритм ей соответствует. Это совсем уже другая задача....
    2. Ответ
      Ответ дан alsaher1503
      ясно .спасибо.матрица прросто дана nxn+1
Самые новые вопросы