inputbox() 什么意思,象是c++的写法,当然出错!

解决方案 »

  1.   

    StrTofloat(Inputbox())的意思是:将Inputbox()的值由string类型转换为
    float类型,因此必须保证Inputbox()是一string类型的数据.
      

  2.   

    inputbox()是让用户输入一个字符串。
    你的出错信息应该是没有足够的参数。
    inputbox()有三个参数,都是常量字符串。
    第一个是inputbox窗口的标题,第二个是提示信息,第三个是默认的输入值。
      

  3.   

    const 
    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; 
      

  4.   

    上面的修改是有道理的。
    下面的程序已经调试通过:
    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结构
      

  5.   

    呵呵..一开始你的sum怎么可以是常量呢?在内存中常量和变量的分配的地址是不同的,其性质也不同,一旦定义为常量就不可以修改了!!!!11
    其他的我没有仔细看,我觉得这是个主要问题