全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值
! C: t  ?9 ]- G) F4 Z) f% G3 f4 j' B   当a=b=c=0时,n=3* W, l: F0 W* ?3 I3 w) R, D5 e
   当a=b=c不等于0时,n=1$ M2 r3 j% B; f4 G  ^8 q
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3) {+ J' [1 l2 n, ^9 @' \4 e* q
   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123 ! W" W& _2 ]5 f! v
; D: |; L5 `* y3 \; H0 w/ q

) ^4 f; b# T3 `& I
% @- V. v2 c) M/ |# v$ v你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。
7 J( A* q. T6 V2 K. w1、三个队列,就用三个暂存区;
8 I3 W! X2 h5 o+ [- U7 |1 v& W$ n2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
& U7 Z& }# _% {* T- y9 f3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?
! J* L5 G' o( U5 j我的建议是可以返回一个队列目前的数值,以暂存区为例
' B9 D& b; y1 o$ R+ }3 Atreenode item = parnode(1);  ?2 F) q2 j! `
treenode current = ownerobject(c);# i& k& r! P8 y
int port = parval(2);1 B$ O1 j  `# E5 u
int aa = getinput(node("/a",model()) - getoutput("/a",model());" W$ g' Q5 f6 u1 @
int bb = getinput(node("/b",model()) - getoutput("/b",model());
; R' k4 }' N. Vint cc = getinput(node("/c",model()) - getoutput("/c",model());
! s$ |" {6 U( _7 I  P4 e+ D# _if (aa=bb && bb=cc && cc==0){n=3;}# K5 {1 I$ @+ V6 |- L4 C$ c3 [; y
else if (aa=bb && bb=cc){n=1;}4 |8 }$ v8 ]* {
else if (aa<bb && bb<=cc){n=1;}
, U' Q) S4 Y) Gelse if (bb<aa && aa<=cc){n=2;}+ _, J% r8 _; m- a8 ]# E; C
else if (cc<aa && aa<=bb){n=3;}5 j8 G" Y) F+ V) H3 E

! ?% X6 S6 D* u由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518 # c3 @: W; r" A: A' `0 a3 L

+ W+ e" P9 K8 J3 l$ l+ N
' @' {9 }. c, }  E5 d) ?唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦 , Z4 _% p  I2 k+ k( }' \

& D; u! g6 {5 H* e0 w5 u4 c
5 n# Q1 s7 q( R. a2 Y5 l就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦
. x5 X9 ?0 j! P8 ]$ R! H& @* j1 f2 |. q- v

' ]$ t+ r/ @; E" M! L呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦 $ g4 @% N; t: \
  v- ~  K3 y- X/ J2 ~$ D
+ i! j/ k1 o" K  g8 ~
谢你啦,我在你的代码的基础改了改,出来了
1 c' }( u- T$ A1 Q; [if (aa==bb && bb==cc && cc==0){n=3;}
/ ^# {7 x1 U  d9 T# w+ v2 s$ n9 jelse if (aa==bb && bb==cc){n=1;}# r  |# Y- r$ A2 A) c
else if (aa<=bb && aa<=cc){n=1;}5 T2 @- [& Y5 k3 g  c
else if (bb<=aa && bb<=cc){n=2;}
- D% R. t# ?0 ]6 ?$ Gelse if (cc<=aa && cc<=bb){n=3;}
% y8 c9 }6 Q4 g2 e# P) `6 k0 a   setitemtype(item,n) ;
! ^2 h) I9 b9 I+ }/ a+ j# ^: @这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-30 00:12 , Processed in 0.067540 second(s), 14 queries .

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

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