您的位置:程序门 -> .net技术 -> vb.net



实例化问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


实例化问题[已结贴,结贴人:yanrenxiang]
发表于:2007-02-23 13:26:09 楼主
public   sub   iapcir(byval   x()   as   double,   _
        byval   y()   as   double,   _
        byval   n   as   integer,   _
        byref   a()   as   double,   _
        byval   m   as   integer,   _
        byref   rdblaveragex   as   double,   _
        byref   dt()   as   double)

                dim   i   as   integer,   j   as   integer,   k   as   integer
                dim   z   as   double,   p   as   double,   c   as   double,   g   as   double,   q   as   double,   d1   as   double,   d2   as   double
                dim   s(19)   as   double,   t(19)   as   double,   b(19)   as   double


                for   i   =   0   to   m   -   1

                    a(i)   =   0 '问题,   "其他信息:   未将对象引用设置到对象的实例             "     next   i

                if   m   >   n   then   m   =   n
                if   m   >   20   then   m   =   20

                z   =   0.0#

                for   i   =   0   to   n   -   1
                        rdblaveragex   =   rdblaveragex   +   x(i)
                        z   =   z   +   x(i)   /   (1.0#   *   n)
                next   i
                rdblaveragex   =   rdblaveragex   /   n

                b(0)   =   1.0
                d1   =   1.0   *   n
                p   =   0.0
                c   =   0.0

                for   i   =   0   to   n   -   1
                        p   =   p   +   (x(i)   -   z)
                        c   =   c   +   y(i)
                next   i

                c   =   c   /   d1
                p   =   p   /   d1
                a(0)   =   c   *   b(0)

                if   m   >   1   then
                        t(1)   =   1.0#
                        t(0)   =   (-1)   *   p
                        d2   =   0.0#
                        c   =   0.0#
                        g   =   0.0#
                        for   i   =   0   to   n   -   1
                                q   =   x(i)   -   z   -   p
                                d2   =   d2   +   q   *   q
                                c   =   c   +   y(i)   *   q
                                g   =   g   +   (x(i)   -   z)   *   q   *   q
                        next   i

                        c   =   c   /   d2
                        p   =   g   /   d2
                        q   =   d2   /   d1
                        d1   =   d2
                        a(1)   =   c   *   t(1)
                        a(0)   =   c   *   t(0)   +   a(0)
                end   if

                for   j   =   2   to   m   -   1
                        s(j)   =   t(j   -   1)
                        s(j   -   1)   =   (-1)   *   p   *   t(j   -   1)   +   t(j   -   2)

                        if   j   > =   3   then
                                for   k   =   j   -   2   to   1   step   -1
                                        s(k)   =   (-1)   *   p   *   t(k)   +   t(k   -   1)   -   q   *   b(k)
                                next   k
                        end   if

                        s(0)   =   (-1)   *   p   *   t(0)   -   q   *   b(0)

                        d2   =   0.0#
                        c   =   0.0#
                        g   =   0.0#

                        for   i   =   0   to   n   -   1
                                q   =   s(j)

                                for   k   =   j   -   1   to   0   step   -1
                                        q   =   q   *   (x(i)   -   z)   +   s(k)
                                next   k

                                d2   =   d2   +   q   *   q
                                c   =   c   +   y(i)   *   q
                                g   =   g   +   (x(i)   -   z)   *   q   *   q
                        next   i

                        c   =   c   /   d2
                        p   =   g   /   d2
                        q   =   d2   /   d1
                        d1   =   d2
                        a(j)   =   c   *   s(j)
                        t(j)   =   s(j)

                        for   k   =   j   -   1   to   0   step   -1
                                a(k)   =   c   *   s(k)   +   a(k)
                                b(k)   =   t(k)
                                t(k)   =   s(k)
                        next   k
                next   j

                dt(0)   =   0.0#
                dt(1)   =   0.0#
                dt(2)   =   0.0#

                for   i   =   0   to   n   -   1
                        q   =   a(m   -   1)

                        for   k   =   m   -   2   to   0   step   -1
                                q   =   a(k)   +   q   *   (x(i)   -   z)
                        next   k

                        p   =   q   -   y(i)

                        if   abs(p)   >   dt(2)   then
                                dt(2)   =   abs(p)
                        end   if
                        dt(0)   =   dt(0)   +   p   *   p
                        dt(1)   =   dt(1)   +   abs(p)
                next   i

        end   sub

end   module
此程序在vb6.0中正常运行,但在vb.net中就   "提示其他信息:   未将对象引用设置到对象的实例 "   要如何改呢?   拜托各位高手了!!
发表于:2007-02-23 13:26:591楼 得分:100
public   sub   iapcir(byref   x()   as   double,   byref   y()   as   double,   byval   n   as   short,   byref   a()   as   double,   byval   m   as   short,   byref   rdblaveragex   as   double,   byref   dt()   as   double)

                dim   j,   i,   k   as   short
                dim   d1,   g,   p,   z,   c,   q,   d2   as   double
                dim   s(19)   as   double
                dim   t(19)   as   double
                dim   b(19)   as   double

                for   i   =   0   to   m   -   1
                        a(i)   =   0
                next   i

                if   m   >   n   then   m   =   n
                if   m   >   20   then   m   =   20

                z   =   0.0#

                for   i   =   0   to   n   -   1
                        rdblaveragex   =   rdblaveragex   +   x(i)
                        z   =   z   +   x(i)   /   (1.0#   *   n)
                next   i
                rdblaveragex   =   rdblaveragex   /   n

                b(0)   =   1.0#
                d1   =   1.0#   *   n
                p   =   0.0#
                c   =   0.0#

                for   i   =   0   to   n   -   1
                        p   =   p   +   (x(i)   -   z)
                        c   =   c   +   y(i)
                next   i

                c   =   c   /   d1
                p   =   p   /   d1
                a(0)   =   c   *   b(0)

                if   m   >   1   then
                        t(1)   =   1.0#
                        t(0)   =   (-1)   *   p
                        d2   =   0.0#
                        c   =   0.0#
                        g   =   0.0#
                        for   i   =   0   to   n   -   1
                                q   =   x(i)   -   z   -   p
                                d2   =   d2   +   q   *   q
                                c   =   c   +   y(i)   *   q
                                g   =   g   +   (x(i)   -   z)   *   q   *   q
                        next   i

                        c   =   c   /   d2
                        p   =   g   /   d2
                        q   =   d2   /   d1
                        d1   =   d2
                        a(1)   =   c   *   t(1)
                        a(0)   =   c   *   t(0)   +   a(0)
                end   if

                for   j   =   2   to   m   -   1
                        s(j)   =   t(j   -   1)
                        s(j   -   1)   =   (-1)   *   p   *   t(j   -   1)   +   t(j   -   2)

                        if   j   > =   3   then
                                for   k   =   j   -   2   to   1   step   -1
                                        s(k)   =   (-1)   *   p   *   t(k)   +   t(k   -   1)   -   q   *   b(k)
                                next   k
                        end   if

                        s(0)   =   (-1)   *   p   *   t(0)   -   q   *   b(0)

                        d2   =   0.0#
                        c   =   0.0#
                        g   =   0.0#

                        for   i   =   0   to   n   -   1
                                q   =   s(j)

                                for   k   =   j   -   1   to   0   step   -1
                                        q   =   q   *   (x(i)   -   z)   +   s(k)
                                next   k

                                d2   =   d2   +   q   *   q
                                c   =   c   +   y(i)   *   q
                                g   =   g   +   (x(i)   -   z)   *   q   *   q
                        next   i

                        c   =   c   /   d2
                        p   =   g   /   d2
                        q   =   d2   /   d1
                        d1   =   d2
                        a(j)   =   c   *   s(j)
                        t(j)   =   s(j)

                        for   k   =   j   -   1   to   0   step   -1
                                a(k)   =   c   *   s(k)   +   a(k)
                                b(k)   =   t(k)
                                t(k)   =   s(k)
                        next   k
                next   j

                dt(0)   =   0.0#
                dt(1)   =   0.0#
                dt(2)   =   0.0#

                for   i   =   0   to   n   -   1
                        q   =   a(m   -   1)

                        for   k   =   m   -   2   to   0   step   -1
                                q   =   a(k)   +   q   *   (x(i)   -   z)
                        next   k

                        p   =   q   -   y(i)

                        if   system.math.abs(p)   >   dt(2)   then
                                dt(2)   =   system.math.abs(p)
                        end   if
                        dt(0)   =   dt(0)   +   p   *   p
                        dt(1)   =   dt(1)   +   system.math.abs(p)
                next   i

        end   sub


快速检索

最新资讯
热门点击