二维插值算法与实现.ppt
《二维插值算法与实现.ppt》由会员分享,可在线阅读,更多相关《二维插值算法与实现.ppt(52页珍藏版)》请在三一办公上搜索。
1、1,几个算例,华东交通大学,教师:赵秀绍,2,第一个例题三角形的面积求解,3,三角形面积求解,可以采用一个界面的输入方式,也可采用inputbox的输入方式,但要注意,因为输入的次数为三次,要用定数循环,不能没有条件的循环。,4,三角形面积求解,Private Sub Form_Load()Text2=End SubPrivate Sub Text1_Change(Index As Integer)If Not IsNumeric(Text1(Index).Text)Then Text2.Text=输入的不是数字,请重新输入 Text1(Index).SetFocus Text1(Index)
2、.Text=Else Text2=输入的数字是正确的End IfEnd Sub,初始化,判断输入的数据,5,三角形面积求解,Private Sub Command1_Click()计算Dim A#,B#,C#,S#,Mianji#A=Val(Text1(0).Text)B=Val(Text1(1).Text)C=Val(Text1(2).Text)If A+B C And B+C A And A+C B Then S=(A+B+C)/2 Mianji=Sqr(S*(S-A)*(S-B)*(S-C)Text2.Text=Format(Mianji,三角形的面积为0.#)Else Text2.Te
3、xt=输入的三条边不能构成三角形End IfEnd Sub,6,三角形面积求解方法2,7,三角形面积求解,Private Sub Command4_Click()On Error Resume NextDim AA()As StringIf Text3(0).Text Or Text3(1).Text Then If Option1(0).Value=True Then AA=Split(Text3(0).Text,)If Option1(1).Value=True Then AA=Split(Text3(1).Text,)Else Text4=没有数据输入End If下续,8,三角形面积求解
4、,Function Split(Expression As String,Delimiter,Limit As Long=-1,Compare As VbCompareMethod=vbBinaryCompare)VBA.Strings 的成员 Split a string into an array解释:split把一个字符串按分隔符分成一个数组,这个数组须是动态数组。空格分隔容易出现问题,但逗号分隔不会出现问题。例如:,9,三角形面积求解,多加几个空格没有问题,但不能有两个逗号连着,多加几个空格出现问题,分解的值有问题,10,代码续,Dim A#,B#,C#,S#,Mianji#A=Val
5、(AA(0)B=Val(AA(1)C=Val(AA(2)If A+B C And B+C A And A+C B Then S=(A+B+C)/2 Mianji=Sqr(S*(S-A)*(S-B)*(S-C)Text4.Text=三角形的三边分别为a=&A&,b=&B&,c=&C&vbCrLf&Format(Mianji,三角形的面积为0.#)Else Text4.Text=三角形的三边分别为a=&A&,b=&B&,c=&C&vbCrLf&输入的三条边不能构成三角形End IfEnd Sub,11,103.75,-1,38,7,15,1;96.75,1,86,52,30,1;420.77,-1
6、,39,18,30,1;208.64,1,62,31,30,1;436.79,1,25,56,30,-1;56.48,-1,87,1,15,-1;98.8,-1,53,22,0,-1;68.62,1,36,38,0,-1;95.1,1,59,29,0,-1;207.41,-1,51,40,45,-1,12,Public Sub StrtoShuzhu(ByVal Str1 As String,A()As Double)Dim RowData As VariantDim ColData As VariantDim RowtmpDat As VariantDim ColTmpDat As Vari
7、antDim r As Integer,C As IntegerRowData=Split(Str1,;)ReDim A(UBound(RowData),1)r=-1,13,For Each RowtmpDat In RowDataColData=Split(RowtmpDat,)ReDim Preserve A(UBound(RowData),UBound(ColData)r=r+1C=-1For Each ColTmpDat In ColDataC=C+1A(r,C)=ColTmpDatNextNext,14,第二个例题含水率求解,15,含水率试验,要求两组计算一个平均值,当两个值求平均时
8、,差值大于规范要求时,用红色背景显示该数据,16,含水率试验,Private Sub KJSZ(ByVal Shu As Integer)On Error Resume NextDim i As IntegerIf Shu=10 ThenText55.BackColor=vbRedText55=加载的试验组数过多,本程序暂时不能处理Exit SubEnd IfIf Shu 1 And Shu 10 Then For i=2 To Shu Load HSBH(i-1)HSBH(i-1).Visible=True HSBH(i-1).Top=HSBH(i-2).Top+350,加载控件数组,17,
9、含水率试验,Load HShh(i-1)HShh(i-1).Visible=True HShh(i-1).Top=HShh(i-2).Top+350 Load HSmh(i-1)HSmh(i-1).Visible=True HSmh(i-1).Top=HSmh(i-2).Top+350 Load HSmhst(i-1)HSmhst(i-1).Visible=True HSmhst(i-1).Top=HSmhst(i-2).Top+350 Load HSmhgt(i-1)HSmhgt(i-1).Visible=True HSmhgt(i-1).Top=HSmhgt(i-2).Top+350 Lo
10、ad HSmst(i-1)HSmst(i-1).Visible=True HSmst(i-2).Enabled=False HSmst(i-1).Top=HSmst(i-2).Top+350 Load HSmgt(i-1)HSmgt(i-1).Visible=True HSmgt(i-2).Enabled=False HSmgt(i-1).Top=HSmgt(i-2).Top+350 Load HSw(i-1)HSw(i-1).Visible=True HSw(i-2).Enabled=False HSw(i-1).Top=HSw(i-2).Top+350 Load HSpjw(i-1)HSp
11、jw(i-1).Visible=True HSpjw(i-2).Enabled=False HSpjw(i-1).Top=HSpjw(i-2).Top+350 Next iEnd IfHSQK_ClickEnd Sub,18,含水率试验,Private Sub Command16_Click()On Error Resume NextDim i As Integer For i=HSBH.UBound To 1 Step-1 Unload HSBH(i)Unload HShh(i)Unload HSmh(i)Unload HSmhst(i)Unload HSmhgt(i)Unload HSms
12、t(i)Unload HSmgt(i)Unload HSw(i)Unload HSpjw(i)Next i,控件是不能重复加载的,如需重复加载,可以用错误捕捉也可以先缷载要加载的控件,19,含水率试验,KJSZ(Val(Text54)UShu=Val(Text54)Label66.ForeColor=vbGreenLabel66.FontBold=TrueLabel66.Caption=计算成功,请保存数据Exit Suberr1:Label66.ForeColor=vbRedLabel66.FontBold=TrueLabel66.Caption=计算出错了,请确认是否输入数据有误,注意试样
13、体积和含水率的输入End Sub,函数调用,有两种方法,20,含水率试验,Private Sub HSJS_Click()On Error GoTo err1Dim i As IntegerIf Val(Text54)1 ThenFor i=0 To Val(Text54)-1 HSmst(i)=Format(Val(HSmhst(i)-Val(HSmh(i),#0.000)HSmgt(i)=Format(HSmhgt(i)-HSmh(i),#0.000)HSw(i)=Format(HSmhst(i)-HSmhgt(i)*100/HSmgt(i),#0.000)NextFor i=1 To V
14、al(Text54)If i Mod 2=0 Then If Abs(Val(HSw(i-1)-Val(HSw(i-2)2 Then HSpjw(i-2).ForeColor=vbBlack Else HSpjw(i-2).BackColor=vbRed HSpjw(i-2).FontBold=True End If HSpjw(i-2).Text=(Val(HSw(i-1)+Val(HSw(i-2)/2 Unload HSpjw(i-1)End IfNext,计算含水率的程序,湿土计算,干土计算,含水率计算,含水率差值计算,21,含水率试验,Elsei=0 HSmst(i)=Format(V
15、al(HSmhst(i)-Val(HSmh(i),#0.000)HSmgt(i)=Format(HSmhgt(i)-HSmh(i),#0.000)HSw(i)=Format(HSmhst(i)-HSmhgt(i)*100/HSmgt(i),#0.000)HSpjw(i)=HSw(i)End IfLabel66.ForeColor=vbGreenLabel66.FontBold=TrueLabel66.Caption=计算成功,请保存数据Exit Suberr1:Label66.ForeColor=vbRedLabel66.FontBold=TrueLabel66.Caption=计算出错了,请
16、确认是否输入数据有误 End Sub,提示计算成功还是失败的信息,22,表格法实现方法,Dim Str1 As String,AA()As DoubleSpreadsheet1.Cells(1,1)=盒号Spreadsheet1.Cells(1,2)=m盒(g)Spreadsheet1.Cells(1,3)=m盒湿土(g)Spreadsheet1.Cells(1,4)=m盒干土(g)Spreadsheet1.Cells(1,5)=含水率(%)Spreadsheet1.Cells(1,6)=平均含水率(%)Str1=314,14.414,84.355,75.614;345,14.397,82.5
17、76,73.323StrtoShuzhu Str1,AA()Dim I As Integer,J As IntegerFor I=0 To UBound(AA,1)For J=0 To UBound(AA,2)Spreadsheet1.Cells(I+2,J+1)=AA(I,J)把字符串分开填入表格中,以备以后测试用 Next JNext,23,含水率计算,Dim I As Integer,J As Integer,AA()ReDim AA(I-2,2)For I=0 To Spreadsheet1.ActiveSheet.UsedRange.Rows.Count-2 For J=0 To 2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二维 算法 实现
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5065342.html