设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4304|回复: 0

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

[复制链接]
发表于 2014-12-17 14:24:26 | 显示全部楼层 |阅读模式
本帖最后由 soso001 于 2014-12-17 14:53 编辑 ; E/ d) F- S( Q
  A5 K# i! U2 C# @6 `
不好意思,打错了个字母,呵呵呵!
: M+ O6 @- f# U2 c" I大家好,本人em-plant新人,在看《生产系统仿真》第六章时,按书上的例子,写了段method,和书上是一样的,但总是提示# X8 q# H) Y& N4 d2 m
“行19中错误,循环计数器必须为整数类型的局部变量”,但我的全局变量是 integer 类型啊,不知道怎么回事,求帮助!. w: |1 l7 W5 p. J
is& q) B1 Y' E& \# U8 h' e5 M5 c
        j,k,nstep,c, scheduleteps,mincomptime:integer;* c2 g9 Z5 x  n' E6 O& B( j' _1 c" c5 |
        M:string;& d: [% Z" j# z+ d
        selecTab:table[integer,integer,integer,string];
* Q4 K0 G  ?4 D3 |do( g8 h8 |6 S- u9 K" Z
        initorders;) w. [; m& b) W4 G
       
2 F( `+ p- o9 c' _9 N3 w        scheduledorders.delete;
. f/ P2 o5 e- y# ~1 l: k- e        seletTab.create;
8 s, t8 o% ?! O; N6 y       
7 U; I* g# R1 Q, ]        orders.initialize({2,1}..{2,*},0);
7 d" G7 ]  ]6 M4 c        orders.initialize({4,1}..{4,*},0);9 I6 ?: I# m, t/ [/ {! H
        for j:=1 to numorders loop
* i' A- z1 @. e" `                orders[5,j]:=orders[1,j][2,1];
  f8 I% M7 [% Y( L  M        next;' `, b5 d8 C% O) W. M; u" i
        occres.initialize({1,1}..{1,*},0);/ n7 z* A3 ~: i4 _
       
' Z- T9 Y. Y$ f2 X/ ]8 D; ]        --XUNHUAN1 j. ]+ D% L* l' x- U
        for scheduledsteps:=1 to numsteps loop --
2 f( [& j* g8 j- i$ v; W                selectab.delete;
; u$ @8 `$ h5 W) F4 t% Z                k:=1;& ]8 Z$ }7 N# w& |; c! `* z& ^
                for j:=1 to numorders loop
8 Y3 V5 S2 U2 E4 [  ~4 _3 T                        8 l# m/ o/ S! c+ ^5 v5 J/ v$ O" P" S" e
                        nstep:=orders[2,j]+1;
( H+ t5 r+ A# z% Q) |# x                        if nstep<=orders[3,j] then' E9 h: ]) \% t9 h$ z! X7 E
                                selectab.writerow(1,k,j orders[4,j],orders[5,j],orders[1,j][1,nstep];
, k! X6 O4 R+ }- D0 H                                k:=k+1;
. l7 H' d. t" q/ n! k- z( I                                       
- w, k" k  S1 t6 R: q7 ?                        end;
  E5 P% Q$ K3 U4 I; n* N! R                next;" j) M. l9 }3 z( r& z1 f
                mincomptime:=selecttab.min({3,1}..{3,*});! u5 J1 ^+ ?! f8 ]
               
; J# L& a4 e. e; c! l                from j:=1 until j>selectab.ydim loop# j7 O' Q1 C1 H6 ^
                        6 m; A) R- i) M, I2 f
                        if selectab[2,j]<mincomptime then! t& Z. ?/ H+ @: p
                                j:=j+1;, C: g( q5 H: y7 d
                        else- T3 j; i# R9 l
                                selecttab.cutrow(j);
+ q( |! H3 R& s* z# e9 F                        end;
9 F7 |1 \: e4 u# J* E                end;$ H/ a- g* ?8 X$ |3 t$ @9 l
               
. V$ E- r; b& U3 m, ?                j:=selectionrule(selecttab);# N  B7 M1 [- j# ?! Z
               
! x2 K& y- O; y6 j4 _                nstep;+orders[2.j]+1;2 S, Y  B* X0 O- v/ z
                orders[2,j]:=nstep;) F7 e- a' l+ R% t
                m:=orders[1,j][1,nstep];) j% ]& r; l" `9 P( E
                c:=orders[5,j]3 f. _' u3 A% R- c" E7 j# ~* H$ f. L1 ]. D
                occres[1,m]:=c;
( F2 b0 D3 j) `0 h$ x9 f( ^5 a                5 |# ]; H. R: {% q( ^7 a+ X
                --jieguo:start,end,res,job,step5 R4 U( Q5 {9 k8 ]
                scheduledorders.writerow(1,scheduledorders,orders[4,j],c,m,j,nstep);, i+ Y/ M( ^2 t" w# b0 [7 F) C. \) Y
                for k:=1 to numorders loop7 |9 P" @9 j" T! U5 L* d% u5 X; I  ]
                        nstep:=orders[2,k]+1;
  B7 m. v  m( g+ I4 @) z" M                       
+ t8 P! s" C0 u" a, f                        if nstep<=orders[3,k] and orders[1,k][1,nstep]=m
/ z: w8 ~. i$ ?                           --
: e9 W9 z# v# K2 X                        then6 [+ q5 h* o1 r5 O
                                orders[4,k]:=max(c,orders[4,k]);. E$ c, J" h2 s7 k+ q
                                --
+ x3 J: y4 J1 I* S& i                                orders[5,k]:=orders[4,k]+orders[1,k][s,nstep];9 R- t4 M  _5 B: b
                                --# Y, Q, p6 d+ Q8 s/ B3 w
                        end;
3 p8 g( L- e6 ?8 j% {9 B- |                next;
9 S# {5 l& P6 I7 f0 `4 o1 P                nstep:=orders[2,j]+1:4 s6 T5 C6 Y# c. w! C+ X2 V
                if nstep<=orders[3,j]
" l7 ]3 Q7 N, [% p8 D( d8 G8 v1 p                   " p. x# k3 T/ {8 H. H/ b" f: s
                then
- d( ~0 W/ x/ W8 b8 y% d. E                        orders[4,j]:=max(c,occres[1,orders[1,j][1,nstep]]);
( l5 A# Y" o0 t7 _$ {4 ~$ J; Z                        orders[5,j]:=orders[4,j]+orders[1,j][2,nstep];
" C: c: ]* E* G( e/ O8 n                end;  t% }! K4 `. ?
        next;& o' q% ], ]% U2 X
        " o; Z8 J/ l' A2 M9 S; u
        print"ready.duration of the schedule:",scheduledorders.max({2,1}..{2,*});) M8 a1 z$ l6 l/ A
        mygantt;
6 ^, `  h% N4 f# _9 K& \        ens;
! i+ x0 \* m4 v( @. @            
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-7-27 02:04 , Processed in 0.014699 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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