『7x24小时有问必答』
1  | 题目

将1、2、3、4、5、6填入2行3列的表格中,使每一列右边的数字比左边的数字大,每一行下面的数字比上面的数字大,数字不能重复。编写程序求有几种填写方法。

2 | 设计分析

根据题目要求很容易判断数字1一定放在第1行第1列的格子中,数字6一定放在第2行第3列的格子中。代入题目中的要求采用穷举法进行计算即可求解。

3  | 创建功能或功能块

创建功能块FB,命名为“FillForm”。

4 | 定义接口变量

具体接口变量定义见下图:
定义一个数据类型为整型数的三维数组#resultQs存储结果,第1维用来记录填写方法的序号,第2维和第3维存储填写结果。定义一个含有6个元素的整型数一维数组#statArrayInts,前3个元素表示填写表格的第1行,后3个元素表示第2行。

5 | 程序代码

编写程序代码。如下图:

程序中调用前篇编写的判断数组中是否存在重复元素的子程序。

6 | 代码测试

在循环OB中调用FB-“FillForm”,调用时会自动创建背景数据块,命名为“InstFillForm”,该背景数据块可以用来监视和修改数据。转至在线并监控程序。如下图:

共得到5中结果:
第1种:
1、2、3
4、5、6
第2种:
1、2、4
3、5、6
第3种:
1、2、5
3、4、6
第4种:
1、3、4
2、5、6
第5种:
1、3、5
2、4、6。

7 | 总结

学习三维数组的定义和使用;
学习使用FOR循环语句;
学习使用IF条件语句;
学习子程序FC的调用方法和实参传递方式

- END -
工控老炮儿

分享 | 咨询 | 合作 | 共赢

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码