
26.09.2010, 23:37
|
 |
Гуру
|
|
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
|
|
Тоже добавлю свое решение 4 задачки:
Код:
procedure TForm5.Button1Click(Sender: TObject);
Type
TDirection = (dRight, dDown, dLeft, dTop);
Var
Count, i, Col, Row: Integer;
Direction: TDirection;
begin
Count := MatrixSize.Value * MatrixSize.Value;
Direction := dRight;
Col := 0; Row := 0;
for i := 1 to Count
do begin
Matrix.Cells[Col, Row] := IntToStr(i);
case Direction of
dRight: if (Col + 1 = MatrixSize.Value) or (Matrix.Cells[Col + 1, Row] <> '')
then begin
Direction := dDown;
Inc(Row);
end
else Inc(Col);
dDown: if (Row + 1 = MatrixSize.Value) or (Matrix.Cells[Col, Row + 1] <> '')
then begin
Direction := dLeft;
Dec(Col);
end
else Inc(Row);
dLeft: if (Col = 0) or (Matrix.Cells[Col - 1, Row] <> '')
then begin
Direction := dTop;
Dec(Row);
end
else Dec(Col);
dTop: if (Row = 0) or (Matrix.Cells[Col, Row - 1] <> '')
then begin
Direction := dRight;
Inc(Col);
end
else Dec(Row);
end;
end;
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
|