技術資料 http://www2.toyo.ac.jp/~asahi/research/develop/operation.html(09.10.01以前)
技術資料 http://www2.toyo.ac.jp/~asahi/research/simulation/operation.html(09.10.01以後)
09.01.01 1st upload,09.10.01「0削除」

事前処理と事後処理

 新しいウインドウを開いたり,多数のグローバル変数を定義したり,シミュレーションの事前準備としての初期設定が複雑なときは,事前処理を述語preprocessにまとめて書いておくことができます.また,シミュレーション終了後の処理はpostprocessに書けます.
【書式】
[1] preprocess() <-> (...);   (...)に事前処理の述語を記述する
[2] postprocess() <-> (...);  (...)に事後処理の述語を記述する

【モデル例】
//testpreprocess.set
preprocess() <-> 
	M.g:=10,
	getWp("text",Wp1),  //textウインドウを開く
	(Wp1>0)->(Wp:=Wp1) otherwise (wopen(Wp,"text")), Wp.g:=Wp, 
	xwriteln(Wp.g,"--- start ---"); //textウインドウに書く
inputsequence()=As <-> As:=genIndex(1,M.g);
initialstate()=c <-> c:=0;
delta(c,a)=cc <-> cc:=c+a, xwriteln(Wp.g,cc);
postprocess() <-> xwriteln(Wp.g,"--- end ---");
【動作】
処理前に,preprocess()でテキストウインドウを開き,Wp.gにウインドウ番号を保持する.
処理中は,テキストウインドウWp.gに各時点の状態ccを表示する.
処理終了時に,postprocess()でテキスト"--- end ---"をテキストウインドウに表示する.


【注意】
preprocess()のなかで,グローバル変数を記述するときは,「:=」を使います.