西门子广西PLC维修|西门子变频器代理商
- 供应商
- 广东湘恒智能科技有限公司
- 认证
- PLC触摸屏代理商
- 西门子代理商
- 伺服电机驱动电缆
- 西门子一级代理商
- 变频器直流调速器
- 西门子一级总代理商
- 联系电话
- 13922889745
- 手机号
- 18475208684
- 经理
- 向小姐
- 所在地
- 惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房
- 更新时间
- 2024-12-12 08:00
前言
通过该实例学习可变长一维数组的定义和使用方法和while循环语句的使用方法,从而进一步了解面向对象和标准化编程的思想。
1 | 题目
给定一个长度为n的整数数组height,分布在x-y坐标系中,有n条垂直于x轴的垂线,第i条线的两个端点是(i, 0)和(i,height[i])。用西门子tia博途scl语言编写程序找出其中的两条线,使得它们与x轴共同构成的容器可以容纳zui多的水。求容器可以储存的zui大水量。
说明:不能倾斜容器。
示例:
输入:[1,8,6,2,5,4,8,3,7]。
输出:49。
如下图:
解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。
在此情况下,容器能够容纳水(表示为蓝色部分)的zui大值为 49。
2 | 设计分析
题目中的zui大容积计算可以简单看作是求封闭图形的zui大面积。遵从木桶原理,从zui左侧开始,zui左侧垂线和zui右侧垂线比较高度,选择zui矮的一条垂线进行水平封闭,求出面积并保存面积值。然后把以上选择的zui矮垂线和它相邻的垂线进行比较(zui左侧的和其紧邻右侧相比较,zui右侧的和其紧邻左侧相比较),继续找出zui矮垂线进行水平封闭,求出新的面积并和前次求得的面积进行比较,保留zui大面积值。利用循环语句循环比较,直到不能得到封闭图形时结束循环,即得到计算结果。
3 | 创建功能或功能块
创建功能块fb,命名为“maxarea”。
4 | 定义接口变量
具体接口变量定义见下图:
定义整型输入输出变量result作为计算结果输出;
定义整型可变长一维数组变量heights作为输入的不同长度垂线;
定义整型静态变量statlower作为每次比较的较短垂线;
定义长整型静态变量statleftindex和statrightindex作为长短比较时的索引变量;
定义长整型临时变量tempheightsl和tempheightsu作为输入数组的上下脚标。