以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  老六你的递归函数我这才搞明白  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=25614)

--  作者:lpxjw_zyl
--  发布时间:2012/11/13 10:40:00
--  老六你的递归函数我这才搞明白
老六你的递归函数我这才搞明白?
--  作者:lpxjw_zyl
--  发布时间:2012/11/13 10:41:00
--  

花了半个小时看说明搞实践才弄清楚。


--  作者:sgs
--  发布时间:2012/11/13 10:41:00
--  
说白了就是自身调用自身的过程
--  作者:狐狸爸爸
--  发布时间:2012/11/13 10:42:00
--  

半小时搞清楚递归的同学,都属于优秀的。


--  作者:lpxjw_zyl
--  发布时间:2012/11/13 10:44:00
--  

谢谢夸奖,要两边结合起来就很容易看懂,首先搞懂参数,相当于把参数作为变量在自定义函数中执行,对吗?老六。


--  作者:lpxjw_zyl
--  发布时间:2012/11/13 11:16:00
--  

Dim dt As DataTable =DataTables("中招录取Ⅰ")
Dim drs As List(Of DataRow) = DataTables("中招录取Ⅰ").Select("", "总分 DESC")
Functions.Execute("排名",dt,drs)

内部函数名为排名

Dim dt As DataTable = Args(0)
Dim drs As List(Of DataRow) = Args(1)
For n As Integer = 0 To drs.Count - 1 \'遍历所有行
    If n > 0 AndAlso drs(n)("总分") = drs(n-1)("总分") Then \'如果总分和上一行相同
        drs(n)("总分排名") = drs(n-1)("总分排名") \'则排名等于上一行
    Else
        drs(n)("总分排名") = n + 1 \'设置排名
    End If
Next

 

老六你说这样我理解是对的吗?


--  作者:lin_hailun
--  发布时间:2012/11/13 11:43:00
--  
 关键要看楼主要实现的是什么了。加粗的代码,好像有点累赘。

Dim dt As DataTable =DataTables("中招录取Ⅰ")
Dim drs As List(Of DataRow) = DataTables("中招录取Ⅰ").Select("", "总分 DESC")
Functions.Execute("排名",dt,drs)

内部函数名为排名

Dim dt As DataTable = Args(0)
Dim drs As List(Of DataRow) = Args(1)

For n As Integer = 0 To drs.Count - 1 \'遍历所有行
    If n > 0 AndAlso drs(n)("总分") = drs(n-1)("总分") Then \'如果总分和上一行相同
        drs(n)("总分排名") = drs(n-1)("总分排名") \'则排名等于上一行
    Else
        drs(n)("总分排名") = n + 1 \'设置排名
    End If
Next