全球FlexSim系统仿真中文论坛

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

关于队列比较的求助

[复制链接]
跳转到指定楼层
1#
diudiu123 发表于 2013-6-21 23:04:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有三个队列长度 a,b,c,n有1,2,3三个取值
* x; k( D# ~' s4 p   当a=b=c=0时,n=3$ z/ \, N6 O1 i
   当a=b=c不等于0时,n=1  V5 w. j& l! H0 T7 h' q" m
   当a、b、c不等的时候,如果a最小n=1,b最小n=2,c最小n=30 B  L* L0 M" E/ E
   求助flexsim里这个代码怎么编
2#
天性518 发表于 2013-6-23 11:46:14 | 只看该作者
1# diudiu123
9 G! a. ?# \$ P1 r# R  B
* Z4 K' j3 W7 J# g% u/ V. k. R  m
" y! _1 b0 O- s# a' x8 L- N6 j
% \% m6 D3 f  j. @: V4 E* z你学过C语言吗?这在C里面是非常简单的了,至于在Flexsim里面如何写呢?我这里给你说一下思路,具体实现,你下来慢慢写。
( w2 R$ ?9 J# [4 [( n& A2 ^1、三个队列,就用三个暂存区;
9 @+ S; }& V) E% p2、在其中一个暂存区写上相应代码(思路:a、首先获取每个暂存区中临时实体的数量;b、再按照你的要求写上代码即可,用if简单些);
) D. h5 \9 G* V3、n的值可以通过设置一个标签来获取;
3#
慧娴亚伦 发表于 2013-6-23 13:05:34 | 只看该作者
队列是指暂存区排队还是传送带排队呢?6 B( j- O) Q- a& ?
我的建议是可以返回一个队列目前的数值,以暂存区为例
: l1 t4 B4 V* |( E/ A, Y+ i3 k8 qtreenode item = parnode(1);
! ]0 V" w# `. O  otreenode current = ownerobject(c);/ f3 B6 `7 O+ v1 t  ~2 \2 s' m
int port = parval(2);) T2 }+ h7 ^1 J4 n8 i1 a7 v
int aa = getinput(node("/a",model()) - getoutput("/a",model());
- H' O7 i1 \6 x# K+ Eint bb = getinput(node("/b",model()) - getoutput("/b",model());
  Y) }' j0 t4 L5 P8 T# Hint cc = getinput(node("/c",model()) - getoutput("/c",model());
: I( E' J: ]  o) Y' p. S% ]0 h, _if (aa=bb && bb=cc && cc==0){n=3;}
7 B6 s. ~1 f3 J" g$ X$ a- Belse if (aa=bb && bb=cc){n=1;}
: l( h) ?% p5 q3 [% xelse if (aa<bb && bb<=cc){n=1;}
, s8 W+ \' D4 @4 B' |9 ^% Aelse if (bb<aa && aa<=cc){n=2;}
( @8 b8 v- o7 o% [else if (cc<aa && aa<=bb){n=3;}
- T% w7 S5 q; d+ [1 O8 s, h4 I7 Z. ?
由于我也是初学并且也不知道你的n这里代表什么,所以这个代码可能有问题,只是单纯提供给你一个思路,希望有帮助。
4#
 楼主| diudiu123 发表于 2013-6-23 21:30:02 | 只看该作者
2# 天性518
- h4 U3 L4 a/ P5 f. `- x( P' m1 W4 a# T( N4 p( X; Q( _

, s0 S/ G: o: E唉,学校学的vb,然后就直接flexsim了,代码这边太不适应了,还在慢慢学,谢谢了啊
5#
 楼主| diudiu123 发表于 2013-6-23 21:31:47 | 只看该作者
3# 慧娴亚伦 ; @9 B1 h& I, L( R
% T' y9 i' J. B8 K. @) _

8 G6 x# B. A; E1 G) }( `. g) [就是暂存区排队了,就是以前学的vb,现在编译这块不适应,努力学习中
6#
 楼主| diudiu123 发表于 2013-6-23 21:44:17 | 只看该作者
3# 慧娴亚伦 4 [/ t. b- m# P. Z% }6 u  n& n5 M
6 f6 e% T$ e- K% B- @

* H) s& O9 M. B: e9 b呃,还是不成功,就是卡车到三个码头卸货,如果有两个以上码头空闲,卡车选择码头的顺序是(3,2,1)。如果所有码头都忙,则选择队长最小的码头。如果有两个以上码头的队长一样,选择码头的顺序是(1,2,3),其他都没问题,就这一小块代码写不明白了

本帖子中包含更多资源

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

x
7#
 楼主| diudiu123 发表于 2013-6-23 21:58:13 | 只看该作者
3# 慧娴亚伦 % j  M/ Q5 u$ F; P, I

& D; P9 U1 L& j% A# `- y3 F
: `5 [' e4 {9 C. O谢你啦,我在你的代码的基础改了改,出来了1 R% j" F& m: k* d/ Y8 O
if (aa==bb && bb==cc && cc==0){n=3;}' X$ u% P5 z* D) S  n" E* V4 ~
else if (aa==bb && bb==cc){n=1;}
7 U6 u2 f, {2 ]; Z( G. _1 P  gelse if (aa<=bb && aa<=cc){n=1;}" J4 x6 m- O" L
else if (bb<=aa && bb<=cc){n=2;}
& R, f$ @% }5 F% j: h: Belse if (cc<=aa && cc<=bb){n=3;}
0 R( E2 r: r# I   setitemtype(item,n) ;
7 Q" G0 G3 A: m9 @这样就好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-30 23:02 , Processed in 0.076832 second(s), 15 queries .

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

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