數學函式在程式設計中的應用

2021-04-08 16:36:21 字數 1494 閱讀 3000

在工作中遇到這樣乙個問題:

某些資料要分n頁列印,但是在所有但資料頁的前面要列印一張封皮(bg1),然後列印一張公共資訊(bg2),後面是資料(bg3),最後還要列印一張統計資訊(bg4)。比如說:有50組資料,每張報告打10組,就要分5張報告列印,也就是說,先打一張封皮,再打一張公共資訊,然後打5張資料的報告,最後打一張報告,說明這50組資料的統計資訊。一共是1+1+5+1=8張報告。

詳細寫來就是:

for i=1 to n   ***********n代表共分多少頁資料報告。

if  i=1   ******如果是第一張報告,那麼 列印bg1(封皮),bg2(公共資訊),bg3(實際資料)

for ii=1 to 3

ss=allt(str(ii))

處理報告**。。。。。。。

report  bg&ss  to print

endfor

else

if i=n      ************如果是最後一張報告那麼列印資料和統計資訊。

for ii=3 to 4

ss=allt(str(ii))

處理報告**。。。。。。。

report  bg&ss  to print

endfor

else**********************如果是中間的資料,則只列印bg3

處理報告**。。。。。。。

report  bg3  to print

endif

endif

endfor

當然,這是在情況比較簡單的時候,可以寫出來**。如果情況更加複雜,那麼恐怕if else 就要用的更多。如果換乙個角度來思考這個問題。可以這樣考慮問題。

對於這n張資料報告。for i=1 to n  裡面再嵌乙個for ii=x to y

當i=1      for ii=1 to 3

當i=2      for ii=3 to 3      bg3

當i=3      for ii=3 to 3

當i=n-1 for ii=3 to 3

當i=n     for ii=3 to 4

將 ii的左邊的一系列數 1,3,3,3。。。。3

右邊的一系列數   2,3,3,3。。。。4

那麼左邊,右邊 的一系列數分別可以看成乙個 函式(斷點),y=f1(i)  y=f2(i) 以i為自變數。

只要我們求出了這兩個函式,就可以把原來的**寫成。

for i=1 to n

for ii=f1(i) to f2(i)               

處理報告和資料**。。。。。。。

report  bg&ss  to print

endfor

endfor

那麼如何能求出這兩個函式呢?

我們可以利用sign()以及它的復合運算。來歸納這兩個函式,當然也可能有好多其他的辦法。當問題變得更複雜,情況更多時,歸納成函式來作,會讓**更簡潔。

才疏學淺,哪位大哥看到了,多提意見。

狀態機思路在程式設計中的應用

狀態機思路在微控制器程式設計中的應用 狀態機的概念 狀態機是軟體程式設計中的乙個重要概念。比這個概念更重要的是對它的靈活應用。在乙個思路清晰而且高效的程式中,必然有狀態機的身影浮現。比如說乙個按鍵命令解析程式,就可以被看做狀態機 本來在a狀態下,觸發乙個按鍵後切換到了b狀態 再觸發另乙個鍵後切換到c...

狀態機思路在程式設計中的應用

狀態機思路在微控制器程式設計中的應用 狀態機的概念 狀態機是軟體程式設計中的乙個重要概念。比這個概念更重要的是對它的靈活應用。在乙個思路清晰而且高效的程式中,必然有狀態機的身影浮現。比如說乙個按鍵命令解析程式,就可以被看做狀態機 本來在a狀態下,觸發乙個按鍵後切換到了b狀態 再觸發另乙個鍵後切換到c...

狀態機思路在程式設計中的應用

狀態機思路在微控制器程式設計中的應用 狀態機的概念 狀態機是軟體程式設計中的乙個重要概念。比這個概念更重要的是對它的靈活應用。在乙個思路清晰而且高效的程式中,必然有狀態機的身影浮現。比如說乙個按鍵命令解析程式,就可以被看做狀態機 本來在a狀態下,觸發乙個按鍵後切換到了b狀態 再觸發另乙個鍵後切換到c...