全球FlexSim系统仿真中文论坛
标题:
关于队列比较的求助
[打印本页]
作者:
diudiu123
时间:
2013-6-21 23:04
标题:
关于队列比较的求助
现在有三个队列长度 a,b,c,n有1,2,3三个取值
+ C' h& U2 M: I4 u
当a=b=c=0时,n=3
4 N0 p( ]4 u, F
当a=b=c不等于0时,n=1
. a! c" p" J' C E2 K* x
当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
) K$ z% _3 j2 J
求助flexsim里这个代码怎么编
作者:
天性518
时间:
2013-6-23 11:46
1#
diudiu123
1 q, |" B) o9 T$ [: b' ]
6 V7 G: T5 A* w8 b& p
7 Z0 `( A' Y/ H8 @+ C. D) ~* d
1 p9 x. {, P8 ]1 H" G
你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。
% ]3 O7 T$ s$ _5 k1 u" ~7 u& f* s. r
1、三个队列,就用三个暂存区;
6 ]& A" @+ F. F1 {+ {) T
2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
6 y; e8 S T7 e
3、n的值可以通过设置一个标签来获取;
作者:
慧娴亚伦
时间:
2013-6-23 13:05
队列是指暂存区排队还是传送带排队呢?
3 ~& B' C# X6 @2 q6 Q
我的建议是可以返回一个队列目前的数值,以暂存区为例
. b# S; |0 m5 _9 l5 U; b5 y
treenode item = parnode(1);
; }) v0 Z( `2 ?1 ?1 w" g$ `
treenode current = ownerobject(c);
3 O0 k; W- X. t$ K% a6 U
int port = parval(2);
; ]2 Y: X/ w0 @
int aa = getinput(node("/a",model()) - getoutput("/a",model());
4 Y$ d& V# f! K+ D9 P7 O/ O! f5 g
int bb = getinput(node("/b",model()) - getoutput("/b",model());
5 m: \; F" k- {- Y7 B! o( r
int cc = getinput(node("/c",model()) - getoutput("/c",model());
) c( |. l; ~- B. b2 F2 H2 |! k
if (aa=bb && bb=cc && cc==0){n=3;}
( ^& x5 X8 O, Y6 m4 o
else if (aa=bb && bb=cc){n=1;}
4 M' `9 Q% f# P* q4 R
else if (aa<bb && bb<=cc){n=1;}
1 T1 w8 q/ {7 X: L& N/ B: y
else if (bb<aa && aa<=cc){n=2;}
* p- J& Z+ E$ B
else if (cc<aa && aa<=bb){n=3;}
/ H0 S O4 g( `# L# c1 L. Q4 r' v m
* }5 Z' O; n! ~" q7 G
由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
作者:
diudiu123
时间:
2013-6-23 21:30
2#
天性518
# e8 [3 j. Z( ~* A; }8 J4 j W q
4 e8 N- z! Z7 Y9 l7 I/ b
( u1 |( E2 i9 C. F0 c" r
唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
作者:
diudiu123
时间:
2013-6-23 21:31
3#
慧娴亚伦
- a& m; c/ j2 i
" t% R# X V2 H! {
, [" W+ _5 e* g
就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
作者:
diudiu123
时间:
2013-6-23 21:44
3#
慧娴亚伦
2 q9 X' Q+ O Z+ ]/ M
" R. E/ f! g2 t( _2 ?$ ^$ Q
: U7 Q, q8 M% O! i; x
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了
作者:
diudiu123
时间:
2013-6-23 21:58
3#
慧娴亚伦
+ S: Q) G, t, v0 N; v0 p5 {0 M
" i! w8 r7 A6 H9 j
9 Y: s1 [1 L" Y4 M4 b
谢你啦,我在你的代码的基础改了改,出来了
/ N7 h* u5 u* N! c2 |+ i
if (aa==bb && bb==cc && cc==0){n=3;}
+ K+ j, |4 u6 v$ C
else if (aa==bb && bb==cc){n=1;}
' {0 E6 b% i" b" R/ q ^5 X$ @
else if (aa<=bb && aa<=cc){n=1;}
& p* ?9 U. c3 K8 y2 F
else if (bb<=aa && bb<=cc){n=2;}
+ L$ l9 j) C/ c' q$ r" W( L
else if (cc<=aa && cc<=bb){n=3;}
1 Q, ]8 d- [' Z) a, g2 @+ ]% X7 l; A) k
setitemtype(item,n) ;
0 k! O. h6 D; f
这样就好了
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/)
Powered by Discuz! X3.3