Показать сообщение отдельно
  #1  
Старый 07.06.2010, 23:45
west.by west.by вне форума
Прохожий
 
Регистрация: 07.06.2010
Сообщения: 6
Репутация: 10
По умолчанию Особая сортировка нечетных чисел в стрингриде

Просто вручную или рандомно вводятся числа. по клику(если вручную вводим) нечетные числа должны быстренько свалить в стрингрид 2 , но в первом четные должны дружнеько без пробелов восстановиться

обязательно использовать два стрингрида!(((((
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, Grids ;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    StringGrid2: TStringGrid;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    BitBtn1: TBitBtn;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  n,k,i:Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
n:=3;
Edit1.Text:=IntToStr(n);
StringGrid1.ColCount:=n;
StringGrid2.ColCount:=n;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
n:=StrToInt(Edit1.Text);
StringGrid1.ColCount:=n;
StringGrid2.ColCount:=n;

end;

procedure TForm1.Button2Click(Sender: TObject);
Var a,b : Array of Char;  	//преобразование массива
k,i : Integer;
begin
    SetLength(a,n);
  SetLength(b,n);            //и результирующий b массивы
  For k:=0 to n-1 Do         //считывание значений массива а
  a[k]:=StringGrid1.Cells[k,0][1]; //из StringGrid1
  i:=0;
  For k:=0 To n-1 do
     if a[k] in ['0'..'9'] Then Begin
b[i]:=a[k]; 	
Inc(i);
 End;
  For k:=0 To n-1 Do
     if Not(a[k] in ['0'..'9']) Then Begin  // тут сортирую нечетных
      if a[k] mod 2 <> 0 then k:= k+1;
 b[i]:=a[k];
 Inc(i);
 End;
  For k:=0 To n-1 Do         //вывод массива b в StringGrid2
     StringGrid2.Cells[k,0]:=b[k];
   a:=Nil;  b:=Nil;  		   //освобождение памяти
end;



procedure TForm1.Button3Click(Sender: TObject);
begin
if StringGrid1.Cells[0,0]='' then
for i:=0 to n do
StringGrid1.Cells[i,0]:=inttostr(random(100));

end;

end.
Вложения
Тип файла: rar лвс.rar (3.8 Кбайт, 0 просмотров)
Ответить с цитированием