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

Что тут неправильно ?

var a:array[1..10,1..10] of integer;
i,m,n,j,k: integer;
s:real;
begin
Write ('m=');readln(m);
write('n=');readln(n);
for i:=1 to m do 
for j:=1 to n do
a[i,j]:=random(50);
for i:=1 to n do
begin  for j:=1 to m do 
 write(a[i,j]:4);  writeln;end;
for i:=0 to m do
begin for j:=0 to n do
begin if a[i][j]=0 then
begin a[i][j]:=i+j;end;end;end;
a[i,j]:=k; writeln('k=',k);end.

Дан массив. Изменить массив по следующему правилу Все нулевые элементы заменить суммой индексов элемента;

Ответы

Автор ответа: mersic
0
var a :array[1..10,1..10] of integer;

Автор ответа: Trombozit
0
эм, и что ? ничего не изменится
Автор ответа: mersic
0
не изменяется?
Автор ответа: Trombozit
0
Мне вот это выдает: 30Ошибка времени выполнения: System.IndexOutOfRangeException: Индекс выходит за границы массива
Стек:
at Program1.Program.$Main() in C:PABCWork.NETProgram1.pas:line 15
at Program1.Program.Main()
Автор ответа: Аноним
0
Ты объявила массив от 1 до 10, а в конце в цикле пытаешься обратиться к элементу с индексом 0!
 (for i:=0 to m do
begin for j:=0 to n do)
Ну и куча мелких недочетов еще тут есть

const
  n=5;
  m=6;
var
  a:array[1..n,1..m] of integer;
  i,j: integer;
begin
writeln('Исходный массив:');
for i:=1 to n do
   begin
   for j:=1 to m do
     begin
     a[i,j]:=random(10);
     write(a[i,j]:4);
     end;
   writeln;
   end;
writeln('Измененный массив:');
for i:=1 to n do
   begin
   for j:=1 to m do
     begin
     if a[i,j]=0 then a[i,j]:=i+j;
     write(a[i,j]:4);
     end;
   writeln;
   end;
end.
Автор ответа: Trombozit
0
все равно у меня не сильно то получается
Автор ответа: Trombozit
0
Помоги пожалуйста
Похожие вопросы
Предмет: Математика, автор: adiamurat