小弟不才,还望各位大虾指点!1.  指出下列代码错误并说明原因:if n>37.5 then
AmountEarned:=(n-37.5)*HourlyRate*1.5+37.5*HourlyRate;
else
AmountEarned:= n*HourlyRate;2.  指出下列代码错误并说明原因:
while (total<max) and (sum<=max) and (sum<total)
do statement1;3.  指出下列代码错误并说明原因:
procedure Tform1.TestBtnClick(Sender:Tobject);
var z,y,x:integer;
begin
    x:=100;
    y:=0;
    try
        z:=x div y;
    except
        on EdivByZero 
        do z:=-1;
    MessageDlg(''Z''+IntToStr(z),mtInformation,[mbOK],0);
    end;
End;

解决方案 »

  1.   

    3.  指出下列代码错误并说明原因:
    procedure Tform1.TestBtnClick(Sender:Tobject);
    var z,y,x:integer;
    begin
        x:=100;
        y:=0;
        try
            z:=x div y;
        except
            on EdivByZero 
            do z:=-1;
        MessageDlg('Z'+IntToStr(y),mtInformation,[mbOK],0); 
        end;
    End;
      

  2.   

    1:if n>37.5 then
    AmountEarned:=(n-37.5)*HourlyRate*1.5+37.5*HourlyRate;//吧分号去掉
    else
    AmountEarned:= n*HourlyRate;
      

  3.   

    第二个没有问题吧,不过好象条件重复了第三个在Except语句里On后面只能有一条语句,所以在Do后面两个语句需用being ... end
      

  4.   

    考试罢?
    1:if n>37.5 then
    AmountEarned:=(n-37.5)*HourlyRate*1.5+37.5*HourlyRate;//吧分号去掉
    else
    AmountEarned:= n*HourlyRate;
    2:
    while (total<max) and (sum<=max) and (sum<total)  //这条件更本就永远为 False
    do statement1;
    3:
    procedure Tform1.TestBtnClick(Sender:Tobject);
    var z,y,x:integer;
    begin
        x:=100;
        y:=0;
        try
            z:=x div y;
        except
            on EdivByZero 
            do z:=-1;
        end;
        MessageDlg('Z'+IntToStr(z),mtInformation,[mbOK],0); //这句不能放在 except 内
                 //''Z'' 改为 单引号
    End;