Тема: Массивы
Показать сообщение отдельно
  #2  
Старый 21.12.2009, 02:10
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

интересная задачка)

Код:
procedure VVod(var m:mas);
var
  FColIndex,
  FIndex,
  r, c:Integer;
begin
  FIndex:=1;
  FColIndex:=Low(m);
  while FColIndex <= High(m) do
    begin
    for r:=Low(m[Low(m)]) to high(m[Low(m)]) do
      for c:=FColIndex to (FColIndex+1-ord(FColIndex+1 > High(m))) do
        begin
        m[r,c]:=FIndex;
        Inc(FIndex);
        end;
    Inc(FColIndex, 2);
    end;
end;

...-(ord(FColIndex+1 > High(m))... - на случай, если размеры массива будут не кратны двум)
Ответить с цитированием