前言
通過該實例學習可變長一維數組的定義和使用方法和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作為輸入數組的上下腳標。
- 西門子LOGO! PLC S7通信配置和程序下載步驟 2024-12-29
- SCL編程實例100例-120-貪心算法解決剪繩子問題 2024-12-29
- S7-200SMART實例之冒泡法排序子程序 2024-12-29
- 通過命令查看電腦上連接過的WIFI密碼的方法 2024-12-29
- S7-200SMART實例之閥門數字量控制子程序 2024-12-29
- 修改C盤用戶文件夾下的文件夾名稱的方法 2024-12-29
- 如何設置網絡訪問 SQL Express? 2024-12-29
- S7-200SMART實例之電機控制子程序 2024-12-29
- 此電腦右鍵管理打不開的解決方法 2024-12-29
- SCL編程實例100例-121-雞蛋掉落問題 2024-12-29
- 西門子S7-200 SMART Modbus TCP Server的配置方法 2024-12-29
- TIA Portal Modbus TCP Server的配置與測試(低版本指令) 2024-12-29
- 通過KEPServer的OPC功能連接WinCC Flexible和S7-1200或S7-1500 2024-12-29
- WinCC Flexible 2008 SP5 下載與安裝 2024-12-29
- S7-200SMART實例之斜坡函數 2024-12-29
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684