TIA博途SCL編程學(xué)習(xí)34_完數(shù)
1?| 題目
完數(shù),又稱完全數(shù)、完美數(shù)或完備數(shù),是一些特殊的自然數(shù)。它所有的真因子(即除了自身以外的約數(shù))的和,恰好等于它本身。例如,6的真因子是1、2、3,而6=1+2+3,因此6是完數(shù)。
2 | 設(shè)計分析
根據(jù)“完數(shù)”的定義,計算出所選自然數(shù)的所有真因子,并將所有真因子累加,如果累加和等于所選自然數(shù),則該自然數(shù)為完數(shù)。
3?| 創(chuàng)建功能或功能塊
添加功能塊FB,命名為:“PerfectNumber”。
4 | 定義接口變量
具體接口變量定義見下圖:

預(yù)定義了一個10個元素的一維數(shù)組來存儲結(jié)果。
5 | 程序代碼
編寫程序代碼。如下圖:

采用遍歷的方式,由于對稱的原因,求因子時只需要遍歷一半就可以了。
6 | 代碼測試
在循環(huán)OB中調(diào)用FB-PerfectNumber,調(diào)用時會自動創(chuàng)建背景數(shù)據(jù)塊,命名為“InstPerfectNumber”,該背景數(shù)據(jù)塊可以用來監(jiān)視和修改數(shù)據(jù)。
轉(zhuǎn)至在線并監(jiān)控程序。如下圖:

可以看到1000以內(nèi)的完數(shù)有6、28、496共三個。
7 | 總結(jié)
學(xué)習(xí)使用FOR循環(huán)語句;
學(xué)習(xí)FOR語句的循環(huán)嵌套;
學(xué)習(xí)使用IF...ELSE語句;
學(xué)習(xí)使用一維數(shù)組;
注意本例的程序結(jié)構(gòu),變量初始化的不同方法,特別注意使用臨時變量時,一定要先賦值后使用。
公眾號:? 巨控電子( 掃碼關(guān)注 )? ? ? ?
公眾號:? 巨控電子( 掃碼關(guān)注 )??