Заполнение двумерного массива одним циклом

Пусть нам надо заполнить матрицу как таблицу умножения, т.е. каждый элемент равен произведению его индексов (a[i,j]=i*j)
Например:
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25

В принципе, неважно, как заполнять массив, главное, чтобы заполнить его одним циклом:
var
   n,m,i,j:integer;
   a:array[1..100,1..100] of integer;
begin
 read(n,m);
 i:=1;  {счетчик строк}
 j:=1;  {счетчик столбцов}
 while (i<=n) and (j<=m) do
  begin
   a[i,j]:=i*j;
   inc(j);  {увеличиваем счетчик столбцов}
   if (j=m+1) then {если текущий столбец вышел за пределы массива, то}
    begin
     j:=1;  {делаем текущим первый столбец}
     inc(i); {увеличиваем счетчик строки}
    end;
  end;
 for i:=1 to n do
 begin
  for j:=1 to m do
   write(a[i,j]:4); {выводим массив уже по-обычному}
  writeln;
 end;
 readln
end.
Теги:
массив
Добавлено: 21 Сентября 2013 01:50:27 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...