有关运算的问题?

colomozoho 2003-05-04 12:50:24
我自己写了一个函数:
function calculateb(s:string):string;
var a,b,c,d:real;
m:array[1..6] of real;
i:integer;
n:string;
begin
a:=1;
b:=1.5;
c:=(a+b)/5;
d:=strtofloat(s);
if d>=b then
begin
m[1]:=1;
for i:=2 to 6 do
begin
m[i]:=0;
end;
end
else
if d<a then
begin
m[6]:=1;
for i:=1 to 5 do
begin
m[i]:=0;
end;
end
else
for i:=1 to 6 do
begin
if (b-i*c)<=d<(b-(i-1)*c) then//这个地方出现了一个错误[Error] Unit4.pas(462): incompatible types

begin
m[i]:=(d-(b-i*c))/c;
m[i+1]:=((b-(i-1)*c)-d)/c;
end
else
begin
m[i]:=0;
end;
end;
for i:=1 to 6 do
begin
n:=n+floattostr(m[i])+',';
end;
result:=n;
end;
请问应该怎么样解决啊?
...全文
30 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
csouth 2003-05-04
  • 打赏
  • 举报
回复
if (b-i*c)<=d<(b-(i-1)*c)
这句语法写错了吧!你这句等效于((b-i*c)<=d)<(b-(i-1)*c)
这样((b-i*c)<=d)结果是个布尔值,(b-(i-1)*c)是一个Real值,当然会出现类型不匹配了
RuinRice 2003-05-04
  • 打赏
  • 举报
回复
同意
up
hhaibin 2003-05-04
  • 打赏
  • 举报
回复
if (b-i*c)<=d<(b-(i-1)*c) then

改为

if ((b-i*c)<=d) and (d<(b-(i-1)*c)) then

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