Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Люди Как массив заполнить?


rlzzz ©   (2007-08-01 21:29:00) 

А заполнить нужно матрицу 5 на 3  спиралью те
      1_2_3_4_5
12-13_14_15_6
11_10_9  _8_   7

какие мысли у кого я второй час сижу позеленел уже ... помагите


rllzzzz   (2007-08-02 14:11:00) [1]

СПС


Lacmus   (2007-08-02 11:08:00) [2]

На основе http://forum.codenet.ru/showthread.php?t=33911


const
 M = 3;
 N = 5;

type
 TMatrix = array[0..M - 1, 0..N - 1] of Integer;

procedure FillMatrix(var aMatrix: TMatrix; aM, aN: Integer);
var
 counter, x, y, d, j: Integer;
begin
 y := aN;
 x := aM - 1;
 d := -1;
 counter := 1;
 FillChar(aMatrix, SizeOf(aMatrix), 0);
 while (aM > 0) and (aN > 0) do begin
   for j := aN - 1 downto 0 do begin
     y := y + d;
     aMatrix[x, y] := counter; inc(counter);
   end;
   Dec(aM);
   for j := aM - 1 downto 0 do begin
     x := x + d;
     aMatrix[x, y] := counter; inc(counter);
   end;
   d := -d;
   Dec(aN);
 end
end;

function LeftPad(const s: string; aLen: Integer): string;
var
 i: Integer;
begin
 Result := s;
 for i := Length(s) + 1 to aLen do
   Result := ' ' + Result
end;

procedure TForm14.Button1Click(Sender: TObject);
var
 i, j: Integer;
 Matrix: TMatrix;
 s: string;
begin
 FillMatrix(Matrix, M, N);
 Memo1.Lines.Clear;
 for i := 0 to M - 1 do begin
   s := '';
   for j := 0 to N - 1 do begin
     s := s + LeftPad(IntToStr(Matrix[i, j]), 4);
   end;
   Memo1.Lines.Add(s)
 end;
end;


Lacmus   (2007-08-01 22:34:00) [3]

http://forum.codenet.ru/showthread.php?t=33911


rllzzzz   (2007-08-01 22:15:00) [4]

если бы матрица была бы 10 на 10 например то вопросов бы не было....
нужно по часовой с левого верхнего


palva   (2007-08-01 22:09:00) [5]

Ну какие могут быть мысли?
Ну, заполнять не по часовой, а против часовой стрелки. Можно еще начинать изнутри...


Наверх

Титульная страница Поиск, карта сайта Написать письмо