暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SCL编程实例100例-060-抓捕交通肇事犯

工控老炮儿 2022-12-29
502

1 | 题目



一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住完整的车牌号,只记下车牌号的一些特征。

甲说:车牌号的前两位数字是相同的;

乙说:车牌号的后两位数字是相同的,但与前两位不同;

丙是数学家,他说:四位数字的车牌号刚好是一个整数的平方。

请根据以上线索编写程序求出完整的车牌号


2 | 设计分析



按照题目的要求构造出一个前两位数相同、后两位数相同且相互间又不同的4位整数,然后判断该整数是否是另一个整数的平方。该题目是数值计算问题,求解不定方程。对于这种求解不定方程组的问题,一般采用穷举循环。首先设计双层循环穷举出所有由前两位数和后两位数组成的4位数车牌;然后在最内层穷举出所有的平方后值为4位数并且小于车牌号的数;最后判断该数是否与车牌号相等,若相等则输出正确的完整车牌号。



3 | 创建功能或功能块



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




4 | 定义接口变量



具体接口变量定义见下图:

定义数据类型为整型数的变量#carNumberQ作为锁定的完整的车牌号的输出。定义数据类型为整型数的变量#tempI作为车牌号的前两位,#tempJ作为车牌号的后两位。



5 | 程序代码



编写程序代码。如下图:


注意程序中最内层嵌套的循环变量的起始值和结束值分别为32和99,是因为这两个数值为四位数开方的最小值和最大值。



6 | 代码测试



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


求得肇事车辆的牌号为7744。



7 | 总结



学习使用FOR循环语句;

学习使用FOR循环嵌套;

学习使用IF条件语句。

- END -

工控老炮儿


分享 | 咨询 | 合作 | 共赢


文章转载自工控老炮儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论