全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值
9 r7 Y5 S- v3 l- ~8 l  t   当a=b=c=0时,n=34 s4 F: K2 U2 n6 E
   当a=b=c不等于0时,n=1
/ a5 q$ a8 O0 t   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=3
5 j. e( l) y7 v8 t/ A   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123 ' E' u+ T; B; ~& P6 w3 U# P
& h$ z/ q3 H1 d+ o2 [) c

" X- z+ r' j  ~. G# H5 F
8 w% S5 \5 s" a% k$ V' C你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。
+ E9 z- M& \! S  h% N3 W; Y1、三个队列,就用三个暂存区;, P: A" [$ h* d& P- {) w- H
2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
/ v# w5 Y/ a, }$ l3 T8 h3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?: J  n/ R+ J* r$ j# ^# F/ ~2 D
我的建议是可以返回一个队列目前的数值,以暂存区为例
- o% N$ D- z1 C, t, ?treenode item = parnode(1);
) C! D- m8 f  m( Ftreenode current = ownerobject(c);
' V+ I0 Y4 N$ z) `- i3 Hint port = parval(2);$ W. U9 d/ u& a! x$ e  u  Z
int aa = getinput(node("/a",model()) - getoutput("/a",model());; F5 I" M" ]: K: S
int bb = getinput(node("/b",model()) - getoutput("/b",model());
! [& h8 Q# |5 c7 t2 Xint cc = getinput(node("/c",model()) - getoutput("/c",model());
6 P* n, v% ?( |4 |' Nif (aa=bb && bb=cc && cc==0){n=3;}
3 b" d4 ?- S* \$ P. Eelse if (aa=bb && bb=cc){n=1;}) e* Q  m9 K# |' H6 G; B
else if (aa<bb && bb<=cc){n=1;}# `2 M% ~" y" J7 y
else if (bb<aa && aa<=cc){n=2;}
% v) L+ x7 j0 i5 _3 U  K9 E4 [, Belse if (cc<aa && aa<=bb){n=3;}
# ]2 n4 q5 t' c( H2 c0 L/ x5 \! n0 o2 f& ~9 f( ^* F
由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518 ! u2 ?, q5 K- \* _! ^7 {/ [
8 f- _1 N6 v5 Z# T6 F$ K

4 J% b; _0 Z# m, Z0 h1 N1 o1 M唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦 2 v' _0 J9 C( f5 R! n3 ~9 Q

/ l9 |0 N9 R, L% L2 @* V* `+ h
$ h( b! c0 B; x4 Y. I( D5 U就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦 " P2 L; e: @; E5 {8 g

; q! v5 c& U! b9 d* M' f; @& W' W) u1 Q0 L0 v4 w9 ?
呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦 - L" \; @: h5 ~" i  Y
% h6 w" K- s  ~0 V
; `/ A: W% f: V6 p/ a
谢你啦,我在你的代码的基础改了改,出来了6 R4 q+ U2 d1 ]+ J, `/ u- x
if (aa==bb && bb==cc && cc==0){n=3;}5 I  l7 a+ F1 D& X& c3 ?& w9 ]1 S  c
else if (aa==bb && bb==cc){n=1;}
# s( M* L4 |; h* c4 Z) ?8 oelse if (aa<=bb && aa<=cc){n=1;}6 n* p8 b" N! {' ?2 L9 {
else if (bb<=aa && bb<=cc){n=2;}" B, w' k6 ]; }; }
else if (cc<=aa && cc<=bb){n=3;}
) Z2 q2 x4 J+ q% D6 \   setitemtype(item,n) ;
2 K. E5 c8 m7 N* Y% p" v3 l$ Y& h这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-5-10 07:00 , Processed in 0.077809 second(s), 15 queries .

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

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