主题:一道题
wenjb
[专家分:0] 发布于 2008-09-21 17:42:00
已知某梯形的上底A13,下底B18,高H=9,求它的面积s。
我怎么做他都是tybe mismatch
回复列表 (共3个回复)
沙发
angwuy [专家分:2280] 发布于 2008-09-23 16:56:00
注意类型之间的转换问题
板凳
SupermanTm [专家分:130] 发布于 2008-09-27 06:41:00
经典教科书做法:
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 楼
xx小小迷 [专家分:80] 发布于 2008-09-27 20:42:00
var s:real;
a,b,h:integer;
begin
a:=13;
b:=18;
h:=9;
s:=(a+b)*h/2;
writeln(s);
end.
我来回复