TIA博途SCL編程學(xué)習(xí)42_三位數(shù)的組合
1 | 題目
輸入一個(gè)三位數(shù)的整數(shù)(各位數(shù)字各不相同),將數(shù)字位置重新排列,輸出所有可能的結(jié)果。例如輸入123,會(huì)得到123、132、213、231、312和321共六種結(jié)果。
2 | 設(shè)計(jì)分析
先將輸入的三位數(shù)進(jìn)行拆解得到三個(gè)獨(dú)立的數(shù)字并存入數(shù)組,再將數(shù)組中的這三個(gè)數(shù)字重新排列組合輸出。
3 | 創(chuàng)建功能或功能塊
創(chuàng)建功能塊FB,命名為“3DigitsCombination”。
4 | 定義接口變量
具體接口變量定義見下圖:

變量“statIndex”用來記錄排列組合次數(shù)的可能性,變量“statDecomResults”用來存儲(chǔ)數(shù)字拆解的結(jié)果。
5 | 程序代碼
編寫程序代碼。如下圖:

本例中首先排列了1、2、3這三個(gè)數(shù)字的順序,用它們做數(shù)字拆解數(shù)組的腳標(biāo),最終組合輸出所有可能的結(jié)果。
特別注意第41-44行的多條件與運(yùn)算的表達(dá)方式,每個(gè)條件單獨(dú)放到一行,首行使用了常量“TRUE”,這種表達(dá)方式有它特殊的意義,后面章節(jié)會(huì)有詳細(xì)討論。
6 | 代碼測(cè)試
在循環(huán)OB中調(diào)用FB- “3DigitsCombination”,調(diào)用時(shí)會(huì)自動(dòng)創(chuàng)建背景數(shù)據(jù)塊,命名為“Inst3DigitsCombination”,該背景數(shù)據(jù)塊可以用來監(jiān)視和修改數(shù)據(jù)。轉(zhuǎn)至在線并監(jiān)控程序。如下圖:

任意給定一個(gè)各位數(shù)字各不相同的整數(shù)159,得到159、195、519、591、915和951共六種結(jié)果。
7 | 總結(jié)
學(xué)習(xí)使用FOR循環(huán)語句;
學(xué)習(xí)循環(huán)嵌套;
學(xué)習(xí)使用IF...ELSE語句;
學(xué)習(xí)數(shù)字的拆解與組合算法。
- END -
博途V18下載地址
鏈接:?
https://pan.baidu.com/s/1okjXKeRmkG4sYCpDH-vdyA 提取碼: 9wjb 復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機(jī)App,操作更方便哦
公眾號(hào): 巨控電子( 掃碼關(guān)注 )