全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值  r% f/ C# y# }
   当a=b=c=0时,n=3
9 C4 p8 h$ V! C1 z( [   当a=b=c不等于0时,n=1* W5 t; e6 |1 `8 v* D
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
6 n4 ?/ u$ ^8 \: d9 ~   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123
+ F) N0 w; I  F0 D- z4 c4 Q* t* i; X2 R
6 ?% a' z8 V, q- N& h$ F
% o$ k7 S$ ~$ L; C6 C2 E' G: g
你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。% C: b  y5 ?# l( h2 K
1、三个队列,就用三个暂存区;& ~1 K& A. p, s, R' G
2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);2 g8 b  ]7 G; i+ w" C6 ]6 T
3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?' X2 `4 g4 V. ]$ s
我的建议是可以返回一个队列目前的数值,以暂存区为例
2 r; `  Z! \  o/ c$ {$ f5 Ytreenode item = parnode(1);; a! ?# J! N( d3 x/ R0 r
treenode current = ownerobject(c);; B4 U. W8 M4 K4 ^5 H) U$ \# M
int port = parval(2);. E3 w& t. {# f" b- m
int aa = getinput(node("/a",model()) - getoutput("/a",model());8 s9 M9 D9 Q' D' v* P: t
int bb = getinput(node("/b",model()) - getoutput("/b",model());; L) K6 a$ s: [( b# L. s3 e" G
int cc = getinput(node("/c",model()) - getoutput("/c",model());
7 N$ P6 g' s/ m% v% lif (aa=bb && bb=cc && cc==0){n=3;}
+ `: H: f" G/ h) Melse if (aa=bb && bb=cc){n=1;}
/ P0 L3 J  n' j4 E5 uelse if (aa<bb && bb<=cc){n=1;}
$ r1 R6 S. l9 U# I1 uelse if (bb<aa && aa<=cc){n=2;}% X' Z/ q8 O6 p) P7 P) u9 E, D5 n
else if (cc<aa && aa<=bb){n=3;}
$ M% ^# g% V9 W
" M3 V3 j  I1 ~由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
* r6 A5 l" J  L( b' t& x, E1 ~! m6 }- Y+ Q
" W) H$ h2 i' t0 m+ l
唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦 : f6 B2 w9 K8 V! a

+ G$ O! ?9 O$ }1 Q$ D& d( \9 U& E
$ R  e+ Z% i) T5 s% X# J: G4 i% J就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦
0 n7 j7 a9 J! F8 _  p: @
9 P: t! _# H6 }1 [7 T( o  [' i  P4 c* z& l; H5 G
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦
! }" t$ d' m. P+ O3 r. W& o. i0 {* c
( a: r$ w$ B# T
谢你啦,我在你的代码的基础改了改,出来了! _1 y- ^+ h+ g
if (aa==bb && bb==cc && cc==0){n=3;}
/ O0 r$ [- t6 ?) Ielse if (aa==bb && bb==cc){n=1;}. Y5 I9 m& [. h
else if (aa<=bb && aa<=cc){n=1;}0 @2 I& b/ z  f5 z3 j
else if (bb<=aa && bb<=cc){n=2;}
5 s+ R. p9 u5 G: h4 velse if (cc<=aa && cc<=bb){n=3;}5 T" M% y+ j$ _4 c: k. }  r7 H
   setitemtype(item,n) ;
4 Z) ~) P; F5 {$ h- A$ b/ z这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-2 08:16 , Processed in 0.088992 second(s), 15 queries .

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

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