| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 880 人关注过本帖
标题:vb.net 编程调试求助
只看楼主 加入收藏
pma21st
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-25
收藏
 问题点数:0 回复次数:2 
vb.net 编程调试求助
我把下面的源代码放在 2005中调试时,程序显示“lstoutput1”、“sw”、“sr”为“未声明名称”,当在Form中加了一个名称为“lstoutput1”ListBox后,第一个错误消失。本人不是学计算机的,请高手帮忙调试一下,数据输入输出应该如何处理?
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim NTP, NCH, NPR, NDM, Fix, rau1, counter1 As Integer
        NTP = 20
        NCH = 10
        NPR = 20
        NDM = 10
        Fix = 1000
        rau1 = 2048 * 2
        Dim raul_0 = 1.0E-32
        Dim rau1_10 As Integer = 10 * 2
        Dim rau1_20 As Integer = 20 * 2
        Dim rau1_100 As Integer = 100 * 2
        Dim rau1_200 As Integer = 200 * 2
        Dim rau_mode As Integer = 1
        Dim rau1_4 As Integer = 4
        counter1 = 0
        Dim ich(rau1_10), ics(rau1_10) As Integer
        Dim jet(rau1_20), jf(rau1_20), jff(rau1_20), jps(rau1_20) As Integer
        Dim kdc(rau1_10), kdcw(rau1_10) As Integer
        Dim xee(rau1_10), xerc(rau1_10) As Double
        Dim xerp(rau1_20) As Double
        Dim xsc(rau1_20) As Double
        Dim ika(rau1_100) As Integer
        Dim jia(rau1_200) As Integer
        Dim xea(rau1_200) As Double
        Dim kabc(rau1), kbbc(rau1), kcbc(rau1) As Integer
        Dim energy_rau(rau1_4) As Double
        Dim fmtStr1 As String = "{0,-3}{1,-3}{2,-3}{3,-3}{4,-4}{5,-5}{6,-5}{7,-5}{8,-5}{9,-5}{10,-5}{11,-5}{12,-8:N2}{13,-8:N2}{14,-14}{15,-14}"
        Dim i, j, k As Integer
        For i = 0 To NCH
            ich(i) = ics(i) = 0
        Next
        For i = 0 To NPR
            jet(i) = jf(i) = jff(i) = jps(i) = 0
        Next
        For i = 0 To NDM
            kdc(i) = kdcw(i) = 0
        Next
        For i = 0 To NCH
            xee(i) = xerc(i) = 0.0
        Next
        For i = 0 To NPR
            xerp(i) = 0.0
        Next
        For i = 0 To NTP
            xsc(i) = 0.0
        Next
        For i = 0 To NCH
            For j = 0 To NDM
                ika(i * (NCH + 1) + j) = 0
            Next
        Next
        For i = 0 To NPR
            For j = 0 To NCH
                jia(i * (NCH + 1) + j) = 0
            Next
        Next
        For i = 0 To NDM
            For j = 0 To NTP
                xea(i * (NTP + 1) + j) = 0.0
            Next
        Next
        For i = 0 To NTP
            For j = 0 To NPR
                kabc(i * (NPR + 1) + j) = kbbc(i * (NPR + 1) + j) = kcbc(i * (NPR + 1) + j) = 0
            Next
        Next
        Dim icht(rau1), jett(rau1) As Integer
        Dim NR, NF As Integer
        ' Read data
        NR = 1
        NF = 10
        ReadLine(icht, xsc, jett, NCH, NTP, NR, NF)
        NR = 2
        NF = 10
        ReadLine(icht, xsc, jett, NCH, NTP, NR, NF)
        NR = 3
        NF = 20
        ReadLine(icht, xsc, jett, NCH, NTP, NR, NF)
        NR = 4
        NF = 20
        ReadLine(icht, xsc, jett, NCH, NTP, NR, NF)
        NR = 5
        NF = 20
        ReadLine(icht, xsc, jett, NCH, NTP, NR, NF)
        ReadEnergy(energy_rau)
        ShowHeaderEnergy(energy_rau)
        ShowHeader()
        ' End Read
        Dim na, io, mode, a, b As Integer
        na = 1
        mode = 1
        Do While (rau_mode < 5)
            If (rau_mode = 1) Then
                a = 0
                b = 0
            End If
            If (rau_mode = 2) Then
                a = 0
                b = 1
            End If
            If (rau_mode = 3) Then
                a = 1
                b = 0
            End If
            If (rau_mode = 4) Then
                a = 1
                b = 1
            End If
            For i = 1 To NCH
                ich(i) = icht(a * (NCH + 1) + i)
                If counter1 = 0 Then
                End If
            Next
            For i = 1 To NTP
                jet(jett(b * (NTP + 1) + i)) = Int((i - 1) / 2) + 1
            Next
            Dim i1, ib, ja, jab, jdb, jd, jeb, je, ks As Integer
            Dim xr, xs As Double
            Dim choices_made, choices_solved As Integer
            For i1 = 1 To 3
                ib = i1 - 1
                For jab = 1 To 3
                    ja = jab - 1
                    For jdb = 1 To 3
                        jd = jdb - 1
                        For jeb = 1 To 3
                            je = jeb - 1
                            xr = 0.0
                            xs = 0.0
                            ks = 0
                            choices_made = 0
                            choices_solved = 0
                            For i = 1 To NCH
                                xerc(i) = 1.1
                                xee(i) = 0.0
                                ics(i) = 0
                            Next
                            For k = 0 To NDM
                                kdc(k) = 0
                                kdcw(k) = kdc(k)
                            Next
                            For j = 0 To NPR
                                If i1 = 1 Then
                                    xerp(j) = energy_rau(i1)
                                End If
                                If i1 = 2 Then
                                    xerp(j) = energy_rau(i1)
                                End If
                                If i1 = 3 Then
                                    xerp(j) = energy_rau(i1)
                                End If
                                jf(j) = 0
                                jff(j) = 0
                                jps(j) = 0
                            Next
                            For i = 1 To NCH
                                For j = 1 To NDM
                                    ika(i * (NDM + 1) + j) = 1
                                    If (jd = 1) Then
                                        If (i < j) Then
                                            ika(i * (NDM + 1) + j) = 0
                                        End If
                                    End If
                                    If (jd = 2) Then
                                        If (i <> j) Then
                                            ika(i * (NDM + 1) + j) = 0
                                        End If
                                    End If
                                Next
                            Next
                            For i = 1 To NPR
                                For j = 1 To NCH
                                    jia(i * (NCH + 1) + j) = 0
                                    If (ja = 1) Then
                                        If ((i - j) <= (i / 2)) Then
                                            jia(i * (NCH + 1) + j) = 1
                                        End If
                                    ElseIf (ja = 2) Then
                                        If (i = (2 * j)) Then
                                            jia(i * (NCH + 1) + j) = 1
                                            jia((i - 1) * (NCH + 1) + j) = 1
                                        End If
                                    Else
                                        jia(i * (NCH + 1) + j) = 1
                                    End If
                                Next
                            Next
                            Dim xxa As Double
                            For i = 1 To NDM
                                For j = 1 To NTP
                                    xea(i * (NTP + 1) + j) = 0.55
                                    If (je = 1) Then
                                        GoTo Continue1
                                    End If
                                    xxa = i
                                    If (je = 0) Then
                                        xea(i * (NTP + 1) + j) = xxa / 10.0
                                    Else
                                        xea(i * (NTP + 1) + j) = (11.0 - xxa) / 10.0
                                    End If
