递归调用的算法问题。。。。。 ( 积分: 200 )

  • 主题发起人 主题发起人 LanHer
  • 开始时间 开始时间
L

LanHer

Unregistered / Unconfirmed
GUEST, unregistred user!
type
TgzXM = Record
Name : String;//表示名称
Express : String;//计算公式
Value : Double;//公式计算后的值
Calculated : Boolean;//是否是计算字段
Active: Boolean;//是否有效
end;
var
pub_XM: array [1..10] of TgzXM;

pub_XM的所有值如下所示;公式中有gz的,用后面的数字项Value代替,如:gz3用项目Name=3的Value代替.最后要把公式中Value=0.001的全部用正确的计算结果替换调。

pub_XM[1].Name:=1;
pub_XM[1].Express:= gz3+5+gz4;
pub_XM[1].Value:= 0.001;
pub_XM[1].Calculated:= True;
pub_XM[1].Active:= True;

pub_XM[2].Name:=2;
pub_XM[2].Express:= gz3+gz4;
pub_XM[2].Value:= 0.001;
pub_XM[2].Calculated:= True;
pub_XM[2].Active:= True;

pub_XM[3].Name:=3;
pub_XM[3].Express:= 50;
pub_XM[3].Value:= 50;
pub_XM[3].Calculated:= False;
pub_XM[3].Active:= True;

pub_XM[4].Name:=4;
pub_XM[4].Express:= 50;
pub_XM[4].Value:= 50;
pub_XM[4].Calculated:= False;
pub_XM[4].Active:= True;

pub_XM[5].Name:=5;
pub_XM[5].Express:= 50;
pub_XM[5].Value:= 50;
pub_XM[5].Calculated:= False;
pub_XM[5].Active:= True;

pub_XM[6].Name:=6;
pub_XM[6].Express:= gz2+gz3;
pub_XM[6].Value:= 0.001;
pub_XM[6].Calculated:= True;
pub_XM[6].Active:= True;

pub_XM[7].Name:=7;
pub_XM[7].Express:= 0;
pub_XM[7].Value:= 0;
pub_XM[7].Calculated:= False;
pub_XM[7].Active:= False;

pub_XM[8].Name:=8;
pub_XM[8].Express:= 0;
pub_XM[8].Value:= 0;
pub_XM[8].Calculated:= False;
pub_XM[8].Active:= False;

pub_XM[9].Name:=9;
pub_XM[9].Express:= 0;
pub_XM[9].Value:= 0;
pub_XM[9].Calculated:= False;
pub_XM[9].Active:= False;

pub_XM[10].Name:=10;
pub_XM[10].Express:= 0;
pub_XM[10].Value:= 0;
pub_XM[10].Calculated:= False;
pub_XM[10].Active:= False;
 
你的公式是怎么应用 ?让用户输入?如果是让用户输入,有公式编辑器这样的控件,可以很容易让用户输入计算公式。
如果只是你给出来的这样,不是让用户输入,或许修改一下,
pub_XM[1].Name:=1;
pub_XM[1].Express:= gz3+5+gz4

pub_XM[1].Value:= 0.001;<>pub_XM[1].Value:=pub_XM[3].Value+5+pub_XM[4].Value
pub_XM[1].Calculated:= True;
pub_XM[1].Active:= True;
pub_XM[2].Name:=2;
pub_XM[2].Express:= gz3+gz4;
pub_XM[2].Value:= 0.001;<>pub_XM[2].Value:=pub_XM[3].Value+pub_XM[4].Value
pub_XM[2].Calculated:= True;
pub_XM[2].Active:= True;
 
楼上的没明白我的意思,
不过这个递归调用已经解决了。
要分的进来给分。
 
哦,不错,学习
 
进来接分哦!
 
跟着大鸟学学
 
[:D]自己能够解决可惜你的分了
 
恭喜楼主哦~~~接分
 
进来看看,离开时顺手牵分。
 
再来两个就结了。。。
 
呵呵,抢...
 
我也来抢点分哈!
 
接受了。。。。
分给需要的人,在里面选拔了比较少分的人给!
 
后退
顶部