24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1171  |  回复: 5
本帖产生 2 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

jjdg

版主 (知名作家)

优秀版主

【答案】应助回帖

★ ★ ★ ★ ★
dubo(金币+5, 程序强帖+1): 感谢应助 2011-07-31 13:47:46
N        整型变量,输入参数,节点个数
XA()        输入参数,存放插值节点
YA()        输入参数,存放函数值
X        输入参数,插值自变量
Y        输出参数,所求值
DY        输出参数,误差估计


Sub POLINT(XA(), YA(), N, X, Y, DY)
    Dim C(10), D(10)
    NS = 1
    DIF = Abs(X - XA(1))
    For I = 1 To N
        DIFT = Abs(X - XA(I))
        If DIFT < DIF Then
            NS = I
            DIF = DIFT
        End If
        C(I) = YA(I)
        D(I) = YA(I)
    Next I
    Y = YA(NS)
    NS = NS - 1
    For M = 1 To N - 1
        For I = 1 To N - M
            HO = XA(I) - X
            HP = XA(I + M) - X
            W = C(I + 1) - D(I)
            DEN = HO - HP
            If DEN = 0# Then
                Print "PAUSE"
                Exit Sub
            End If
            DEN = W / DEN
            D(I) = HP * DEN
            C(I) = HO * DEN
        Next I
        If 2 * NS < N - M Then
            DY = C(NS + 1)
        Else
            DY = D(NS)
            NS = NS - 1
        End If
        Y = Y + DY
    Next M
End Sub
努力学习!以正当途径!获得需要的知识!
5楼2011-07-03 13:43:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lilac_c

至尊木虫 (知名作家)

【答案】应助回帖

★ ★ ★ ★ ★
dubo(金币+5, 程序强帖+1): 感谢应助 2011-07-31 13:48:11
dubo: 增加了程序的注释。程序的注释其实比程序跟重要!!这是需要鼓励的!!希望大家多写一些程序的注释 2011-07-31 13:54:33
Sub POLINT(XA(), YA(), N, X, Y, DY)  子程序
    Dim C(10), D(10)  定义两个数组
    NS = 1      
    DIF = Abs(X - XA(1))   ! abstract 绝对值.
    For I = 1 To N   循环体开始,从1,到n, 这个n赋值是由外部传入,可以看子程序对应变量.
        DIFT = Abs(X - XA(I))  
        If DIFT < DIF Then 如果dift小于dif 
            NS = I
            DIF = DIFT
        End If   ! end if 是 if  ...endif 不能缺少.
        C(I) = YA(I)
        D(I) = YA(I)
    Next I
    Y = YA(NS)
    NS = NS - 1
    For M = 1 To N - 1
        For I = 1 To N - M
            HO = XA(I) - X
            HP = XA(I + M) - X
            W = C(I + 1) - D(I)
            DEN = HO - HP
            If DEN = 0# Then!!这个地方看不很明白,以前自学的BASIC都忘记差不多拆.
                Print "PAUSE"
                Exit Sub
            End If
            DEN = W / DEN
            D(I) = HP * DEN
            C(I) = HO * DEN
        Next I
        If 2 * NS < N - M Then
            DY = C(NS + 1)
        Else
            DY = D(NS)
            NS = NS - 1
        End If
        Y = Y + DY
    Next M
End Sub
我生活在一个经常爆发地震的年代
6楼2011-07-04 02:11:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 狼馨520 的主题更新
信息提示
请填处理意见