Continue1:
                                Next
                            Next
                            Dim lt, ltt As Integer
                            For lt = 1 To NTP
                                For i = 1 To NCH
                                    If (ich(i) <> lt) Then
                                        GoTo Continue2
                                    End If
                                    ics(i) = 1
Continue2:
                                Next
                                For j = 1 To NPR
                                    If (jet(j) = lt) Then
                                        jps(j) = 1
                                    End If
                                Next
                                Dim super As Double
                                For j = 1 To NPR
                                    If (jps(j) <> 1) Then
                                        GoTo Continue3
                                    End If
                                    If ((na = 2) Or (na = 4)) Then
                                        If (jf(j) <> 0) Then
                                            jff(j) = jf(j)
                                            GoTo Continue3
                                        End If
                                    End If
                                    super = 100000.0
                                    For i = 1 To NCH
                                        If (ics(i) <> 1) Then
                                            GoTo Continue4
                                        End If
                                        If (jia(j * (NCH + 1) + i) = 0) Then
                                            GoTo Continue4
                                        End If
                                        If ((jf(j) = 0) Or (jf(j) = i)) Then
                                            If (xerc(i) - xee(i) > super Or Math.Abs(xerc(i) - xee(i) - super) < raul_0) Then
                                                GoTo Continue4
                                            End If
                                            super = xerc(i) - xee(i)
                                            jff(j) = i
                                            GoTo Continue4
                                        End If
                                        If (xerp(j) + xerc(i) - xee(i) > super Or Math.Abs(xerp(j) + xerc(i) - xee(i) - super) < raul_0) Then
                                            GoTo Continue4
                                        Else
                                            super = xerp(j) + xerc(i) - xee(i)
                                            jff(j) = i
                                        End If
