
08.06.2010, 02:51
|
Модератор
|
|
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
|
|
Тебе надо именно только в StringGrid'e, или можно в них вывести только результат? Если можно обойтись результатом, то можно так:
Код:
procedure SortArray(var A : Array Of Integer);
var
I, J : Integer;
Buf : Integer;
begin
For I := Low(A) To High(A)-1 Do
For J := I +1 To High(A) Do
If A[i] > A[J] Then
Begin
Buf := A[i];
A[i] := A[J];
A[J] := Buf;
end;
end;
procedure FillGrid(AGrid : TStringGrid; A : Array Of Integer);
var
I : Integer;
begin
AGrid.RowCount := Length(A);
For I := 0 To AGrid.RowCount-1 Do
AGrid.Cells[0,I] := IntToStr(A[i]);
end;
procedure ProcessNumbers(AGrid1, AGrid2 : TStringGrid);
var
I, N : Integer;
A, B : Array Of Integer;
begin
SetLength(A,0);
SetLength(B,0);
For I := 0 To AGrid1.RowCount-1 Do
Begin
N := StrToInt(AGrid1.Cells[0,I]);
If (N Mod 2) = 0
Then
Begin
SetLength(A,Length(A)+1);
A[High(A)] := N;
End
Else
Begin
SetLength(B,Length(B)+1);
B[High(B)] := N;
End;
End;
SortArray(A);
SortArray(B);
FillGrid(AGrid1,A);
FillGrid(AGrid2,B);
end;
|