implementation 
var 
  num:Array[1..10]of Integer;       
{$R *.dfm} 
procedure TForm1.Button1Click(Sender: TObject); 
var 
  m:Integer; 
  str:String; 
begin 
  Edit1.Text:='';                
  Edit2.Text:=''; 
  for m:=1 to 10 do 
    begin 
      str:=inputbox('请输入10个整数','输入第'+IntToStr(m)+'个整数','0'); 
      num[m]:=StrToInt(str);     
    end; 
  for m:=1 to 10 do 
      Edit1.Text:=Edit1.Text+IntToStr(num[m])+',';    
      Edit1.Text:=Copy(Edit1.Text,1,Length(Edit1.Text)-1);     
end; 
procedure TForm1.Button2Click(Sender: TObject); 
var 
  i,j,k,n:Integer; 
begin 
  for i:=1 to 9 do 
    begin 
      k:=10-i;                     
      for j:=1 to k do 
        begin 
          if (num[j]>num[j+1]) then 
            begin                             n:=num[j]; 
              num[j]:=num[j+1]; 
              num[j+1]:=n; 
            end; 
        end; 
    end; 
  for i:=1 to 10 do 
    Edit2.Text:=Edit2.Text+FloatToStr(num[i])+','; 
  Edit2.Text:=Copy(Edit2.Text,1,Length(Edit2.Text)-1);
end;
end.   
         在Button2按钮程序里的2个for循环嵌不是很理解,求高手指点(越详细越好)。
         还有begin一般是用在什么情况下 ?   为什么这个for i:=1 to 10 do  后面就没有begin ?             希望爱心人士帮帮忙,小弟感激不尽。  

解决方案 »

  1.   

    如果类似if for的语句后只有一行可以省略begin end
    在Button2按钮程序里的2个for循环.............这个就是简单的数组项替换好么?没有任何难度,看不懂就跟踪进去看看变量里的值就明白了
      

  2.   

    2个for是实现数组排序,这是常用的算法for后面只是单句可以不用begin …end
    若后面也是另一个循环体如for, while, repeat…或者with,case…等等
    把它看成一个整体,相当于一句,所以也可不用,如何代码太长的话,最好加上。