| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1227 人关注过本帖
标题:十万火急,马上要交了。。。关于子程序的调用
只看楼主 加入收藏
z18234089392
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2015-5-29
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:7 
十万火急,马上要交了。。。关于子程序的调用
For I = 2 To NN
BiaoJi:      A1 = GCH_MIN(I)
          If GCH(I, M(I)) > GCH(I, 1) Then
            b = GCH(I, 1)
          Else
            b = GCH(I, M(I))
          End If
        Debug.Print "b = "; b
        
    '二分法解能量方程
       Z(I) = b
        Call AERA(I)
        Call SHUIWEI(Z)
        FXB = FX


子程序:
Public Sub AERA(I)
W(I) = 0
X(I) = 0
For J = 1 To M(I) - 1
            If GCH(I, J) <= Z(I) And GCH(I, J + 1) <= Z(I) Then
                W(I) = W(I) + (Z(I) - (GCH(I, J + 1) + GCH(I, J)) / 2) * (AX(I, J + 1) - AX(I, J))
                X(I) = X(I) + ((GCH(I, J + 1) - GCH(I, J)) ^ 2 + (AX(I, J + 1) - AX(I, J)) ^ 2) ^ (1 / 2)
            ElseIf GCH(I, J) < Z(I) And GCH(I, J + 1) > Z(I) Then
                W(I) = W(I) + (Z(I) - GCH(I, J)) ^ 2 * (AX(I, J + 1) - AX(I, J)) / (GCH(I, J + 1) - GCH(I, J)) / 2
                X(I) = X(I) + (Z(I) - GCH(I, J)) * ((AX(I, J + 1) - AX(I, J)) ^ 2 + (GCH(I, J + 1) - GCH(I, J)) ^ 2) / (GCH(I, J + 1) - GCH(I, J)) ^ (1 / 2)
            ElseIf GCH(I, J) > Z(I) And GCH(I, J + 1) < Z(I) Then
                W(I) = W(I) + (Z(I) - GCH(I, J + 1)) ^ 2 * (AX(I, J + 1) - AX(I, J)) / (GCH(I, J) - GCH(I, J + 1)) / 2
                X(I) = X(I) + (Z(I) - GCH(I, J + 1)) * ((AX(I, J + 1) - AX(I, J)) ^ 2 + (GCH(I, J + 1) - GCH(I, J)) ^ 2) / (GCH(I, J) - GCH(I, J + 1)) ^ (1 / 2)
            End If
Next J
End Sub

Public Sub SHUIWEI(Z)
Dim FX As Double 'K值
Dim AAA As Double '面积平均值
Dim RRR As Double '水力半径平均值
Dim CCC As Double '谢才系数平均值

        R(I) = W(I) / X(I)
        V(I) = Q / W(I)
        C(I) = (1 / n(I)) * R(I) ^ (1 / 6)
        AAA = (W(I) + W(I - 1)) / 2
        RRR = (R(I) + R(I - 1)) / 2
        CCC = (C(I) + C(I - 1)) / 2
        FX = Z(I - 1) - Z(I) + (1.1 - GG(I)) * (V(I - 1) * V(I - 1) - V(I) * V(I)) / 19.62 + Q * Q * L(I) / (AAA * AAA * CCC * CCC * RRR)
End Sub


两个子程序,现在我的I都要从2开始,每次一运行,第一个的子程序没有问题,可是下面的SHUIWEI(Z)总是显示下标越界。。。。这是怎么回事啊??求大神解决啊!万分感谢,马上就要交毕业设计了
搜索更多相关主题的帖子: 子程序 二分法 
2015-06-01 17:48
chen3523
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:33
帖 子:223
专家分:1165
注 册:2013-2-12
收藏
得分:5 
个人觉得在这里就要赋值给Z
Call SHUIWEI(Z)  '在这之前应该赋值给Z

调试失败3次后,关机睡觉,当醒来时多有收获。
2015-06-01 19:27
z18234089392
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2015-5-29
收藏
得分:0 
可是这是一个循环里面啊
For I = 2 To NN
不就表示I已经有值了么
2015-06-01 19:38
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:5 
看着就头晕,大写不如小写,小写更容易检查,看着更舒服。
2015-06-01 19:50
z18234089392
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2015-5-29
收藏
得分:0 
回复 4楼 w2009w
现在主要就是I值的问题,其它的编写的应该没有问题,就是下面那个子程序怎么样才能遵循主程序开始计算呢,下标从2开始而不是0啊
2015-06-01 20:02
z18234089392
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2015-5-29
收藏
得分:0 
回复 2楼 chen3523
可是这是一个循环里面啊
For I = 2 To NN
不就表示I已经有值了么
2015-06-01 20:03
z18234089392
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2015-5-29
收藏
得分:0 
问题已解决谢谢各位了
2015-06-03 08:37
快速回复:十万火急,马上要交了。。。关于子程序的调用
数据加载中...
 
   



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

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