Continue4:
                                    Next
Continue3:
                                Next
                                For j = 1 To NPR
                                    jf(j) = jff(j)
                                    jff(j) = 0
                                Next
                                ltt = lt - 1
                                If (lt = 1) Then
                                    ltt = 1
                                End If
                                Dim Val As Double
                                For k = 1 To NDM
                                    If ((na = 3) Or (na = 4)) Then
                                        If (kdc(k) <> 0) Then
                                            kdcw(k) = kdc(k)
                                            GoTo Continue5
                                        End If
                                    End If
                                    super = 1000.0
                                    For i = 1 To NCH
                                        If (ics(i) <> 1) Then
                                            GoTo Continue6
                                        End If
                                        If (ika(i * (NDM + 1) + k) = 0) Then
                                            GoTo Continue6
                                        End If
                                        If ((kdc(k) = 0) Or (kdc(k) = i)) Then
                                            If (xerc(i) - xee(i) > super Or Math.Abs(xerc(i) - xee(i) - super) < raul_0) Then
                                                GoTo Continue6
                                            End If
                                            super = xerc(i) - xee(i)
                                            kdcw(k) = i
                                        ElseIf ((Val = xerc(i) - xee(i) - (xea(k * (NTP + 1) + ltt) * xsc(ltt))) > super Or Math.Abs(Val - super) < raul_0) Then
                                            GoTo Continue6
                                        Else
                                            super = xerc(i) - xee(i) - (xea(k * (NTP + 1) + ltt) * xsc(ltt))
                                            kdcw(k) = i
                                        End If
Continue6:
                                    Next
Continue5:
                                Next
                                For k = 1 To NDM
                                    kdc(k) = kdcw(k)
                                    If (kdc(k) <> 0) Then
                                        kdcw(k) = 0
                                        GoTo Continue7
                                    End If
                                    xr = xr + (xea(k * (NTP + 1) + lt) * xsc(lt))
                                    ks = ks + 1
                                    kdcw(k) = 0
Continue7:
                                Next
                                For i = 1 To NCH
                                    If (ics(i) = 0) Then
                                        GoTo Continue8
                                    End If
                                    xerc(i) = 0.0
                                    For j = 1 To NPR
                                        If (jps(j) <> 1) Then
                                            GoTo Continue9
                                        End If
                                        If (jf(j) <> i) Then
                                            GoTo Continue9
                                        End If
                                        xerc(i) = xerc(i) + xerp(j)
Continue9:
                                    Next
                                    For k = 1 To NDM
                                        If (ika(i * (NDM + 1) + k) = 0) Then
                                            GoTo Continue10
                                        End If
                                        If (kdc(k) <> i) Then
                                            GoTo Continue10
                                        End If
                                        xee(i) = xee(i) + (xsc(lt) * xea(k * (NTP + 1) + lt))
Continue10:
                                    Next
