怎么计算一个数值的变化速度? 有一个数值,int型的。数值在不断增大,可以变化时间不是确定的。有可能每秒都在变,也有可能很久都不变,那么怎么计算出他的变化速度?也就是每小时增加了多少? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此变量的最新值 减去 其初始值, 就是它的变化值;最后一次变化的时刻,减去初时时刻,就是变化耗费的时间;通过上面两个数字即可算出每小时变化多少。也就是说,只需关心初始值(及时刻)及最新一次变化的值(及时刻)。var I, IChanged, IInit : integer; Time1, Time2 : Cardinal;procedure TForm1.Button1Click(Sender: TObject);//开始计时并测试begin I := 123; //赋初值 IChanged := I; //保存前一次变化值 IInit := I; //保存初值 Time1 := GetTickCount; //开始计时 Timer1.Enabled := True; Timer2.Enabled := True; //开始测试end;procedure TForm1.Timer1Timer(Sender: TObject);begin if I <> IChanged then begin Time2 := GetTickCount - Time1; Caption := Format('变量A正以每小时增值 %d 的速度变化',[(I-IInit)*((60*60*1000) div (Time2))]); IChanged := I; end;end;procedure TForm1.FormCreate(Sender: TObject);begin Timer1.Enabled := False; Timer1.Interval := 10;//这个数值越小,越精确。 Timer2.Enabled := False; //测试用的 Timer2.Interval := 1000;end;procedure TForm1.Timer2Timer(Sender: TObject);//测试,每秒自增1,也就是速度为每小时增加3600begin Inc(I);end; inno setup打包问题 怎么把TreeView行之间的那个高度调高点? 关于三层的远程方法调用的问题,为何老是死机? 在delphi中怎样去设计数据库存储AutoCAD图 listview中dbclick中如何取得被双击的项? 请问(初学者?) 关于IP地址的问题 请问如何在Delphi6.0中使用Delphi4.0做的VCL控件?各位大虾帮帮忙,有急用!!!一定给分。 如何接收串口数据? 如何对一个动态生成的控件操作? ADOQR.SQL.TEXT问题啊....怎么使用啊? TreeView的结点文本编辑问题,请指教!
最后一次变化的时刻,减去初时时刻,就是变化耗费的时间;通过上面两个数字即可算出每小时变化多少。也就是说,只需关心初始值(及时刻)及最新一次变化的值(及时刻)。var
I, IChanged, IInit : integer;
Time1, Time2 : Cardinal;procedure TForm1.Button1Click(Sender: TObject);//开始计时并测试
begin
I := 123; //赋初值
IChanged := I; //保存前一次变化值
IInit := I; //保存初值 Time1 := GetTickCount; //开始计时
Timer1.Enabled := True;
Timer2.Enabled := True; //开始测试
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
if I <> IChanged then
begin
Time2 := GetTickCount - Time1;
Caption := Format('变量A正以每小时增值 %d 的速度变化',[(I-IInit)*((60*60*1000) div (Time2))]);
IChanged := I;
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Enabled := False;
Timer1.Interval := 10;//这个数值越小,越精确。 Timer2.Enabled := False; //测试用的
Timer2.Interval := 1000;
end;procedure TForm1.Timer2Timer(Sender: TObject);//测试,每秒自增1,也就是速度为每小时增加3600
begin
Inc(I);
end;