全球FlexSim系统仿真中文论坛
标题:
关于队列比较的求助
[打印本页]
作者:
diudiu123
时间:
2013-6-21 23:04
标题:
关于队列比较的求助
现在有三个队列长度 a,b,c,n有1,2,3三个取值
7 W% A: X" P4 b7 V1 M2 G. h
当a=b=c=0时,n=3
D& A& t$ s; w) |3 f% c3 c+ N J
当a=b=c不等于0时,n=1
~0 K& E& H9 Z2 t* `2 g
当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
6 ^' c1 H: ]# d' e
求助flexsim里这个代码怎么编
作者:
天性518
时间:
2013-6-23 11:46
1#
diudiu123
6 _: n' U# E0 \0 Q- w* i
% ~, f g! z5 X, C
: Z2 }# {, p4 ]8 B4 e- _: ^$ F9 K3 ]
- ^: J7 r6 ]5 |$ U2 o- ^, R
你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。
: M. }& R" \% x; _8 k$ N! ?, r. H
1、三个队列,就用三个暂存区;
% N, | x @, w* a
2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
* r2 y6 m( P% T g5 Z
3、n的值可以通过设置一个标签来获取;
作者:
慧娴亚伦
时间:
2013-6-23 13:05
队列是指暂存区排队还是传送带排队呢?
) r5 v* `' [# C9 B% U! Y8 i
我的建议是可以返回一个队列目前的数值,以暂存区为例
' |4 u, G. V: i3 Y
treenode item = parnode(1);
4 E8 j$ r! |2 s! A) R3 B2 I
treenode current = ownerobject(c);
# Q, P4 v6 S3 Y# t. Q! J7 k$ F8 e
int port = parval(2);
5 j. |( m1 O! t5 M% J" r! H
int aa = getinput(node("/a",model()) - getoutput("/a",model());
" Z4 V$ z2 z; b
int bb = getinput(node("/b",model()) - getoutput("/b",model());
S/ F$ f' T. x9 ], C- t5 g2 S; @
int cc = getinput(node("/c",model()) - getoutput("/c",model());
/ M( ?$ ~, p2 W5 A
if (aa=bb && bb=cc && cc==0){n=3;}
1 Q; {$ d8 h m* W5 H7 z
else if (aa=bb && bb=cc){n=1;}
7 f) i: h3 n: I
else if (aa<bb && bb<=cc){n=1;}
& a: X- n0 |6 U$ b6 S* w6 n
else if (bb<aa && aa<=cc){n=2;}
3 B* y9 E, ]* A# z0 P# c2 Z! U
else if (cc<aa && aa<=bb){n=3;}
# P7 U& J% a* j9 Z& d/ A
: m6 r2 o7 D- L9 O- a7 B+ ^8 b$ o, j
由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
作者:
diudiu123
时间:
2013-6-23 21:30
2#
天性518
i3 i! c1 r' p+ |. {4 i
. ]' u. h1 b2 f b$ }
$ f9 z: V5 ^2 Y8 ~) p
唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
作者:
diudiu123
时间:
2013-6-23 21:31
3#
慧娴亚伦
/ K8 l8 x- D# m& f( ?0 ]
$ {4 P# p7 Q: e) A
( M; c$ T1 i I7 M7 {$ P7 \
就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
作者:
diudiu123
时间:
2013-6-23 21:44
3#
慧娴亚伦
7 F' e% J, e" @
6 D- x- E1 F, ]& F- p. b
, c" `4 b! {$ B" K& |
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了
作者:
diudiu123
时间:
2013-6-23 21:58
3#
慧娴亚伦
4 I6 M, z' d5 G% d7 z" J
* V! k) f9 U( F$ N
" V- j& W! g8 @7 ]
谢你啦,我在你的代码的基础改了改,出来了
% g% B; f! K$ y% z2 Y9 Y
if (aa==bb && bb==cc && cc==0){n=3;}
* T! k! @$ m' y! ?( _6 K. z
else if (aa==bb && bb==cc){n=1;}
* t8 D# A8 K3 M8 J3 |
else if (aa<=bb && aa<=cc){n=1;}
5 Y W1 ?9 y; |$ p! [1 t
else if (bb<=aa && bb<=cc){n=2;}
3 q1 K/ v/ D- ]: b- y8 _( J' `6 W7 l
else if (cc<=aa && cc<=bb){n=3;}
9 M1 ?* B- F2 S/ V# ~
setitemtype(item,n) ;
6 ~, h+ T7 {# w- L1 K$ p" n
这样就好了
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3