有两个Edit1,Edit2两个输入控件,一个Button按钮控件,当在Edit1里面输入数字如2,5,3,10,8。要求点击按钮后排序为2,3,5,8,10在Edit2输入控件里面显示出来。谢谢。我都不知道怎么写了,郁闷啊。

解决方案 »

  1.   

    我知道是冒泡排序法,但是现在的问题是如何来读edit1中输入的数字,然后如何出来排好序的数字。再请楼上的指教。
      

  2.   

    将Edit1里面的数字传到数组里
    下面的就是用冒泡排序法,给你传到数组的代码,其他的就不要说了吧------------------------------------------------
    ------------------------------------------------
    procedure TForm1.Button1Click(Sender: TObject);
    var
      a:array[0..4] of integer ;
      sl:tstringlist;
      i:integer;
    begin
      sl := tstringlist.Create;
      sl.Delimiter := ',';
      sl.DelimitedText := Edit1.Text;  for i:= 0 to sl.Count - 1 do
      begin
        a[i]:= StrToInt(sl.Strings[i]);
      end;
    end;
      

  3.   

    继续提问,望楼上的各位耐心指教,谢谢。
    function TForm1.maopao(a: array of integer): tStringlist;
    var i,j,temp:integer;
      list: tStringlist;
    begin
      for i := high(a) downto low(a) do
        begin
          for j := low(a) to i do
            begin
              if a[j]>a[j+1] then
                begin
                  temp := a[j];
                  a[j] := a[j+1];
                  a[j+1] := temp;
                end;
            end;
        end;
        list := tstringlist.Create;
        for i := low(a) to high(a) do
          list.Add(inttostr(a[i]));
        result := list;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      a:array[0..4] of integer;
      sl,s2,list:tstringlist;
      i:integer;begin
      sl:=tstringlist.create;
      sl.Delimiter:=',';
      sl.Delimitedtext:=Edit1.Text;
      for i:=0 to sl.count-1 do
      begin
       a[i]:=strtoint(sl.strings[i]);
      end;
      s2:=tstringlist.Create;
      s2:=maopao(a[i]);
      s2.Delimiter:=',';
      Edit2.Text:=s2.DelimitedText;
    end;
    我写的基本就是这个样子,不知道怎么输出的数字只有一个,还请各位具体指教。