Continue8:
                                Next
                                Dim i_solved_a_problem As Integer
                                For i = 1 To NCH
                                    i_solved_a_problem = 0
                                    If (ics(i) <> 1) Then
                                        GoTo Continue11
                                    End If
                                    If (xerc(i) > xee(i) And xerc(i) - xee(i) > raul_0) Then
                                        GoTo Continue11
                                    End If
                                    xs = xs + xee(i) - xerc(i)
                                    ics(i) = 2
                                    For j = 1 To NPR
                                        If (jf(j) <> i) Then
                                            GoTo Continue12
                                        End If
                                        jps(j) = 2
                                        i_solved_a_problem = i_solved_a_problem + 1
Continue12:
                                    Next
                                    If ((na = 3) Or (na = 4)) Then
                                        For k = 1 To NDM
                                            If (kdc(k) = i) Then
                                                kdcw(k) = 1
                                            End If
                                        Next
                                    End If
                                    choices_made = choices_made + 1
                                    If (i_solved_a_problem > 0) Then
                                        choices_solved = choices_solved + 1
                                    End If
Continue11:
                                Next
                                For i = 1 To NCH
                                    kabc(lt * (NCH + 1) + i) = ics(i)
                                Next
                                For k = 1 To NDM
                                    kbbc(lt * (NDM + 1) + k) = kdc(k)
                                    If (kdcw(k) <> 0) Then
                                        kdc(k) = 0
                                    End If
                                    kdcw(k) = 0
                                Next
                                For j = 1 To NPR
                                    kcbc(lt * (NPR + 1) + j) = jf(j)
                                    If (jps(j) = 0) Then
                                        kcbc(lt * (NPR + 1) + j) = -1
                                    ElseIf (jps(j) = 1) Then
                                        GoTo Continue13
                                    Else
                                        kcbc(lt * (NPR + 1) + j) = 1000
                                    End If
Continue13:
                                Next
                            Next
                            Dim kz, ky, kx, kw, kv, ku, kt As Integer
                            kz = 0
                            ky = 0
                            kx = 0
                            kw = 0
                            kv = 0
                            ku = 0
                            kt = 0
                            For i = 1 To NTP
                                For j = 1 To NCH
                                    If (kabc(i * (NCH + 1) + j) <> 1) Then
                                        GoTo Continue14
                                    End If
                                    ky = ky + 1
                                    If (i <> NTP) Then
                                        GoTo Continue14
                                    End If
                                    kz = kz + 1
Continue14:
                                Next
                            Next
                            For i = 2 To NTP
                                For j = 1 To NDM
                                    If (kbbc(i * (NDM + 1) + j) = kbbc((i - 1) * (NDM + 1) + j)) Then
                                        GoTo Continue15
                                    End If
                                    kx = kx + 1
Continue15:
                                Next
                            Next
                            For i = 1 To NTP
                                For j = 1 To NPR
                                    If (kcbc(i * (NPR + 1) + j) = -1) Then
                                        GoTo Continue16
                                    End If
                                    If (kcbc(i * (NPR + 1) + j) = 1000) Then
                                        If (i <> NTP) Then
                                            GoTo Continue16
                                        Else
                                            kw = kw + 1
                                        End If
                                    ElseIf (kcbc(i * (NPR + 1) + j) = 0) Then
                                        ku = ku + 1
                                    Else
                                        kt = kt + 1
                                    End If
Continue16:
                                Next
                            Next
                            kw = NPR - kw
                            For i = 2 To NTP
                                For j = 1 To NPR
                                    If (kcbc(i * (NPR + 1) + j) <> kcbc((i - 1) * (NPR + 1) + j)) Then
                                        kv = kv + 1
                                    End If
                                Next
                            Next
                            lstoutput1.Items.Add(String.Format(fmtStr1, ib, ja, jd, je, _
                            kz, ky, kx, kw, kv, ku, kt, ks, xr, xs, _
                            choices_made, choices_solved))
                            counter1 += 1
                            sw.WriteLine(String.Format(fmtStr1, ib, ja, jd, je, _
                            kz, ky, kx, kw, kv, ku, kt, ks, xr, xs, _
                            choices_made, choices_solved))
                            If (io = 1) Then
                                GoTo Continue17
                            End If
