龙空技术网

TIA博途SCL编程学习45_过桥问题

巨控小周 1277

前言:

眼前兄弟们对“过桥时间最短算法”大致比较关注,兄弟们都需要剖析一些“过桥时间最短算法”的相关知识。那么小编也在网上汇集了一些关于“过桥时间最短算法””的相关资讯,希望看官们能喜欢,看官们一起来了解一下吧!

1 | 题目

在一个黑夜里,有四个人需要过桥,每次只能通过两人,其中一人必须拿着手电筒,但只有一个手电筒,所以过桥后必须有一个人拿手电筒回来,其他人才能继续过桥。四人过桥的速度分别为:1、2、5、10(分钟),要最慢的那个人过了桥才算真正过桥。编写程序求这四个人过桥所花的最短时间。

2 | 设计分析

采用贪心算法,该题目只有两种贪心策略。先对n个人过桥的时间从小到大排序。

第一种:让第1个人分别带第n-1个人和第n个人过桥,用时a[n-1]+a[n]+2*a[1]。

第二种:让第1个人和第2个人先过桥,第1个人回来送手电筒,让第n、n-1个人过桥,然后第2个人回来送手电筒,用时a[n]+a[1]+2*a[2]。

3 | 创建功能或功能块

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

4 | 定义接口变量

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

定义数据类型为整型数的一维数组变量#statTimes,分别存储四个人过桥的速度,初始值分别为1、2、5、10,单位分钟。

5 | 程序代码

编写程序代码。如下图:

注意程序中的贪心算法,策略1和策略2。

6 | 代码测试

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

得到结果:四个人过桥所花最短时间为17分钟。

7 | 总结

学习使用WHILE循环语句;

学习使用IF..ELSE条件语句;

学习组合赋值的使用;

学习EXIT语句在循环中的作用。

- END -

参见下图:

旧款

6ES7513-1RL00-0AB06ES7515-2RM00-0AB0

最高FW2.9

新款

6ES7513-1RM03-0AB06ES7515-2RN03-0AB0

最高FW3.0

新的显示面板

和标准CPU统一显示面板,更耐用显示面板响应速度更快面板固件集成于CPU,无需单独更新固件

统一的CPU显示面板,更可靠,操作更便捷!

采用新芯片的1500冗余CPU,性能大幅度提升,性价比进一步凸显,可以更好满足各种应用的需求!后面我们还将介绍FW3.0给1500H系列CPU带来的功能提升,也敬请关注。

标签: #过桥时间最短算法