Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];
ВнизЛюди Как массив заполнить? Найти похожие ветки
← →
rlzzz (2007-08-01 21:29) [0]А заполнить нужно матрицу 5 на 3 спиралью те
1_2_3_4_5
12-13_14_15_6
11_10_9 _8_ 7
какие мысли у кого я второй час сижу позеленел уже ... помагите
← →
palva © (2007-08-01 22:09) [1]Ну какие могут быть мысли?
Ну, заполнять не по часовой, а против часовой стрелки. Можно еще начинать изнутри...
← →
rllzzzz (2007-08-01 22:15) [2]если бы матрица была бы 10 на 10 например то вопросов бы не было....
нужно по часовой с левого верхнего
← →
Lacmus © (2007-08-01 22:34) [3]http://forum.codenet.ru/showthread.php?t=33911
← →
Lacmus © (2007-08-02 11:08) [4]На основе 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;
← →
rllzzzz (2007-08-02 14:11) [5]СПС
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c