全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值- c$ B- [0 U% C% X
   当a=b=c=0时,n=3. M: a! \: S2 S
   当a=b=c不等于0时,n=1
5 L. r, j* s& F0 [, Q: o7 A   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
6 c' i. N: P9 W3 {' z3 I   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123
# O% Y0 _7 f. e, N5 g) C; O+ L' \: p! u- E
1 j. F; A7 ?. Y

3 p1 ~0 ^: c6 }0 k: ~9 B& X你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。
. X! d% ?& Q2 G* d. z! i. l1、三个队列,就用三个暂存区;
8 }. M1 o! B) i2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
! A6 [) Z2 u# J& B: m4 O3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?
& H$ {9 b' `  ?( ^9 X+ X我的建议是可以返回一个队列目前的数值,以暂存区为例" l5 N! j% w( }
treenode item = parnode(1);
9 v+ A2 w0 }3 z# e) [treenode current = ownerobject(c);
, t. J  g/ ~4 S7 S2 K$ \4 Nint port = parval(2);
  {3 I- z0 Q8 ]int aa = getinput(node("/a",model()) - getoutput("/a",model());
6 g7 B/ K" B! [int bb = getinput(node("/b",model()) - getoutput("/b",model());# z8 `7 s, Q; Y' d% H
int cc = getinput(node("/c",model()) - getoutput("/c",model());
3 h$ H5 Z% E! y1 h7 tif (aa=bb && bb=cc && cc==0){n=3;}
! K! P: \  M9 _else if (aa=bb && bb=cc){n=1;}# c; I9 Y1 a9 H# @7 N6 l
else if (aa<bb && bb<=cc){n=1;}
0 H# T, A( Y! f5 I. B% w1 Uelse if (bb<aa && aa<=cc){n=2;}
, B$ Q7 J) N- Z! y# m% r4 J  Z2 r7 belse if (cc<aa && aa<=bb){n=3;}, C+ r' H* T1 p! S

& N0 P" y! A" q由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
6 C! T: b, q3 ]2 r2 O# n9 x  i: v6 W* }  X3 P% O

9 {: u/ h5 f$ V% F& N* ~( K唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦   d4 C3 Y/ S0 H" I1 Z0 N( C. v
9 l+ X; c+ y! R4 _/ G: F0 j

' _0 b4 t3 l2 Y& M就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦
& A% l$ R% B" M! t  @$ ?, T1 V5 R5 W4 m  B: q
. u) \/ @. [$ v
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦
6 C# p2 Q' Q$ m  L" }" L, r0 e2 O0 L/ c1 C4 C% u1 Y

9 g4 F/ E) M6 E$ Y% l谢你啦,我在你的代码的基础改了改,出来了
- k8 M) M3 s8 S' b5 zif (aa==bb && bb==cc && cc==0){n=3;}: I4 I3 e5 g3 Q' J
else if (aa==bb && bb==cc){n=1;}
- c2 k) K3 q+ Y1 G5 \; \else if (aa<=bb && aa<=cc){n=1;}
8 X! V1 a! ^: [: G9 R) ^else if (bb<=aa && bb<=cc){n=2;}
) F3 D# C# R; N  l0 N9 oelse if (cc<=aa && cc<=bb){n=3;}
" T; n; ]' z& [6 ^* ^2 X6 |% R   setitemtype(item,n) ;$ C1 z- v8 W6 r9 S' `4 B
这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-6 00:40 , Processed in 0.087862 second(s), 14 queries .

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

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