设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2910|回复: 0

[求助] 求助-生产系统仿真-第六章例子 运行错误

[复制链接]
发表于 2014-12-17 14:24:26 | 显示全部楼层 |阅读模式
本帖最后由 soso001 于 2014-12-17 14:53 编辑 " f( `" }# c3 q" Y/ [/ W- |0 S

; k9 R( j( K) ]; o% ?不好意思,打错了个字母,呵呵呵!
2 o8 G( L/ E# B# [大家好,本人em-plant新人,在看《生产系统仿真》第六章时,按书上的例子,写了段method,和书上是一样的,但总是提示
: u) d# [0 \' I% S& D- f“行19中错误,循环计数器必须为整数类型的局部变量”,但我的全局变量是 integer 类型啊,不知道怎么回事,求帮助!
! I, A- o4 s* z: g5 s& |: Pis
6 r1 ?- ?. T# @$ x7 b0 R        j,k,nstep,c, scheduleteps,mincomptime:integer;6 b& \- C0 H3 Y
        M:string;. w' t' R: i1 \2 S9 j! B: u
        selecTab:table[integer,integer,integer,string];7 L: ^& v& Q" e& k8 k( D$ E4 J2 i8 S7 b
do3 K0 N* S7 ?6 I0 D. ^7 o/ M( F
        initorders;& c" y# y+ X6 E" A3 [. N$ v7 j, |
       
1 [- _& e, Y1 T' K        scheduledorders.delete;
; h+ R- B/ x! K5 u* o9 I$ G$ h) N        seletTab.create;" R" _- ~/ I) F
       
- F8 H" H. K7 x0 o4 w0 {        orders.initialize({2,1}..{2,*},0);
% C. r- @7 t; H! o. Z        orders.initialize({4,1}..{4,*},0);( `0 C5 n' ^: E
        for j:=1 to numorders loop2 e. j* X% Z4 I1 r6 i
                orders[5,j]:=orders[1,j][2,1];: Y4 E3 b9 n& D. P
        next;1 }8 ?" |, z& Y8 [1 }0 e
        occres.initialize({1,1}..{1,*},0);
% R* f+ \4 e# [5 ~! e% S       
( x7 B& Z; q- Y0 _  P        --XUNHUAN: J0 C% r* |3 `4 }# B! K& P' p
        for scheduledsteps:=1 to numsteps loop --
- R' j* Y+ s) ?) u                selectab.delete;' Y8 a! ~  m5 z  v6 i6 y3 P
                k:=1;
4 h2 ?% t% O# _- N; l9 j4 x                for j:=1 to numorders loop( D+ K" \5 Y+ M. p3 F
                       
2 u8 s* b. w5 g% k; [' _4 \                        nstep:=orders[2,j]+1;/ i1 N7 z# o' ?, y9 h  t( i" F
                        if nstep<=orders[3,j] then6 e; ~/ ^7 q) f# q6 \8 \
                                selectab.writerow(1,k,j orders[4,j],orders[5,j],orders[1,j][1,nstep];
3 d9 s1 N* q: B6 G. O( W3 t7 `6 ?8 S                                k:=k+1;0 [$ c% R7 P# f+ V
                                        - R+ J+ p1 c# k9 G) s
                        end;
& {- }% t5 ~% Z6 [                next;
- g( c& k9 w! G0 G, N                mincomptime:=selecttab.min({3,1}..{3,*});
0 n! C  I" }" ?6 V               
$ `% K, j! _; H                from j:=1 until j>selectab.ydim loop
% P! ~, E7 ?6 N# h3 Q                          ~7 I4 ~+ J3 m$ A" _  k* R+ ~
                        if selectab[2,j]<mincomptime then; f; }# E8 ]; T/ M, g
                                j:=j+1;
. N$ R4 S/ Y2 w# C) D                        else
& l3 H: W. Z: j- D7 `, j! o- Q% r                                selecttab.cutrow(j);- F$ z8 R# w4 M$ s
                        end;1 D* d. i8 R+ i2 h) Z/ i# _
                end;* y# w8 O3 T: `/ w
               
7 S( }. F: |) P2 I  [& C& I, U                j:=selectionrule(selecttab);4 V8 `: n, c9 ~5 r% w8 a* {
               
4 z; U  f$ B0 x' y5 _* k* B                nstep;+orders[2.j]+1;  p# v) t1 J; O
                orders[2,j]:=nstep;9 j# x1 i, g8 Y* m! x; M$ `& d0 N2 Q
                m:=orders[1,j][1,nstep];
- M) N7 s$ n6 z6 C8 A                c:=orders[5,j]% V8 a; F  j: ]1 C7 s
                occres[1,m]:=c;( l2 v4 W- P  i3 U6 z! n: S$ A
               
: C! W) [0 t5 x4 Y% e4 s                --jieguo:start,end,res,job,step; k1 }( ]9 c4 @: @) j  o$ G
                scheduledorders.writerow(1,scheduledorders,orders[4,j],c,m,j,nstep);
  \. e) x7 B2 @  u* S( L                for k:=1 to numorders loop
0 y- j9 ^2 j3 f# _( I                        nstep:=orders[2,k]+1;$ U' q8 P! I: A0 s' V7 y2 H: q
                       
) U+ h7 K! B+ L; H  ]                        if nstep<=orders[3,k] and orders[1,k][1,nstep]=m
  n) P/ C# Z: [                           --
7 [- Q' k, n3 i# E. N, P                        then
* ]7 c; W! K7 }. G9 H4 v: J$ F5 @9 c                                orders[4,k]:=max(c,orders[4,k]);
" V' v+ J$ U: b0 N9 |5 c                                --
# t4 ~1 z6 p: w+ F7 e  f  y& M; C                                orders[5,k]:=orders[4,k]+orders[1,k][s,nstep];
5 X/ `8 V* C; `9 i2 x9 l: |                                --
+ Z$ @4 Y0 |+ a0 V  i3 D4 g1 x                        end;6 n/ ~$ K% o8 r: b' w# {
                next;; ]( L) t0 I7 }5 }& D
                nstep:=orders[2,j]+1:: I3 Y/ X- [% b# o2 t
                if nstep<=orders[3,j]5 @1 B3 R$ ~1 \3 r1 f
                   8 k& r' m! i6 }$ t& u$ O
                then
" l9 ]7 C; R" e3 ~% Y' |# E                        orders[4,j]:=max(c,occres[1,orders[1,j][1,nstep]]);
, T6 ~. |  P  S, a# f1 B                        orders[5,j]:=orders[4,j]+orders[1,j][2,nstep];* w: ~8 e+ V- _7 G
                end;2 @$ n  d  L# [
        next;% X3 k9 g+ D# y% p
       
* C1 _" M, F6 D; t        print"ready.duration of the schedule:",scheduledorders.max({2,1}..{2,*});
  H" M, y7 C6 I: R; ?7 o        mygantt;
, c# d  E+ `: i% }8 I! B1 d5 J        ens;
$ M1 P8 B/ f* V( n# O' r5 O1 ]+ T            
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2025-4-18 19:05 , Processed in 0.021127 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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