回 帖 发 新 帖 刷新版面

主题:一道题

已知某梯形的上底A13,下底B18,高H=9,求它的面积s。
我怎么做他都是tybe mismatch

回复列表 (共3个回复)

沙发

注意类型之间的转换问题

板凳

经典教科书做法:
function TrapeziumSquare(A, B, H: Integer): Real; // 注意返回类型必须是 Real
begin
  Result:= (A + B) * H; // 这一步完成类型转换 Integer -> Real
  Result:= Result / 2;
end;

快速的方法(如果ABH都一定是整数)
function TrapeziumSquare(A, B, H: Integer; var Square: Integer): Boolean;
begin
  Square:= (A + B) * H;
  Result:= (Square and $1) <> 0;
  Square:= Square shr 1;
  if Result then Inc(Square); // 如果需要四舍五入则加上这一步
end;
结果在 Square,函数值为是否包含 0.5 的尾数

3 楼

var s:real;
    a,b,h:integer;
begin
  a:=13;
  b:=18;
  h:=9;
  s:=(a+b)*h/2;
  writeln(s);
end.

我来回复

您尚未登录,请登录后再回复。点此登录或注册