全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值6 I) n& h; C% U$ b6 g% v% J
   当a=b=c=0时,n=3
$ V3 r( B9 V; a7 m   当a=b=c不等于0时,n=1* O+ U2 I4 |+ K! |  x+ m9 z
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=32 i0 T9 C" o- n+ s+ W1 D8 t
   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123
5 u. [7 w1 {; d2 X$ ^8 F/ z( w0 ]3 l. U6 h6 [7 h; o
1 s; P& x- x( G7 y

" m  c3 q4 j* p5 w/ x3 h6 o你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。. [2 f7 b7 b; p* n" F! u$ P
1、三个队列,就用三个暂存区;3 W. M( T$ e* a& \) H) @. c5 x) e
2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
9 U( W# h% R6 d6 I  g  ]6 H3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?6 Q7 }# v6 f. m' u) K) K/ W. B
我的建议是可以返回一个队列目前的数值,以暂存区为例" A  \  N9 \! w' ~: Y6 R
treenode item = parnode(1);! Q- E  H- X0 [1 [* q6 P5 F4 ^  i
treenode current = ownerobject(c);
: I  I( a4 Y* T3 u, H" }int port = parval(2);% a7 h( X1 E+ [% X: V" W
int aa = getinput(node("/a",model()) - getoutput("/a",model());
# n  p& l4 W7 b: s- O" r. kint bb = getinput(node("/b",model()) - getoutput("/b",model());
7 A: p( T9 H- p' o5 ]int cc = getinput(node("/c",model()) - getoutput("/c",model());  ^& n1 d; `1 G- y3 M
if (aa=bb && bb=cc && cc==0){n=3;}# D$ e$ B. {3 G
else if (aa=bb && bb=cc){n=1;}
. R. {. @  E1 ]' @! v9 `else if (aa<bb && bb<=cc){n=1;}& t9 E7 Q' d, a( f( y
else if (bb<aa && aa<=cc){n=2;}
( l$ H9 W; o$ s& X% |7 f! G  V' oelse if (cc<aa && aa<=bb){n=3;}7 Z' W$ |( s8 P/ O- b; y4 e
& b8 G$ r# v/ h$ u# F
由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
. ~7 c5 @6 l$ ~1 _4 k* j4 ]$ O+ b7 J5 i3 }

2 A8 N) k7 G+ f唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦
# s4 \/ V6 _0 D0 Y0 P* f+ V; N* ]8 ~4 l4 Y

9 \; x( [+ r" m# \8 D就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦
3 `' u& K0 M( z9 k/ l
6 ^% S+ V4 l& @2 t; Y4 X  J: J9 W5 f& [3 }. e" u
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦
0 e& e6 O. E5 e' u! G2 W* ~  o0 |: l' _5 J7 P1 ~) A) c. a9 z; _8 F$ a
+ t4 \$ Z3 u: A, T- z5 h
谢你啦,我在你的代码的基础改了改,出来了
0 |- r; C" l0 l! V  \if (aa==bb && bb==cc && cc==0){n=3;}; q. d& }8 y5 I4 w
else if (aa==bb && bb==cc){n=1;}
' |4 {: R( J. o4 F/ k) L; U, Uelse if (aa<=bb && aa<=cc){n=1;}5 ~" f, z) L+ ^$ |3 N
else if (bb<=aa && bb<=cc){n=2;}8 B$ y, F8 _8 }' @4 D
else if (cc<=aa && cc<=bb){n=3;}) S+ S; |: c" Z' P) |8 F
   setitemtype(item,n) ;! Z/ B/ O- \" z  |" Q$ O
这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-6 02:35 , Processed in 0.080876 second(s), 14 queries .

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

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