全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值6 x( s! z) @# Q
   当a=b=c=0时,n=3
1 |: G+ z$ m$ B+ e   当a=b=c不等于0时,n=19 W; }+ n# `5 @* K: h( u
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
5 {+ L" J" |  t) C& e   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123
: d: r: I" ?) {: R
2 i2 s' l: Z0 x8 U+ k0 y5 n4 j) `) I) L' |
7 G# N* {$ N1 P0 u' C! G2 g
你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。3 X7 r* Q& V0 ]7 e0 i
1、三个队列,就用三个暂存区;
3 [0 H* c7 a# @0 V. d& K" G2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);0 y7 p4 i' u, ]
3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?+ _; j' R1 P- [9 c
我的建议是可以返回一个队列目前的数值,以暂存区为例
* W+ q$ z0 @8 L9 Gtreenode item = parnode(1);
# }3 _3 m+ q% m; f! p0 t8 [treenode current = ownerobject(c);: D, _0 n' @; L4 C! w% Z
int port = parval(2);
7 X4 S) G* W& H& }, ~) fint aa = getinput(node("/a",model()) - getoutput("/a",model());8 C  O1 x/ \% S: \' W; F
int bb = getinput(node("/b",model()) - getoutput("/b",model());$ {% K* f' b6 N! g
int cc = getinput(node("/c",model()) - getoutput("/c",model());
8 @% y0 w. U3 k" Y! U# Z2 Dif (aa=bb && bb=cc && cc==0){n=3;}& B2 E% `4 H! @# \5 l  f( h, B
else if (aa=bb && bb=cc){n=1;}
( T3 ]# t! Y( G3 c( z' helse if (aa<bb && bb<=cc){n=1;}
9 C+ \3 ~$ Z, p5 ~' delse if (bb<aa && aa<=cc){n=2;}
: L9 A$ z1 [& ?else if (cc<aa && aa<=bb){n=3;}# R3 \, Y8 `; ^5 h

0 K+ Z5 ^) x2 J* h3 l8 \由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
5 X$ U: |! p& b9 n" u# a2 W4 @- i) X

' D3 \6 m  X  S: ~: B唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦
0 D% R/ ?( w8 I7 e
! a0 q4 D! f/ R7 f8 l: Z& O2 |0 G, I8 W. L+ T/ H+ i
就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦
9 O0 n( K9 Y' e9 {5 N; E2 r4 {: H
- A0 z! V; [- o, |! y: h& B$ ?" C5 E$ M
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦 , s0 ~$ p& Y/ F8 F% h- `

. R) z: I4 S) \- {, B) l
' @4 n* p+ O8 a" k' |! I谢你啦,我在你的代码的基础改了改,出来了
) x- A4 V; Q9 R" g& Y& ?  Nif (aa==bb && bb==cc && cc==0){n=3;}" v, t3 f2 Z; q+ M
else if (aa==bb && bb==cc){n=1;}
' x- u4 ~2 ?! z% |: d5 K# nelse if (aa<=bb && aa<=cc){n=1;}  t1 J  X/ {% Z1 [
else if (bb<=aa && bb<=cc){n=2;}
$ G; Y/ w4 F1 }0 x# Felse if (cc<=aa && cc<=bb){n=3;}$ C6 \8 u% }; Q9 ^3 Q1 G3 M# X
   setitemtype(item,n) ;8 l2 Q+ }4 |& w' n
这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-10 12:01 , Processed in 0.076745 second(s), 14 queries .

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

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