赞
踩
#not# | 否定操作数的逻辑值,一元运算符 |
#eq# | 若两运算数相等,则为true,否则为false |
#ne# | 若两运算数不相等,则为true,否则为false |
#gt# | 若左边运算数严格大于右边,则为true,否则为false |
#ge# | 若左边运算数大于或等于右边,则为true,否则为false |
#lt# | 若左边运算数严格小于右边,则为true,否则为false |
#le# | 若左边运算数小于或等于右边,则为true,否则为false |
#and# | 仅当两个参数都为true时为true,否则为false |
#or# | 仅当两个参数都为false时为true,否则为false |
>=,<=,=。不严格区分大于和大于等于、小于和小于等于。
- sets: !定义集合;
- 类名1/1..6/:a;
- 类名2/1..3/:b;
- endsets
-
- data: !赋初值;
- a=1,2,3,4,5,6;
- b(1)=5
- enddata
其中类名是相当于我们C语言中的结构体变量类型(自己定义),如上类名1和类名2是两个不同的类(一个类表示1行6列的矩阵,另一个表示一行3列矩阵),后面的a,b为变量名,a、b均是个矩阵,
需要在data中赋初值(可以不赋值),可以进行()访问,如b(1)。
例子: i=1,2,3,4,5的表示:
- sets:
- gc/1..5/:a,x;
- endsets
-
- data:
- a=1,2,3,4,5;
- enddata
-
- max=s;
- @for(gc(i):s=a(i)*x(i));
上面的@for()是一个循环语句,第一个dc(i):表示在哪个类中循环,循环几次,i将前面与后面连接起来。
例子:
@sum(gc(i):x(i))=5000;
- sets:
- row/1..6/:a;
- col/1..5/:b;
- Cooperation(row,col):c;!c是6行5列的矩阵。;
- Cooperation(col,row):d !d是5行6列的矩阵;
- coo(col,row):f !前面的名字可以自己取;
- Cooperation(2,3):e ! 报错,必须用类型名来定义;
- endsets
-
其实lingo更像是一个数学语言翻译软件,lingo的基本组成单位不是语句,而是“等式与不等式”,每个不等式之间没有关联,所以一定要方程组有解才能运行出结果
操作步骤如下:
点击红色的“标靶”后会出现如下窗口:
再点击Close
上面就出来x1和x2的值了。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。