全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值
+ k3 E/ d  e7 _" L1 I   当a=b=c=0时,n=3
) b! I( ~+ u1 o+ ?7 o   当a=b=c不等于0时,n=1$ d( M1 X$ p' B9 n9 h; k& P
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
7 ~5 f7 ]! q! r   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123
6 X) R/ ~2 a6 A) Y( D3 X( w
0 z8 x, H2 X7 f/ Y( F* U; ^
2 v# R6 l, m+ ~. |: ]4 H# m' y4 G; ^# _
. x, r7 ?- O* s" k( ~% G/ Y) H你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。
$ N' A8 G9 |9 H* d7 Q$ H% `8 A/ I1、三个队列,就用三个暂存区;
. z5 o) F' D( `  _9 ~! H2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);9 o  E0 q) ]2 a
3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?
9 A! o' n  `$ S/ X. K3 R9 I5 n# d我的建议是可以返回一个队列目前的数值,以暂存区为例
( [- L+ n' P, A  R% Q1 |& Y8 itreenode item = parnode(1);
/ O0 @' Q5 G6 m3 Itreenode current = ownerobject(c);
; B. l, q3 D, nint port = parval(2);
) U  P) F2 l# X1 N% A0 u$ Sint aa = getinput(node("/a",model()) - getoutput("/a",model());
' d2 b/ {7 x7 H: b) O- I: f; ~int bb = getinput(node("/b",model()) - getoutput("/b",model());
6 Y' ]5 Y5 T* t4 r% M. Zint cc = getinput(node("/c",model()) - getoutput("/c",model());/ [, ^" B* y# J( y8 w% a5 u+ @
if (aa=bb && bb=cc && cc==0){n=3;}% `5 W/ B, i/ S  `2 o& D' x
else if (aa=bb && bb=cc){n=1;}
" t% E' e, v# welse if (aa<bb && bb<=cc){n=1;}
9 N- |/ T, v0 n8 i- zelse if (bb<aa && aa<=cc){n=2;}6 d9 T, T1 u1 s+ |4 b3 ?4 \* A9 m
else if (cc<aa && aa<=bb){n=3;}. i: K3 D- j% u% h) V' S3 @: ?( v- F

7 @+ d) U, U* Y/ i由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518 $ w; G1 e5 h6 ]0 j7 `6 M
# X+ i1 i& {3 ]2 C) j  ~

" P) @, z0 J$ h0 z唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦
1 U9 y) e* a+ T# X6 V  B( M  N1 E- D4 c! J  `% `

5 c7 K( l$ G3 q3 h7 T0 q就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦 $ t8 D+ h: Q0 s1 B5 p
" F# l* O; n, X- D% _  D$ ]  B* |6 m

5 O% j/ F" f3 ]( F4 n呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦 9 ]; W0 b5 o- a# B3 X
! E3 D3 B" ^$ U- w
' ?- @# Q/ O  O
谢你啦,我在你的代码的基础改了改,出来了
: E. h. N( D0 I  {1 a4 j4 o  Z. ]if (aa==bb && bb==cc && cc==0){n=3;}. M8 V. i7 k9 J6 Z* Z7 F
else if (aa==bb && bb==cc){n=1;}
7 X6 j% z2 |8 l6 g; O* zelse if (aa<=bb && aa<=cc){n=1;}
: a* j) M1 e9 g3 S; k2 Velse if (bb<=aa && bb<=cc){n=2;}
3 J6 _, I! ]' m+ N  h! lelse if (cc<=aa && cc<=bb){n=3;}% s" z: ]+ b' I7 _7 n
   setitemtype(item,n) ;
* d8 ^9 ?% A9 F8 k& G这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-5 23:19 , Processed in 0.062615 second(s), 15 queries .

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

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