全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值4 m3 u/ f4 a- @. M* Z) U3 b3 s
   当a=b=c=0时,n=3
- E7 ^& C2 G5 x& \$ X3 {   当a=b=c不等于0时,n=16 y9 s" w0 l5 D9 ?
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3" G( D3 y, y6 l* `1 ^7 d9 }& u
   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123 5 ?! Y! _% j" D  }- E- Z

- Q' U+ K, H' E8 {2 c  ~% k
; W, O0 K" Q  U( o* O4 M
$ h! a! j1 i0 h/ X你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。
  s5 s' q  @6 K4 U% U# f0 Y2 z- ?1、三个队列,就用三个暂存区;; o8 {, ]7 z6 H# e) I, P( i
2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);0 t: U& h, V' q, ]
3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?
" F  q+ T1 h6 I我的建议是可以返回一个队列目前的数值,以暂存区为例8 [4 j; n, o' H- J: h# s
treenode item = parnode(1);! @6 i3 j( K: b, Q, v2 W9 S# H
treenode current = ownerobject(c);2 F& Y0 g( j5 c
int port = parval(2);
" v+ O* K1 o' {2 E- g9 _5 {int aa = getinput(node("/a",model()) - getoutput("/a",model());& Q* \. _8 j1 ~. @1 J
int bb = getinput(node("/b",model()) - getoutput("/b",model());" |/ y7 o$ R' N; M/ y1 |
int cc = getinput(node("/c",model()) - getoutput("/c",model());
/ w& S7 g: _: q+ t$ oif (aa=bb && bb=cc && cc==0){n=3;}8 }8 w, N7 H1 c2 l: L, Q
else if (aa=bb && bb=cc){n=1;}* k1 c* j2 B" i- P3 r$ e
else if (aa<bb && bb<=cc){n=1;}
4 q& e4 }, u4 v. b  Zelse if (bb<aa && aa<=cc){n=2;}$ l% z+ a! ^; G& ^% K( o
else if (cc<aa && aa<=bb){n=3;}
5 i8 v- w! V8 n) ]1 p7 P
/ N6 t  S- s4 P5 Y由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518 . r4 ]! L/ R' v1 r% P6 b" l
. c( `) Q- n8 @
* T9 u: |$ V3 T$ d  K
唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦
& B; g8 Q+ k; q) @
* [8 W  C  c2 E
* ~( B/ E7 |8 g7 E4 _/ p就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦 & y( V' B. l1 ^/ A- c7 X) E1 ?
. Q% Y0 W+ L4 y* C

7 J2 w' D; i* z7 b4 \( f呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦
1 z3 s8 S1 H1 n9 w, @& u0 o8 F1 `+ q- N8 T

6 T8 i3 U+ p  ~; L谢你啦,我在你的代码的基础改了改,出来了  g4 `5 \" ?' W4 x% u
if (aa==bb && bb==cc && cc==0){n=3;}  L9 T. K7 [/ L! z. o0 B. m$ G& P
else if (aa==bb && bb==cc){n=1;}
$ g4 T; D7 R3 P9 Relse if (aa<=bb && aa<=cc){n=1;}+ e5 g! x' x6 X: I8 ^  }
else if (bb<=aa && bb<=cc){n=2;}5 h- h3 D6 X, i4 o! T
else if (cc<=aa && cc<=bb){n=3;}
7 k+ R# w8 }2 T   setitemtype(item,n) ;# _, m9 W) D' o, b; r( ]
这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-10 00:11 , Processed in 0.073278 second(s), 15 queries .

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

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