inputbox() 什么意思,象是c++的写法,当然出错!
解决方案 »
- 怎么用正则表达式取出下面的值
- Grid++Report打印动态Dbgrideh的问题?
- 关于结构数组,请大家看一下
- 调用部署在windows2003下的webservice!@#$%^&*()_+|
- 发起最完美的Delphi VCL Unicode 兼容计划, 准备在sf.net开项目, 方案已定! 有经验的大虾请进!
- sql server数据库异常处理时的奇怪现象!急,高分求解
- 高手请进,delphi在打印方面用什么报表比较爽啊,大家讨论啊
- 一个关于QREPORT控件的问题,请大家帮帮我
- delphi 的 adoquery 的 loadfromfile 执行sql脚本
- 给点思路,如何写程序启动后的每日一提示??
- 如何將ADOConnection放到DLL中供其它Form調用
- !
float类型,因此必须保证Inputbox()是一string类型的数据.
你的出错信息应该是没有足够的参数。
inputbox()有三个参数,都是常量字符串。
第一个是inputbox窗口的标题,第二个是提示信息,第三个是默认的输入值。
Sum:=0.0;
var
Numbers:Array[1..5] of Real;
I:Integer;
begin
I:=1;
Numbers[I]:=StrTofloat(Inputbox());//注意Inputbox返回值必须为有效数据,加个异常处理
///////////////
try
numbers[i] := strtofloat(inputbox(...)) ;
except
numbers[i] := 0 ;
end ;
////////////
Edit1.Text:=floattostr(Numbers[I]);
while(I<=5)and(Numbers[I]>0) do //i<5改为i<=5
begin
I:=I+1;
Numbers[I]:=StrTofloat(Inputbox('输入','输入一个数','46.5'));
Edit1.Text:=floattostr(Numbers[I]);
end;
for I:=1 to 5 do
Sum:=Sum+Numbers[1];
Edit1.Text:='和是:'+floattostr(Sum);
end;
下面的程序已经调试通过:
var
sum: real;
Numbers:Array[1..5] of Real;
I:Integer;
begin
sum:=0;
I:=1;
Numbers[I]:=StrTofloat(Inputbox('输入','输入一个数','0'));
Edit1.Text:=floattostr(Numbers[I]);
while(I<5)and(Numbers[I]>0) do
begin
I:=I+1;
Numbers[I]:=StrTofloat(Inputbox('输入','输入一个数','0'));
Edit1.Text:=floattostr(Numbers[I]);
end;
for I:=1 to 5 do
Sum:=Sum+Numbers[I];
Edit1.Text:='和是:'+floattostr(Sum);
end;需要注意的是sum不能设为const,const是不能赋值的!
即,Sum:=Sum+Numbers[I];会出错!
确实只运行四次循环,因为外面已经有一次了,所以数组里面确实包括了你输入的5个数字。
运行这个程序必须在edit1中输入数字,否则会出错,要不就像阿聪讲的那样,用try/except/end结构
其他的我没有仔细看,我觉得这是个主要问题