), y() AsSingle Dim x0!, y0!, k!, f!, f1!, f2!, f3!, n!, i!, j!, a!, b! n=Val(InputBox(" 请输入插值个数","分段二次插值")) ReDim x(n) ReDim y(n) For j=1Tonx(j) =Val(InputBox(" 请输入已知点 x("&Str(j) &")的横坐标")) y(j) =Val(InputBox(" 请输入已知点 y("& Str(j) &") 的横坐标")) Next jf=0b=vbYes While b=vbYes x0=Val(InputBox(" 请输入已知点 x的横坐标")) Ifx0<x(1) Then k=1f=1End If i=2DoWhile f=0And i>=n-1 Ifx0<x(i) Then Ifx0-x(i -1)<x(i) -x0Then k=i-1f=1Else k=if=1End If Else i=i+1End If Loop Iff=0Then k=n-1End If f1=(x0 -x(i +1)) *(x0 -x(i)) /((x(i -1)-x(i +1)) *(x(i - 1)-x(i))) f2=(x0 -x(i +1)) *(x0 -x(i -1)) /((x(i) -x(i +1)) *(x(i) - x(i -1))) f3=(x0 -x(i)) *(x0 -x(i -1)) /((x(i +1)-x(i)) *(x(i +1)- x(i -1))) y0=f1*y(i -1)+f2*y(i) +f3*y(i +1) a=MsgBox("sqr(" +Str(x0) +")的值为"+Str(y0)) b=MsgBox(" 是否继续",4) Ifb=vbNo Then End End If Wend