<object id="ayu7o"></object>

      <object id="ayu7o"></object>

    1. <menuitem id="ayu7o"></menuitem>
      <object id="ayu7o"></object>
      加入收藏 在線留言 聯系我們
      關注微信
      手機掃一掃 立刻聯系商家
      全國服務熱線18475208684
      公司新聞
      SCL編程實例100例-119-盛Zui多水的容器
      發布時間: 2024-11-25 15:49 更新時間: 2024-12-29 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作為輸入數組的上下腳標。


      聯系方式

      • 電  話:13922889745
      • 經理:向小姐
      • 手  機:18475208684
      • 微  信:18475208684