全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值, d& }8 G9 [: @: n: e
   当a=b=c=0时,n=38 T8 {4 m+ Y# }7 V
   当a=b=c不等于0时,n=16 C0 L& D- ~* `5 L  @* ~8 d$ a" m1 [
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=39 F3 T3 {8 r% a( a
   求助flexsim里这个代码怎么编
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦 7 I, b5 r+ G8 w0 @4 b

* W: r4 T- v( V
6 H5 G1 R3 m1 p9 R: q2 E/ ]谢你啦,我在你的代码的基础改了改,出来了* C8 h/ N+ }, f+ H. H
if (aa==bb && bb==cc && cc==0){n=3;}
. {# h; ^  Z; \6 {3 S% t: Ielse if (aa==bb && bb==cc){n=1;}
1 ]( c' |" S/ delse if (aa<=bb && aa<=cc){n=1;}6 Z/ ~6 S4 {; ?: \+ F3 n
else if (bb<=aa && bb<=cc){n=2;}
) Q8 j* P: x' ]0 a+ L4 |3 d3 Welse if (cc<=aa && cc<=bb){n=3;}3 ?2 h2 B, Z5 S  W" f/ L
   setitemtype(item,n) ;3 V  J; z0 K6 ?3 Y
这样就好了
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦
% v3 W, y- x5 j& i: M/ q4 w" b' g4 E7 g. U' R

( V* O/ o1 H  X5 L9 H/ K* E呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦 ( l6 s. e) z1 s" {/ Y7 X
# z1 ~" |( V6 C" c5 k2 V* ?0 `

. m# V+ A; A. A2 c就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
$ e( u# o& [; P
3 [8 i6 O/ H8 d7 o, _9 K2 u" {3 u3 w& c0 q5 M: {
唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?7 {" Z4 r- @2 o6 ?# c% p9 w9 x/ R
我的建议是可以返回一个队列目前的数值,以暂存区为例6 [! \1 @. W' C  t% P* e; N3 c
treenode item = parnode(1);; W3 S3 Z3 v! A4 r0 G3 X" Y* p
treenode current = ownerobject(c);' z2 B' z* ]  ^; Y8 o8 u5 q- R
int port = parval(2);
( |! i0 M$ S' t+ S, k; O: o! Kint aa = getinput(node("/a",model()) - getoutput("/a",model());' _, b  R( X/ K
int bb = getinput(node("/b",model()) - getoutput("/b",model());6 v# P6 s- `7 W, f
int cc = getinput(node("/c",model()) - getoutput("/c",model());- T; `5 _; t4 w4 h
if (aa=bb && bb=cc && cc==0){n=3;}
2 J; ?4 q) u3 ?% i' Yelse if (aa=bb && bb=cc){n=1;}. I! L5 Q: R# O6 X: O# A
else if (aa<bb && bb<=cc){n=1;}4 A) f: u3 m" b; ]1 ^
else if (bb<aa && aa<=cc){n=2;}7 f4 ^7 O% h) ~. j) \5 @7 C5 n! Y9 f4 Z
else if (cc<aa && aa<=bb){n=3;}
4 J4 U3 n' z. Y% s
5 c% U! s* _2 O' b* D由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123
# H1 w0 o" p0 \7 M/ Z, P
2 W" m& A7 g/ K( l& V0 {# }; v  I9 o( o* A% n
/ F' ?/ L: L2 |2 v7 |/ I/ u
你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。& q5 e5 M8 x! g1 E
1、三个队列,就用三个暂存区;; B6 J  n( w/ V# X! W" J2 {4 w
2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
/ S/ E9 k/ S8 c) t+ P3、n的值可以通过设置一个标签来获取;
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-1 07:14 , Processed in 0.076278 second(s), 15 queries .

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

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