数学函数在编程中的应用

     在工作中遇到这样一个问题:

    某些数据要分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()以及它的复合运算。来归纳这两个函数,当然也可能有好多其他的办法。当问题变得更复杂,情况更多时,归纳成函数来作,会让代码更简洁。

才疏学浅,哪位大哥看到了,多提意见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值