TIA博途SCL編程學(xué)習(xí)36_自然數(shù)反轉(zhuǎn)
1?| 題目
將一定數(shù)位的自然數(shù)的每一位數(shù)字拆解后,按照反序進(jìn)行排列形成一個(gè)新的自然數(shù)。例如:給定自然數(shù)為15928671860,反轉(zhuǎn)后得到新的自然數(shù)6817682951。
2 | 設(shè)計(jì)分析
首先將給定的自然數(shù)按位進(jìn)行拆解并求出有效位數(shù),將拆解后的最高位數(shù)字作為新自然數(shù)的個(gè)位,其它依次乘以10倍、100倍、1000倍,分別放到十位、百位、千位……,以此類(lèi)推。
3?| 創(chuàng)建功能或功能塊
添加功能塊FB,命名為:“InverseNumber”。
4 | 定義接口變量
具體接口變量定義見(jiàn)下圖:

注意定義了用來(lái)拆解自然數(shù)的多重實(shí)例,即調(diào)用自然數(shù)拆解功能塊(子程序)。
5 | 程序代碼
編寫(xiě)程序代碼。如下圖:

注意自然數(shù)拆解子程序的調(diào)用和實(shí)參的傳遞方式,對(duì)于子程序的輸出結(jié)果此處并未定義形參進(jìn)行傳遞,而是直接引用了背景數(shù)據(jù)塊里的值,不利于程序的封裝,所以不提倡該方式。
6 | 代碼測(cè)試

在循環(huán)OB中調(diào)用FB- “InverseNumber”,調(diào)用時(shí)會(huì)自動(dòng)創(chuàng)建背景數(shù)據(jù)塊,命名為“InstInverseNumber”,該背景數(shù)據(jù)塊可以用來(lái)監(jiān)視和修改數(shù)據(jù)。
轉(zhuǎn)至在線并監(jiān)控程序。如下圖:

給定自然數(shù)159,反轉(zhuǎn)后結(jié)果為681,因要求反轉(zhuǎn)后仍為自然數(shù),故高位0被忽略。
7 | 總結(jié)
學(xué)習(xí)使用FOR循環(huán)語(yǔ)句;
學(xué)習(xí)子程序的調(diào)用和實(shí)參的傳遞;
學(xué)習(xí)使用一維數(shù)組。