if ?.failed 修复时间统计[1,修复时间统计.ydim+1]:=?.getDisruptionendtime-eventController.simTime end
查找表格的内容
1 2 3 4 5 6
var m,n :integer if 数据表.find("wwd") n := 数据表.cursorx m := 数据表.cursory print n,m end
打印受限制的元素个数
新建Method,写入如下代码:
1
print numOfLimitedObjects
定义一维数组并打印
案例一
1 2 3 4 5 6 7 8 9 10
clearconsole --清空控制台 var arry : integer[3] --定义数组为整形,3个元素 var i : integer --定义循环变量 i := 1 arry[1] := 10 --对数组进行赋值 arry[2] := 101 arry[3] := 103 for i := 1 to 3 --循环打印数组元素 print arry [i] next
案例二
1 2 3 4 5 6 7 8
clearconsole --清空控制台 var i : integer --定义循环变量 var arry : integer[] --定义数组为整形,元素数留空 --定义一维数组元素 arry := makearray(1,2,3,1,3,13) for i := 1 to 6 --打印数组元素 print arry [i] next
clearconsole --清空控制台 var arry :integer[2,2] --定义4个整数元素的数组 --给元素赋值 arry[1,1] := 3 arry[1,2] := 4 arry[2,1] := 5 arry[2,2] := 6 --定义内外层的循环变量,遍历打印数组所有元素 var j: integer := 1 var i: integer := 1 for j := 1 to 2 for i := 1 to 2 print arry[i,j] next print "-" next
switch case的用法
注意:simtalk 2.0 已经弃用了inspect .. when ..的句法, 旧的用法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13
is num:integer; do num:=2; inspect num when 1 then print "Num is 1."; when 2 then print "Num is 2."; when 3 then print "Num is 3."; -- and so on else print "Not 1, not 2, not 3 !"; end; end;
新的用法
1 2 3 4 5 6 7 8 9 10 11
var n : integer := 1 switch n case 1 print "num is 1" case 2 print "num is 2" case 3 print "num is 3" else print "no num" end
while循环
1 2 3 4 5 6
var i : integer := 1 while i < 10 i := i +1 end print i
repeat循环
类似于c语言的 do..while..循环
1 2 3 4 5 6 7 8
var i : integer i:= 10 repeat i := i +1 print i until i > 20 print i
For循环
1 2 3 4 5
var i : integer i := 1 for i := 1 to 100 print i next
Plant Simulation里输入数据
使用prompt功能
The function prompt asks the user to enter data.
1 2 3 4 5 6
-- method for querying the number of pallets in a model -> integer var s: string -- gets the number of pallets s := prompt("Enter number", "of pallets") return str_to_num(s)
举例:使用用户输入的值来计算圆的周长
用户输入半径
1 2 3 4
->integer --定义需要的返回值是整形 var s :string --输入值是一个字符串类型,所以需要定义一个字符串型的变量 s:= prompt("请输入圆的半径")--用户输入 return str_to_num(s) --将输入的值返回,并且转换为数字类型
计算面积的方法 –定义一个计算园面积的方法
1 2 3 4 5
var r :integer var L :integer r := 数据输入 L := r * pi print L
以上需要两个方法来实现计算。以下可以在一个方法内实现:
1 2 3 4 5 6 7 8 9 10 11 12
var l : real var m : real var s : real var s1 :string var s2 :string
s1 := prompt("请输入长方形的长:") l := str_to_num(s1) s2 := prompt("请输入长方形的宽:") m := str_to_num(s2) s := l*m print s
传递两个参数
传递的方法:
1 2 3 4 5 6
param m , n :integer -> integer if m > n return m else return n end
返回原程序
1 2 3
var s : integer s := 比较大小(10,20) print s
传递1个参数
程序1
1 2 3
var L : integer L := 周长函数(125) print L
程序2
1 2 3
param n : integer -> real result := 2 * pi * n return
操作时间operating time:For this setting,Plant Simulation consumes the time you have entered as the interval, if the object is not paused (working or waiting).
处理时间processing time:For this setting, Plant Simulation consumes the time you have entered as the interval while the object is working (not paused, waiting, or unplanned).