全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值/ v" _' P& |! J' J  t# G+ V5 G) D
   当a=b=c=0时,n=3
8 M' G8 D/ E8 c   当a=b=c不等于0时,n=16 `/ m, _0 e, n& }7 L9 F8 v7 [
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
8 z9 z  D, t2 l% h   求助flexsim里这个代码怎么编
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦
' b  Z3 O5 j+ U, D" `& ]- j6 W4 r$ Z; u
/ Q1 y+ W" h: w1 S1 u) S: x
谢你啦,我在你的代码的基础改了改,出来了: s4 |5 J+ c5 c0 A) A
if (aa==bb && bb==cc && cc==0){n=3;}2 F1 [2 F' Q" x
else if (aa==bb && bb==cc){n=1;}# }5 I) @! \) a1 x* e
else if (aa<=bb && aa<=cc){n=1;}- ?" I! H0 e4 T- m4 J$ o7 s
else if (bb<=aa && bb<=cc){n=2;}; E) Y7 Z, X! M2 R/ W
else if (cc<=aa && cc<=bb){n=3;}) R' f9 F3 x' ?7 E* \9 `9 L+ P
   setitemtype(item,n) ;% a: b1 D7 L+ u0 D
这样就好了
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦
  q; p; i& D' J0 x4 }( ]& ^9 o  [  A
1 a) W7 j! G6 P7 t( i( J( X+ Z. p" q- R
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦 ( ~. ?6 [5 }3 j6 ]' R( X

5 O; ]; g6 Y8 L" L5 j0 a8 i
% s, l- n$ }: S/ U3 I/ j* T2 ]' k9 x) g就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
3 ]" Z0 E7 r8 c7 E- R
& c$ V, ~* X9 ?  M" R  H0 P
3 A7 F, b& V+ m; [4 ?) Q唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?
3 i* x5 _6 J- T我的建议是可以返回一个队列目前的数值,以暂存区为例
/ S3 ^( Q# P( o$ s4 j  m( @treenode item = parnode(1);  G! j4 O) j& d6 `* U
treenode current = ownerobject(c);
( I! V9 w0 j/ l. \6 Fint port = parval(2);' ?) M4 V* z3 |& x3 _
int aa = getinput(node("/a",model()) - getoutput("/a",model());& {" d2 z$ p& m1 z: k# g
int bb = getinput(node("/b",model()) - getoutput("/b",model());
2 W1 W3 g$ M0 J: _' fint cc = getinput(node("/c",model()) - getoutput("/c",model());: K* ~' O1 @. y
if (aa=bb && bb=cc && cc==0){n=3;}6 g. k  O$ c( o5 a9 X1 g9 {- p
else if (aa=bb && bb=cc){n=1;}" Y+ H2 L0 L+ N: w( M) M7 H
else if (aa<bb && bb<=cc){n=1;}, e7 |. S% M9 ?: x7 d( i
else if (bb<aa && aa<=cc){n=2;}; R- e3 e. ]& U) A
else if (cc<aa && aa<=bb){n=3;}7 X% f% k4 T9 H7 H5 e0 N2 T! D$ m

8 ?) n# }5 Y! w8 E; V+ n+ Q由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123
* o' z' {0 H% t+ v7 v# D
9 \9 b$ ^, R" ~9 S2 h( n2 c# N8 W+ r7 X* I" Z- [/ m

# Z- S* q  b. V你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。5 z% x$ U4 f  y
1、三个队列,就用三个暂存区;% d& z; w6 r) k/ J0 S/ t, F
2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
' y1 K8 L6 j9 r* S8 x; i3、n的值可以通过设置一个标签来获取;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-10 08:13 , Processed in 0.061587 second(s), 15 queries .

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

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