TIA博途SCL編程學(xué)習(xí)52_郵票組合抓捕交通肇事犯
1?| 題目

一輛卡車違反交通規(guī)則,撞人后逃跑?,F(xiàn)場有三人目擊該事件,但都沒有記住完整的車牌號,只記下車牌號的一些特征。
甲說:車牌號的前兩位數(shù)字是相同的;
乙說:車牌號的后兩位數(shù)字是相同的,但與前兩位不同;
丙是數(shù)學(xué)家,他說:四位數(shù)字的車牌號剛好是一個整數(shù)的平方。
請根據(jù)以上線索編寫程序求出完整的車牌號。
2 | 設(shè)計分析

按照題目的要求構(gòu)造出一個前兩位數(shù)相同、后兩位數(shù)相同且相互間又不同的4位整數(shù),然后判斷該整數(shù)是否是另一個整數(shù)的平方。該題目是數(shù)值計算問題,求解不定方程。對于這種求解不定方程組的問題,一般采用窮舉循環(huán)。首先設(shè)計雙層循環(huán)窮舉出所有由前兩位數(shù)和后兩位數(shù)組成的4位數(shù)車牌;然后在最內(nèi)層窮舉出所有的平方后值為4位數(shù)并且小于車牌號的數(shù);最后判斷該數(shù)是否與車牌號相等,若相等則輸出正確的完整車牌號。
3?| 創(chuàng)建功能或功能塊

創(chuàng)建功能塊FB,命名為“ArrestTrafficOffender”。
4 | 定義接口變量

具體接口變量定義見下圖:

定義數(shù)據(jù)類型為整型數(shù)的變量#carNumberQ作為鎖定的完整的車牌號的輸出。定義數(shù)據(jù)類型為整型數(shù)的變量#tempI作為車牌號的前兩位,#tempJ作為車牌號的后兩位。
5 | 程序代碼

編寫程序代碼。如下圖:

注意程序中最內(nèi)層嵌套的循環(huán)變量的起始值和結(jié)束值分別為32和99,是因為這兩個數(shù)值為四位數(shù)開方的最小值和最大值。
6 | 代碼測試

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

求得肇事車輛的牌號為7744。
7 | 總結(jié)

學(xué)習(xí)使用FOR循環(huán)語句;
學(xué)習(xí)使用FOR循環(huán)嵌套;
學(xué)習(xí)使用IF條件語句。
- END -
PLC,SCADA,DCS短信語音微信報警