Continue17:
                        Next
                    Next
                Next
            Next
            lstoutput1.Items.Add("Number of records printed 3*3*3*3 rau_mode = " & rau_mode)
            rau_mode = rau_mode + 1
        Loop
        lstoutput1.Items.Add(" ")
        lstoutput1.Items.Add("Number of records printed 3*3*3*3 = " & counter1)
        sw.Close()
    End Sub
    Sub ShowHeaderEnergy(ByRef energy_rau() As Double)
        Dim fmtStr As String = "{0,-7}{1,-5}{2,-5}{3,-5}"
        lstoutput1.Items.Add(String.Format(fmtStr, "Energy ", energy_rau(1), _
        energy_rau(2), _
        energy_rau(3)))
        sw.WriteLine(String.Format(fmtStr, "Energy ", energy_rau(1), _
        energy_rau(2), _
        energy_rau(3)))
    End Sub
    Sub ShowHeader()
        Dim fmtStr As String = "{0,-3}{1,-3}{2,-3}{3,-3}{4,-4}{5,-5}{6,-5}{7,-5}{8,-5}{9,-5}{10,-5}{11,-5}{12,-8}{13,-8}{14,-14}{15,-14}"
        lstoutput1.Items.Add(String.Format(fmtStr, "ib", "ja", "jd", "je", _
        "KZ", "KY", "KX", "KW", "KV", "KU", "KT", "KS", "XR", "XS", _
        "madeChoices ", "solvedChoices"))
        sw.WriteLine(String.Format(fmtStr, "ib", "ja", "jd", "je", _
        "KZ", "KY", "KX", "KW", "KV", "KU", "KT", "KS", "XR", "XS", _
        "madeChoices ", "solvedChoices"))
    End Sub
    Sub ReadLine(ByRef icht() As Integer, ByRef xsc() As Double, ByRef jett() As Integer, ByVal NCH As Integer, ByVal NTP As Integer, ByVal NR As Integer, ByVal NF As Integer)
        Dim name As String, i As Integer
        Dim commaNumber As Integer
        name = sr.ReadLine
        For i = 1 To NF
            If i = NF Then
                If (NR = 1 Or NR = 2) Then
                    icht((NR - 1) * (NCH + 1) + i) = CInt(name)
                End If
                If (NR = 3) Then
                    xsc(i) = CDbl(name)
                End If
                If (NR = 4 Or NR = 5) Then
                    jett((NR - 4) * (NTP + 1) + i) = CInt(name)
                End If
            End If
            If i < NF Then
                commaNumber = name.IndexOf(Chr(32))
                If (NR = 1 Or NR = 2) Then
                    icht((NR - 1) * (NCH + 1) + i) = CInt(name.Substring(0, commaNumber))
                End If
                If (NR = 3) Then
                    xsc(i) = CDbl(name.Substring(0, commaNumber))
                End If
                If (NR = 4 Or NR = 5) Then
                    jett((NR - 4) * (NTP + 1) + i) = CInt(name.Substring(0, commaNumber))
                End If
                name = name.Substring(commaNumber + 1)
            End If
        Next
    End Sub
    Sub ReadEnergy(ByRef energy_rau() As Double)
        Dim name As String, i As Integer
        Dim commaNumber As Integer
        name = sr.ReadLine
        For i = 1 To 3
            If i = 3 Then
                energy_rau(i) = CDbl(name)
            End If
            If i < 3 Then
                commaNumber = name.IndexOf(Chr(32))
                energy_rau(i) = CDbl(name.Substring(0, commaNumber))
                name = name.Substring(commaNumber + 1)
            End If
        Next
    End Sub
End Class
2008-11-25 18:03
烈焰尊
Rank: 1
等 级:新手上路
威 望:1
帖 子:220
专家分:0
注 册:2008-11-3
收藏
得分:0 
按你说的是只要申明“lstoutput1”、“sw”、“sr”变量就可以了

如果可以再爱的话,我还再爱你
性别:保密中
2008-11-25 19:23
pma21st
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-25
收藏
得分:0 
回复 第2楼 烈焰尊 的帖子
如何声明?请明示?这个程序是否需要编辑控件输入输出数据?
2008-11-25 21:48
快速回复:vb.net 编程调试求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023968 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved