全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值
' q# Y/ x: j* o: L! C6 F   当a=b=c=0时,n=3
7 Z4 C4 H6 j0 X  o3 F" X   当a=b=c不等于0时,n=1! l- Y# b. J% M( g2 D: M, P
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
. n' H/ L: a# L  s! h   求助flexsim里这个代码怎么编
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦
# d9 I* ~2 O! x
" V; }% n6 ?7 F8 T( c5 K) X6 ]! U: p6 u8 g7 d" X
谢你啦,我在你的代码的基础改了改,出来了6 Z! ?  B+ [4 i6 T& N+ D
if (aa==bb && bb==cc && cc==0){n=3;}
7 g5 v, }% H/ p4 H9 f5 a4 kelse if (aa==bb && bb==cc){n=1;}
2 C( {. \' U8 t* V8 Melse if (aa<=bb && aa<=cc){n=1;}1 O2 O8 @  C6 i3 m; J1 P+ d5 k' V
else if (bb<=aa && bb<=cc){n=2;}
- b* W6 E% ^7 [& L" Xelse if (cc<=aa && cc<=bb){n=3;}" n" p: Q2 }1 T6 M7 `) d
   setitemtype(item,n) ;
5 @2 X" H; B- Q; L7 L( R这样就好了
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦 1 F8 b- E5 S# ]0 |; {( w) \" N

+ P+ k% i3 y& a& H; t& r0 [' S% n! z! x' n, P
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦
* r" K3 e7 `% @) S. P$ u3 r& S/ R6 \. i3 K: V$ M
9 r3 \& q" P3 @: J7 k
就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
: R0 P  p' \* ]* i* ?8 c/ [" ^! z0 J5 E/ U$ U3 Q: O
# x3 ~1 Y) t. O( A& a
唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?
0 s4 O1 X2 x- }/ `我的建议是可以返回一个队列目前的数值,以暂存区为例
+ h4 Z% h+ n4 |( I$ O% O! ~, @, qtreenode item = parnode(1);' k' [9 `+ |6 H" t4 t, U  \+ F
treenode current = ownerobject(c);
8 P8 {3 s+ ^- a( c3 ~$ ]int port = parval(2);
! a9 [  ?0 {7 }7 O; q! P& bint aa = getinput(node("/a",model()) - getoutput("/a",model());. o( {( Z7 D5 z( a
int bb = getinput(node("/b",model()) - getoutput("/b",model());
+ h  {) F+ C5 D3 R& {/ S. n, o/ vint cc = getinput(node("/c",model()) - getoutput("/c",model());
' j4 Z/ r8 A% T6 ^0 [5 `if (aa=bb && bb=cc && cc==0){n=3;}
1 j, l! H4 i9 v9 C+ \4 o. @: V" _else if (aa=bb && bb=cc){n=1;}9 ~2 x* Z, E2 U) _- v7 w
else if (aa<bb && bb<=cc){n=1;}
7 s& N6 r  x0 w, Welse if (bb<aa && aa<=cc){n=2;}
. \3 i# ~: }' i+ z5 u9 xelse if (cc<aa && aa<=bb){n=3;}! y7 N7 S& l/ ^1 [6 z" J: T& M( _

, u3 g! _( a' n由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123
: x1 \/ p; b( Y8 E2 ?9 D  B/ x% f1 a, d2 n, R( d8 r3 V
/ E) o3 e$ ~3 H8 D: i$ t# u  j
. m! [3 @$ P' ]1 M! x7 L2 q) @0 l2 C
你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。- _2 _6 [* x( X/ M1 C
1、三个队列,就用三个暂存区;
( C$ E4 F9 Q, e- G% t# [" }7 I6 |! ]2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);: J7 D* Z! V1 ~* ]; R- u$ E) [. u
3、n的值可以通过设置一个标签来获取;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-6 00:43 , Processed in 0.090692 second(s), 15 queries .

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

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