全球FlexSim系统仿真中文论坛

搜索
查看: 6175|回复: 6
打印 上一主题 下一主题

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值# L0 E5 x% h) [  r5 \$ y
   当a=b=c=0时,n=3
3 E0 w  a9 G. R; r   当a=b=c不等于0时,n=14 b5 @6 S: W: m2 d6 k
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3- B' y( j5 p3 B# O
   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123
2 |' I. ^2 |% |2 H1 c  b0 }' N) d: \3 I, z. |0 p

5 }5 m8 j% T2 O8 X* B( x0 }, i1 c/ o7 z2 e% W* Z3 }- C* E
你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。& u2 I; R1 D9 V4 M+ S) w
1、三个队列,就用三个暂存区;) U- k. T2 v0 c% c7 w
2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);1 D+ _% p) Q  B7 G
3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?% H9 ?8 u9 m, h! K6 a# c, j2 I* O
我的建议是可以返回一个队列目前的数值,以暂存区为例
/ r- b, ^/ U& Itreenode item = parnode(1);
, `2 X& {" {% f: W* ], R( s2 `treenode current = ownerobject(c);6 ]: o/ I0 Z3 p$ y* I" j
int port = parval(2);
2 O9 @) U  r& ?5 y6 y! }( ]int aa = getinput(node("/a",model()) - getoutput("/a",model());% L3 N9 m5 }8 o9 o& M
int bb = getinput(node("/b",model()) - getoutput("/b",model());
, J& m" l" u" W# u5 ^$ D: ?( Mint cc = getinput(node("/c",model()) - getoutput("/c",model());2 B& `  R( Z4 w" h6 {6 c
if (aa=bb && bb=cc && cc==0){n=3;}
& `- P5 P# L% E0 `0 \1 v% Melse if (aa=bb && bb=cc){n=1;}0 p& U6 E, S4 b4 V# p
else if (aa<bb && bb<=cc){n=1;}
! e3 M  K- S3 O8 Yelse if (bb<aa && aa<=cc){n=2;}
1 {! F9 c6 d0 c3 a1 aelse if (cc<aa && aa<=bb){n=3;}% l2 a6 q$ V; n0 s0 @3 y

8 X! @$ f( r  `! a' K2 l( ?由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518 . h8 ]# p1 ?! U

7 |1 w% u: l# E. e, z1 l2 g! L: ?0 p$ z; N+ c* M2 [# H
唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦
3 d, ~; U4 R. S" N' r8 q& ~
! A* S- V; X; w5 p! O. m0 z5 G7 z8 o, ]. ?# f  A- Z
就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦 4 i" f) r/ g: R) H

: M  v! S. @' m+ w! w, C! _( ]9 N
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦
" d( O/ o, f2 h8 s$ P7 Q: y3 V1 _8 j6 p' m1 A+ f

5 k) q9 L! r4 |, [谢你啦,我在你的代码的基础改了改,出来了* y1 _: ~- l4 \2 C9 m2 o
if (aa==bb && bb==cc && cc==0){n=3;}
: i0 T* A8 h* j1 W2 U1 N6 uelse if (aa==bb && bb==cc){n=1;}* ^5 P4 i7 f" J" \4 p" @2 a4 m$ d
else if (aa<=bb && aa<=cc){n=1;}4 b9 c+ }3 Q- i- }8 P' J* E/ X
else if (bb<=aa && bb<=cc){n=2;}% v" |9 g6 ?* b: W8 |4 K; U6 p3 x
else if (cc<=aa && cc<=bb){n=3;}
4 W( c/ s2 v$ c   setitemtype(item,n) ;
' b; K# z( H; D这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|全球FlexSim系统仿真中文论坛 ( 京ICP备14043114号-2 )

GMT+8, 2025-5-10 07:08 , Processed in 0.068298 second(s), 14 queries .

Powered by Discuz! X3.3© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表