鱼C论坛

 找回密码
 立即注册
查看: 3278|回复: 4

冒泡程序V1.0的问题

[复制链接]
发表于 2012-3-1 20:41:40 | 显示全部楼层 |阅读模式
1鱼币
implementation
var
   num:array[1..100] of integer;
   i:integer =1;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
  label1.Caption:=label1.Caption + ' ' +edit1.Text;
  num:=strtoint(edit1.Text);
i:=i+1;
  edit1.text:='';
end;
procedure TForm1.Button2Click(Sender: TObject);
var
l,j,k,n:intrger;
begin
for l:=1 to i-1 do
begin
   k:=i-l;
   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;
Label1.Caption:='';
For l:=i-1 Downto 1 do
   Label1.Caption:= Label1.Caption + IntToStr(num[l]) + ' ';
end;
end.

以下是我的问题:
  1、定义变量 i :integer   这个 i  可以认为是数组的下标值 。为什么要赋个初值?且还赋值为1 那??有什么用了?
  2、i:=i+1 又有什么用处了???为什么让 i 加1  然后赋值给i 了??
  3、我觉得  K:=i - l 是不对的,应该是  K:=i -1 -l ;大家给分析分析。谢谢了

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-3-4 14:28:57 | 显示全部楼层
来个人给回复一下嘛  都等好几天了哦  来帮一把吧  亲~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-19 21:00:15 | 显示全部楼层
1. 变量i赋初值,是因为不赋初值时,编译时i的值是随机的,可能会令程序出错(尽管概率很低,但是要养     成良好的编程习惯),所有赋初值,至于初值为1,就是个人的习惯问题了,因为习惯了用i作为循环变   量,而循环变量一般初值为1! (也有为0的)

2. i: = i + 1;   只是实现变量 i 的数字加一,由于赋值语句是从右到左的,于是可以这样理解:
         (假设 i 等于 9),“:=”右边 i + 1 的值为10,再将 10 赋值给  i ,于是 i 的值为10,
         如此就实现了 i 的值加一(由 9 变为 10)
3. K:=i - l 对错的问题是说不清的,还是要实践,排序正确它就是对的,否则就是错的
    你认为它不对,可能是你的冒泡法的编程思路与小甲鱼的不一样,你可以将小甲鱼的程序运行
   一下试试,再改为你认为对的,再试试,看看谁是对的
   甚至可以按照自己的思路重新写一个程序,只要结果是对的就好,不需要纠结程序的每一段,关键是
  要理解冒泡法的原理!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-13 08:50:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-31 11:58:36 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 13:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表