设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3004|回复: 0

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

[复制链接]
发表于 2014-12-17 14:24:26 | 显示全部楼层 |阅读模式
本帖最后由 soso001 于 2014-12-17 14:53 编辑 ) B- ]9 `" a5 H; q0 x" t

8 ^, E7 V3 p  v0 K) q# J不好意思,打错了个字母,呵呵呵!- g1 b* @+ r  Y4 b  r9 S
大家好,本人em-plant新人,在看《生产系统仿真》第六章时,按书上的例子,写了段method,和书上是一样的,但总是提示
1 F% J; j2 g5 L& f“行19中错误,循环计数器必须为整数类型的局部变量”,但我的全局变量是 integer 类型啊,不知道怎么回事,求帮助!
3 ?7 M1 l+ E  yis$ f- G0 J9 h7 ~5 A: a
        j,k,nstep,c, scheduleteps,mincomptime:integer;* L2 [& i# Z. |. U
        M:string;
4 `- [& M% }  A7 A4 h        selecTab:table[integer,integer,integer,string];; P) i) g, ?3 X* d  \8 c
do
' T& L# K+ Q+ K        initorders;; m- J5 a9 _% Y
       
/ U) @* A7 M' C3 F' ?. M# F        scheduledorders.delete;
5 d! }( }5 A- a# ^/ _$ Z/ f9 \        seletTab.create;
. a' V' Y  D, s! Y1 g        2 p, B+ V! K. w
        orders.initialize({2,1}..{2,*},0);
2 ]3 o% ]3 T" S# E% T0 [. S' U' Y        orders.initialize({4,1}..{4,*},0);2 t# z/ V5 B% R+ j9 C- G' T
        for j:=1 to numorders loop8 c4 W8 Q; m+ l- x' N% E# o, e
                orders[5,j]:=orders[1,j][2,1];7 m9 K' l7 R. C- ~% V
        next;0 T4 Q  @2 D& j* z% Q' i1 Y$ n
        occres.initialize({1,1}..{1,*},0);: p% G+ G  q! P  C% m- L: ^
       
8 G9 c2 t, h( c. N* k- d( n  R2 G, D        --XUNHUAN
1 \2 @2 Y& J% C5 X% l        for scheduledsteps:=1 to numsteps loop --# i+ w+ q; k3 d8 I; A9 o
                selectab.delete;1 D: t$ X0 w5 K7 z# @  j. ~
                k:=1;
2 s# V. A3 \! i* }                for j:=1 to numorders loop
! H) z, H: d" j: H& @' I# r* J                        5 S8 h0 N# h, x0 f6 g* S- S% ?# F6 y
                        nstep:=orders[2,j]+1;8 g  n0 G- _$ x% t1 F/ @
                        if nstep<=orders[3,j] then3 J6 b" _( i8 X- o" Y
                                selectab.writerow(1,k,j orders[4,j],orders[5,j],orders[1,j][1,nstep];& N$ S. d# j: _' B6 ]
                                k:=k+1;) ~7 K. c9 I, s6 s
                                       
' u, a* P0 D6 E+ u. M9 \) R                        end;
4 T% v, B' \/ E3 K1 ?2 h                next;2 K3 v0 y4 @; @9 D; R. w
                mincomptime:=selecttab.min({3,1}..{3,*});" f+ g7 r  a  X# [, s- B+ E* Q, J
                $ x; z2 P, Z% \- `3 {$ Q" ]
                from j:=1 until j>selectab.ydim loop
  K  |8 v! R: {6 C- N3 J                        ' C, H+ r3 w% D, ?0 y3 L' e
                        if selectab[2,j]<mincomptime then
6 F0 P! ]# v) \0 r$ D                                j:=j+1;
2 I& p6 l; _! V1 w7 F) S5 t                        else
5 e9 Y4 _) z% ^' R                                selecttab.cutrow(j);" q" a  k6 {, m9 L& {, ^
                        end;0 C4 _6 w  x* ?3 j
                end;
& _( u# i" Z4 @+ z9 ]4 I                2 J& a5 j3 e' C/ A! i, l4 V
                j:=selectionrule(selecttab);, L( c, B" L2 M3 f$ {
               
, v  d/ @. M, V                nstep;+orders[2.j]+1;
0 U  L0 P! y) a, I6 n6 \                orders[2,j]:=nstep;! _' g; Q4 W1 q: f
                m:=orders[1,j][1,nstep];6 M! j" S$ j) q* n7 e, h
                c:=orders[5,j]
- e2 K9 }) P, t/ s                occres[1,m]:=c;
1 m* M! P4 q& |7 p                ' A: L: Y/ h  D  R
                --jieguo:start,end,res,job,step( S) ]7 y/ P. V/ p, E$ l
                scheduledorders.writerow(1,scheduledorders,orders[4,j],c,m,j,nstep);
6 x6 J7 \' _7 y3 m5 L' w                for k:=1 to numorders loop
% Z! y0 {7 s4 j  q                        nstep:=orders[2,k]+1;! ~6 ]( @* i2 b
                       
5 v( k- x+ u! x: R; L9 Z" W                        if nstep<=orders[3,k] and orders[1,k][1,nstep]=m
7 q% `/ R" C+ Q' `                           --
6 `) A8 [8 p; j% a( j                        then
( W; R# v3 z& Q5 H/ X                                orders[4,k]:=max(c,orders[4,k]);! H$ I4 @) @: I" l4 k8 H0 s
                                --
/ p6 Y( O( @3 r9 J# W                                orders[5,k]:=orders[4,k]+orders[1,k][s,nstep];
( X3 U0 _; ~3 t* E                                --8 \& }" I8 w3 S4 W! ~7 L
                        end;; A) T" ?* @5 c( A
                next;5 |( y* F* L8 l% m% p% ]
                nstep:=orders[2,j]+1:& {7 m- W* v: p% Y% j- N( [
                if nstep<=orders[3,j], x9 L( U9 ]" {, ~9 ]
                   8 x! F/ C( D$ d7 n
                then
- ~, G$ `9 J$ t0 I  e# |* {5 _                        orders[4,j]:=max(c,occres[1,orders[1,j][1,nstep]]);
: x/ s4 B, G) a9 E' e1 e                        orders[5,j]:=orders[4,j]+orders[1,j][2,nstep];
# _8 }1 X4 O9 E5 p& O" H' f                end;5 q2 t& Q, ]! n. \- o& U* e
        next;9 ~$ x! {2 }6 v& J* A! z- O2 @. P
        6 [5 o. c0 n6 P" C; F8 G8 }' O
        print"ready.duration of the schedule:",scheduledorders.max({2,1}..{2,*});
; {9 k0 i3 X, l$ A, {" H  y        mygantt;+ s( \% q  t7 E* }% H# X- s
        ens;5 y8 o4 _+ P9 u8 Z: y; E: e
            
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-17 04:29 , Processed in 0.018801 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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