全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值
. a+ m0 s9 |4 o* A) a/ N. W   当a=b=c=0时,n=38 R( j' L* P" h
   当a=b=c不等于0时,n=19 u/ T5 ^7 x4 U/ Z/ G" A6 `6 v6 E
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
4 d7 k7 U; l: Q   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123
5 t- G0 m8 M" l' j6 O$ P% w$ a, A& j6 {$ k" E! g

. H! F5 c( C% h/ ?) V  G* m1 A6 c* X, d
你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。
5 k) @! K" ?7 m7 x+ e2 m4 d; p1、三个队列,就用三个暂存区;
! Y! t; R9 k( `# @4 L, F. ^2 k! z: B! Z  `2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);2 t4 R  x6 I# s8 K/ w
3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?: r( ?# B& J0 t7 C
我的建议是可以返回一个队列目前的数值,以暂存区为例
! l. [7 o0 D- \treenode item = parnode(1);, g, B) t: N0 B8 k
treenode current = ownerobject(c);
" k6 [( o* b3 {+ H9 Xint port = parval(2);
! u+ V8 F, v' V6 {# q  e7 g) Nint aa = getinput(node("/a",model()) - getoutput("/a",model());
5 ]& M) @( o, t1 W/ Dint bb = getinput(node("/b",model()) - getoutput("/b",model());
! h0 p) Q& c! ^3 oint cc = getinput(node("/c",model()) - getoutput("/c",model());
/ u0 W/ ~' `7 `( @/ o5 `if (aa=bb && bb=cc && cc==0){n=3;}$ N1 m5 u8 g+ s9 j7 F
else if (aa=bb && bb=cc){n=1;}. n2 l, Q# k: d  Q) n! Q. y
else if (aa<bb && bb<=cc){n=1;}7 S  p4 O% g3 Q3 |! j0 h% r  f0 S
else if (bb<aa && aa<=cc){n=2;}
* B& L: ^! ^4 ?; Welse if (cc<aa && aa<=bb){n=3;}- F3 y& f% m% O. A# F
* t7 Y% y" Z3 E, ]2 g. O
由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
3 N2 P- r  g6 [' s8 Z4 o4 e- W6 j0 A  r7 z: U9 R$ {/ v7 e
2 I0 F' O8 f6 D
唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦 ( C% S2 u3 j- @- w+ K' E9 O0 Z# h0 Z
/ d3 _5 J, g/ ?- |- H5 d8 s1 N
+ b4 t5 z8 j" l, w. d% @
就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦
4 C' ?$ S$ G& \& R- P' c, L2 Q9 [. {0 r  A% h

. }  i# B( ?" X呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦
9 W3 T& c( N0 j$ Q- u; ?. O) ?' ?0 m' {7 ?

8 y* H+ w/ `8 `/ U谢你啦,我在你的代码的基础改了改,出来了# D3 _& Y$ z4 a
if (aa==bb && bb==cc && cc==0){n=3;}
8 {5 K' _& H5 a' V( f2 uelse if (aa==bb && bb==cc){n=1;}
- h# B, t4 J& ielse if (aa<=bb && aa<=cc){n=1;}
/ }. f5 J# C- u* O. y) n4 \. qelse if (bb<=aa && bb<=cc){n=2;}6 i: G! b) [7 G' o. k
else if (cc<=aa && cc<=bb){n=3;}
' v* w4 `, V2 O5 i' r% w! b   setitemtype(item,n) ;
4 L- I7 s6 F) [8 Y& d: N这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-6 00:29 , Processed in 0.083349 second(s), 14 queries .

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

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