Что тут неправильно ?var a:array[1..10,1..10] of integer;i,m,n,j,k: integer;...

0 голосов
204 просмотров

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

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.

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


Информатика (1.1k баллов) | 204 просмотров
Дано ответов: 2
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.

0

все равно у меня не сильно то получается

0

Помоги пожалуйста

0 голосов

Var a :array[1..10,1..10] of integer;

(24 баллов)
0

эм, и что ? ничего не изменится

0

не изменяется?

0

Мне вот это выдает: 30Ошибка времени выполнения: System.IndexOutOfRangeException: Индекс выходит за границы массива
Стек:
at Program1.Program.$Main() in C:\PABCWork.NET\Program1.pas:line 15
at Program1.Program.Main()