设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4190|回复: 0

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

[复制链接]
发表于 2014-12-17 14:24:26 | 显示全部楼层 |阅读模式
本帖最后由 soso001 于 2014-12-17 14:53 编辑 + R+ @1 d( |' V- n* y( J

" N% E7 j& T+ W+ t/ H  q3 e" \不好意思,打错了个字母,呵呵呵!: s+ c4 ^8 S2 ]
大家好,本人em-plant新人,在看《生产系统仿真》第六章时,按书上的例子,写了段method,和书上是一样的,但总是提示
6 d  q! k4 t0 D' d“行19中错误,循环计数器必须为整数类型的局部变量”,但我的全局变量是 integer 类型啊,不知道怎么回事,求帮助!; H" g8 E$ g, z7 N5 o
is, m+ T7 }) z" }6 _9 _
        j,k,nstep,c, scheduleteps,mincomptime:integer;; `6 y- i) U! i9 {4 ]2 Q
        M:string;
- f1 q1 H) p& m. e# ~% O        selecTab:table[integer,integer,integer,string];
2 X0 m' j8 d. _, P/ P; C+ i+ Bdo
3 y; J; z; ?" _0 c1 N  t        initorders;) e* {; e$ z6 q0 l
        0 [8 N: @: B. i' n+ P8 r
        scheduledorders.delete;/ E) }- H& n2 M1 Z( U; P
        seletTab.create;
  y9 d2 J6 \% t, c) R        3 K7 _/ n0 U4 w
        orders.initialize({2,1}..{2,*},0);
: N( B& I0 r3 Z        orders.initialize({4,1}..{4,*},0);, W9 J7 g2 F$ T5 N; d$ v+ A1 ?
        for j:=1 to numorders loop
8 z, x( p+ L. r( o0 ^; A                orders[5,j]:=orders[1,j][2,1];2 M, C  q5 Z) Z' f- O6 o9 @8 ~% {
        next;0 g1 ?/ c- A! E+ `' |' P6 q- o
        occres.initialize({1,1}..{1,*},0);
, {8 N& J3 H6 h5 _0 z% e        9 O8 m4 H: U. K1 M& Z, G
        --XUNHUAN7 V7 R- V7 M. _: b1 j" S6 W
        for scheduledsteps:=1 to numsteps loop --
! H5 _$ n9 W5 M                selectab.delete;
+ d3 D1 P' e, u/ B                k:=1;: \, n+ q; ?( E) ^* W4 @
                for j:=1 to numorders loop
' R( }# V) m7 v# O9 ?1 `# }. ^                        * F- f, N' s7 f5 y) l
                        nstep:=orders[2,j]+1;9 a/ o- w4 t: y% M$ G
                        if nstep<=orders[3,j] then
" M7 M) D/ _+ m1 a) h7 W                                selectab.writerow(1,k,j orders[4,j],orders[5,j],orders[1,j][1,nstep];+ E0 A! A; c! I# T' Z
                                k:=k+1;
" v- X  b  X) \) _5 b                                       
1 I! C: C4 Q8 Q                        end;
8 e+ e# v4 V1 }  ~/ C8 B& F! k                next;/ G4 g; g6 l- x. j, |; k8 G
                mincomptime:=selecttab.min({3,1}..{3,*});2 A' s6 J+ t3 T! Q: X. r8 }$ v
                4 ]) A1 a8 w3 A' V
                from j:=1 until j>selectab.ydim loop
% L  L9 v$ ?, T& b0 B2 ?                       
* {4 ^6 B5 S4 r+ b                        if selectab[2,j]<mincomptime then
6 k" |4 p/ e" c% j+ {! F/ a                                j:=j+1;  a0 w  Y% z" U+ @" Q# K$ |
                        else
: ~0 |5 [' I  M5 B% ^/ t; H$ m* m8 p                                selecttab.cutrow(j);
: M* A5 z% @3 r8 r" v, w: q                        end;
& y, E! X9 x0 i3 K                end;
* e0 v3 \$ q, ~/ ?: C! s. G                . \: f, d+ w  X* ]! `
                j:=selectionrule(selecttab);# @( Y+ z2 j* w6 y
                % V# L; d( s0 [0 E- u  G+ D
                nstep;+orders[2.j]+1;
7 _. }$ c& o( V) `0 q3 |                orders[2,j]:=nstep;
: E8 v# u. f" _4 ~4 V% ?                m:=orders[1,j][1,nstep];' s/ G# S6 v+ C4 l6 Z
                c:=orders[5,j]4 Z+ R7 W2 G  U5 _. d* }: Y1 e
                occres[1,m]:=c;6 d- E' Z. h. L5 e5 z
               
- F. `1 S: d: e0 X, u) ]8 x$ u. k, C, w                --jieguo:start,end,res,job,step
2 ~$ U7 M: d5 X                scheduledorders.writerow(1,scheduledorders,orders[4,j],c,m,j,nstep);% x/ k; B/ n% |0 Y
                for k:=1 to numorders loop
* B9 Z/ g7 a$ J8 b+ H; o! i. k                        nstep:=orders[2,k]+1;
8 A4 ?9 }( q" p& M4 Y- ^4 W' h                        : s' \# D1 u2 {* U! H/ [+ @7 G& [
                        if nstep<=orders[3,k] and orders[1,k][1,nstep]=m" f, x# h2 y! g& ^' `
                           --
6 E& j5 D1 @+ k' D8 b* a( L  S8 H                        then* N, N9 B8 i; T) {9 g) V
                                orders[4,k]:=max(c,orders[4,k]);
8 a# _# i0 `! i- t                                --
8 t5 v; r5 P0 N, P9 ]. G                                orders[5,k]:=orders[4,k]+orders[1,k][s,nstep];
1 W4 L+ D6 b( ]9 b+ _/ z                                --% [  l9 R1 y+ [
                        end;
: G8 w0 u7 b$ G4 U! y  f                next;
: G% c5 P; p8 O7 f                nstep:=orders[2,j]+1:
+ n0 [! p! n2 _) D0 f- E                if nstep<=orders[3,j]
0 Z, v5 R" O9 u3 M) }2 q                   $ C& ~( I8 ^' e9 }- [7 z7 P
                then
) C. r  y2 p/ B2 r; Y4 p- t' c. b0 L6 Q                        orders[4,j]:=max(c,occres[1,orders[1,j][1,nstep]]);9 }1 Z- M2 H" V. Q
                        orders[5,j]:=orders[4,j]+orders[1,j][2,nstep];* J- q; F7 K! l. ?7 c3 f% N2 h* @
                end;
& Y+ \2 p/ x9 ]5 z1 Y; v        next;$ z$ M, c* ~6 F9 k
       
1 x/ p/ ]0 ^: t0 m5 `. U. F- c        print"ready.duration of the schedule:",scheduledorders.max({2,1}..{2,*});
7 a& V4 i# ^9 b& m* c        mygantt;2 n7 L: B) X+ l+ \9 f* P
        ens;
: T; _  J6 h& o0 r1 t9 |% b            
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-21 10:40 , Processed in 0.015008 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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