全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值
/ X% E7 o& t: W4 g$ K  C) ^' \( v   当a=b=c=0时,n=35 p* G. |4 F3 F8 L" @
   当a=b=c不等于0时,n=16 A6 Y! k* m9 m1 v! H, N
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3; t7 N. s6 u% D2 s( r
   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123
  d* Y3 p* P8 r- d5 u; M6 t
1 R( v* {$ o4 U7 |2 o( `
. q! s: f8 G& V% t2 ^
8 c  o0 L' C: S0 T6 w" h& [9 W你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。
" n% Z4 d: p' G  ]' u1、三个队列,就用三个暂存区;
+ h( S- ]- f' B. b2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
& a/ z: Y$ l4 O# A5 p' t  Y; H. K* A3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?
* r* A; K8 U' R3 a我的建议是可以返回一个队列目前的数值,以暂存区为例
1 }2 q+ C" P+ d; Utreenode item = parnode(1);
) }) E7 E( I% ztreenode current = ownerobject(c);
+ I& z9 ^( s/ l/ J# [int port = parval(2);
& d1 k( M( B' Bint aa = getinput(node("/a",model()) - getoutput("/a",model());
4 y& r; |& a( I; \int bb = getinput(node("/b",model()) - getoutput("/b",model());
1 d; _5 M7 V5 i* z, Wint cc = getinput(node("/c",model()) - getoutput("/c",model());7 q) w! l0 q8 Y" `) |+ t, H( s" ~
if (aa=bb && bb=cc && cc==0){n=3;}
* M  }1 R/ [5 N4 W* h( c1 i6 Aelse if (aa=bb && bb=cc){n=1;}
% t- o4 G! [" W& x$ felse if (aa<bb && bb<=cc){n=1;}$ X4 j  `. u4 u5 X/ a  Y
else if (bb<aa && aa<=cc){n=2;}
8 G5 [8 s) F" b/ m6 J3 Yelse if (cc<aa && aa<=bb){n=3;}9 ]; z) Z# b0 C% {" y; d

7 K" `! C9 `4 y* t由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
" Q" o9 {3 u* M; [: I, i7 F6 N( F* ]$ r& \

& w$ a+ e4 o8 ]唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦 * U+ T2 \- k. g% k, ?  f, g; S( R, l
" h9 T# U, g/ K
9 z7 W% E9 k/ ^/ v
就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦
3 ]9 g- m7 V0 Y8 ?" A
) ]7 {: L* ~1 k0 E( Y8 b
5 P7 M# x( {  e/ m7 ?  P呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦 1 ~* O* [, u' n+ S: x1 g
' w/ r. o' f: y: Z1 t% U

5 _* s0 E7 L7 n. P, K4 Y/ l, ]# j: z2 R/ S谢你啦,我在你的代码的基础改了改,出来了+ c4 s) ]- x2 W. v1 k
if (aa==bb && bb==cc && cc==0){n=3;}8 Z3 @, b& R4 [/ A
else if (aa==bb && bb==cc){n=1;}
2 z' y- f: B! E7 `7 Yelse if (aa<=bb && aa<=cc){n=1;}
& o; L1 g: F5 X% a6 S. s1 M+ f0 Aelse if (bb<=aa && bb<=cc){n=2;}
7 O* x$ S  T$ m) B' n6 s- felse if (cc<=aa && cc<=bb){n=3;}
$ S1 P  ^$ c) d) Z1 L- u; {( i   setitemtype(item,n) ;4 r0 }, V4 ^5 L0 Z* W
这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-30 16:48 , Processed in 0.076780 second(s), 15 queries .

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

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