




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
几个算例,华东交通大学,教师:赵秀绍,1,第一个例题三角形的面积求解,2,三角形面积求解,可以采用一个界面的输入方式,也可采用inputbox的输入方式,但要注意,因为输入的次数为三次,要用定数循环,不能没有条件的循环。,3,三角形面积求解,PrivateSubForm_Load()Text2=EndSubPrivateSubText1_Change(IndexAsInteger)IfNotIsNumeric(Text1(Index).Text)ThenText2.Text=输入的不是数字,请重新输入Text1(Index).SetFocusText1(Index).Text=ElseText2=输入的数字是正确的EndIfEndSub,初始化,判断输入的数据,4,三角形面积求解,PrivateSubCommand1_Click()计算DimA#,B#,C#,S#,Mianji#A=Val(Text1(0).Text)B=Val(Text1(1).Text)C=Val(Text1(2).Text)IfA+BCAndB+CAAndA+CBThenS=(A+B+C)/2Mianji=Sqr(S*(S-A)*(S-B)*(S-C)Text2.Text=Format(Mianji,三角形的面积为0.#)ElseText2.Text=输入的三条边不能构成三角形EndIfEndSub,5,三角形面积求解方法2,6,三角形面积求解,PrivateSubCommand4_Click()OnErrorResumeNextDimAA()AsStringIfText3(0).TextOrText3(1).TextThenIfOption1(0).Value=TrueThenAA=Split(Text3(0).Text,)IfOption1(1).Value=TrueThenAA=Split(Text3(1).Text,)ElseText4=没有数据输入EndIf下续,7,三角形面积求解,FunctionSplit(ExpressionAsString,Delimiter,LimitAsLong=-1,CompareAsVbCompareMethod=vbBinaryCompare)VBA.Strings的成员Splitastringintoanarray解释:split把一个字符串按分隔符分成一个数组,这个数组须是动态数组。空格分隔容易出现问题,但逗号分隔不会出现问题。例如:,8,三角形面积求解,多加几个空格没有问题,但不能有两个逗号连着,多加几个空格出现问题,分解的值有问题,9,代码续,DimA#,B#,C#,S#,Mianji#A=Val(AA(0)B=Val(AA(1)C=Val(AA(2)IfA+BCAndB+CAAndA+CBThenS=(A+B+C)/2Mianji=Sqr(S*(S-A)*(S-B)*(S-C)Text4.Text=三角形的三边分别为a=96.75,1,86,52,30,1;420.77,-1,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,11,PublicSubStrtoShuzhu(ByValStr1AsString,A()AsDouble)DimRowDataAsVariantDimColDataAsVariantDimRowtmpDatAsVariantDimColTmpDatAsVariantDimrAsInteger,CAsIntegerRowData=Split(Str1,;)ReDimA(UBound(RowData),1)r=-1,12,ForEachRowtmpDatInRowDataColData=Split(RowtmpDat,)ReDimPreserveA(UBound(RowData),UBound(ColData)r=r+1C=-1ForEachColTmpDatInColDataC=C+1A(r,C)=ColTmpDatNextNext,13,第二个例题含水率求解,14,含水率试验,要求两组计算一个平均值,当两个值求平均时,差值大于规范要求时,用红色背景显示该数据,15,含水率试验,PrivateSubKJSZ(ByValShuAsInteger)OnErrorResumeNextDimiAsIntegerIfShu=10ThenText55.BackColor=vbRedText55=加载的试验组数过多,本程序暂时不能处理ExitSubEndIfIfShu1AndShu1ThenFori=0ToVal(Text54)-1HSmst(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)NextFori=1ToVal(Text54)IfiMod2=0ThenIfAbs(Val(HSw(i-1)-Val(HSw(i-2)=1AndIMod2=1ThenSpreadsheet1.Cells(I+2,6)=(Spreadsheet1.Cells(I+2,5)+Spreadsheet1.Cells(I+1,5)/2EndIfNext,23,作业1,添加Microsoftofficexp控件用表格法编写含水率或密度计算程序学习用split()和strtoshuzhu()函数把一个字符串转变成数组。有图的请抓图,作业可以是手写版也可以是打印版。,24,密度试验,第三个例题密度求解,25,mdmd1md2md3md4md5md6md7md8,26,加载试验组数,PrivateSubText5_Change()DimiAsIntegerIfVal(Text5)10ThenMsgBox输入数字出错,vbInformation,请重新输入ExitSubEndIfIIfVal(Text5)0Then加载试验组数IfVal(Text5)MD1.CountThenFori=MD1.ubound+1ToVal(Text5)-1LoadMD1(i):LoadMD2(i):LoadMD3(i):LoadMD4(i)LoadMD5(i):LoadMD6(i):LoadMD7(i)LoadMD8(i):MD1(i)=i+1:MD2(i)=423+i,动态加载控件时,每个控件的index属性设置为0,27,加载控件,控件显示位置,MD1(i).Top=MD1(i-1).Top+350加载后的控件位置MD2(i).Top=MD2(i-1).Top+350MD3(i).Top=MD1(i-1).Top+350MD4(i).Top=MD2(i-1).Top+350MD5(i).Top=MD1(i-1).Top+350MD6(i).Top=MD2(i-1).Top+350MD7(i).Top=MD1(i-1).Top+350MD8(i).Top=MD2(i-1).Top+350,28,让控件显示在窗体上,MD1(i).Visible=True显示加载后的控件MD2(i).Visible=TrueMD3(i).Visible=TrueMD4(i).Visible=TrueMD5(i).Visible=TrueMD6(i).Visible=TrueMD7(i).Visible=TrueMD8(i).Visible=TrueNext,29,当界面上的控件多时,控件的卸载,ElseIfVal(Text5)0ThenUnloadMD1(i)UnloadMD2(i):UnloadMD3(i):UnloadMD4(i)UnloadMD5(i):UnloadMD6(i):UnloadMD7(i)UnloadMD8(i)EndIfNextEndIfEndIfMD1(0)=1这些数据不重要,随便编个号MD2(0)=423EndSub,30,2演示数据,PrivateSubMDYS_Click()DimiAsIntegerText5=3设只有三组试验Text5_Change事件过程也可直接调用,加载试验组数Fori=0To2试验自动编号与环刀自动编号MD1(i)=i+1MD2(i)=423+iNextMD3(0)=44.089:MD4(0)=161.605:MD5(0)=60MD6(0)=23.01第一行数据MD3(1)=41.089:MD4(1)=169.605:MD5(1)=60MD6(1)=22.6MD3(2)=43.089:MD4(2)=169.607:MD5(2)=60MD6(2)=20.6EndSub,31,计算过程1,PrivateSubMDJS_Click()DimiAsInteger,KAsIntegerDimtmpAsDouble,StrtmpAsStringFori=0ToVal(Text5)-1tmp=(Val(MD4(i)-Val(MD3(i)/Val(MD5(i)MD7(i)=Format(tmp,0.#)湿密度IfVal(MD6(i)0Thentmp=Val(MD7(i)/(1+Val(MD6(i)/100)MD8(i)=Format(tmp,0.#)干密度EndIfNext,32,计算过程2,Strtmp=试样编号,环刀号,刀质量(g),环刀+湿土质量(g),试样体积(cm3),含水率(%),湿密度(g/cm3),干密度(g/cm3)&vbCrLfFori=0ToVal(Text5)-1Strtmp=Strtmp&MD1(i)&,&MD2(i)&,&MD3(i)&,&MD4(i)&,&MD5(i)&,&MD6(i)&,&MD7(i)&,&MD8(i)&vbCrLfNexttmp=0Fori=0ToMD1.uboundtmp=tmp+MD7(i)Next,把输入数据和计算结果以逗号隔开,以便导入Excel中,33,计算过程3,tmp=Format(tmp/MD1.Count,0.#)Strtmp=Strtmp&-&vbCrLfStrtmp=Strtmp&湿密度平均值为,&tmp&g/cm3,tmp=0Fori=0ToMD1.ubound获得控件数组的下标最大值tmp=tmp+MD8(i)Nexttmp=Format(tmp/MD1.Count,0.#)Strtmp=Strtmp&干密度平均值为,&tmp&g/cm3Text70=Text68&StrtmpEndSub,显示到text70中,text70的mutiline属性应设置成true,34,数据格式转换,35,以逗号隔开的数据分割,PrivateSubCommand31_Click()OnErrorResumeNextDimAA()AsString,bb()AsString,iAsIntegerIfText6Then分割数据AA=Split(Text6.Text,vbCrLf)先分行,以回车符分隔EndIfText5.Text=UBound(AA)+1:Text5_Change分配控件数组IfOption2(0).Value=TrueThen逗号隔开的情况Fori=0ToUBound(AA)IfAA(i)Then不是空行的情况bb=Split(AA(i),)MD1(i)=bb(0):MD2(i)=bb(1):MD3(i)=bb(2)MD4(i)=bb(3):MD5(i)=bb(4):MD6(i)=bb(5)Else是空行的情况Text5=Text5.Text-1Text5_ChangeEndIfNext,36,其它分隔符情况,可以是单空格分隔,也可以是Excel数据复制过来的,其中Excel复制的分隔符是chr(9),是个特殊字符。其余的请仿此程序进行设计。,37,第五个问题线性插值计算,引言,一维线性插值原理及程序设计,二维线性插值原理及程序设计,结论,38,一、引言,如表1所示,当勘察出来的e指标为0.75,IL指标为0.625时,且有很多组数据需要查表插值时,则计算量较大。在列表中,e最小值为0.5,如果是0.45,则计算者更难着手计算。,39,二、一维线性插值原理及程序设计,40,2.1一维线性插值原理,(1)情况(e1e3e2内部插值情况)从图1(a)中可得:ABCADE当f2f1时:当f2f1时,同理,作出相应图可得:,(1),(2),41,2.1一维线性插值原理,情况2(e3e1,否则e1与e2交换,f1与f2交换,45,2.3一维线性插值程序,Ife3=e1Ande3=f1ThenChazhi=(e3-e1)*(f2-f1)/(e2-e1)+f1ElseChazhi=(e2-e3)*(f1-f2)/(e2-e1)+f2EndIfElseIfe3=f1ThenChazhi=(e1-e3)*f2-(e2-e3)*f1)/(e1-e2)ElseChazhi=(f1-f2)*(e2-e3)/(e2-e1)+f2EndIf,注:内部插值计算,情况1,注:f2=f1的计算方法(1),注:f1f2的计算方法(2),注:外部插值计算,情况2,注:计算方法(3),注:计算方法(4),46,2.3一维线性插值程序,ElseIfe3e2ThenIff2=f1ThenChazhi=(f2-f1)*(e3-e1)/(e2-e1)+f1ElseChazhi=(e3-e1)*f2-(e3-e2)*f1)/(e2-e1)EndIfEndIf,注:外部插值计算,情况3,注:计算方法(5),注:计算方法(),47,三、二维线性插值原理及程序设计,3.1二维线性插值原理,48,3.2二维插值程序设计界面,f3,f6,49,3.3二维插值程序设计,PrivateSubCommand1_Click()注:VisualBasic事件调用过程DimAa1AsDouble,Aa2AsDouble,Aa3AsDouble,Aa4AsDoubleIfText1=OrText2=OrText3=OrText4=OrText5=OrText6=Or_Text7=OrText8=OrText9=OrText10=Then注:Text1为e1,Text2为e2,Text3为IL1,Text4为IL2,Text5为f1,Text6为f2注:Text7为f4,Text8为f5,Text9为e3,Text10为IL3MsgBox数字没有输入完全,请重新输入ExitSubEn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 我爱大海板书课件
- 食品测评面试题及答案
- java坑爹面试题及答案
- java小游戏面试题及答案
- 语文面试题型及答案
- 急诊手术管理培训
- 工会小组面试题及答案
- 癌痛病人疑难病例诊疗分析
- 2025年锦纶切片项目立项申请报告模板
- 慢性骨髓炎的护理查房
- EPC项目-装饰装修EPC总承包工程-技术标(实施计划方案、实施技术方案、实施管理组织方案)
- 物业管理职责和职能
- 2025年辅警招聘考试试题库-附答案(模拟题)
- 杭州市拱墅区2025招考社区专职工作人员高频重点提升(共500题)附带答案详解
- 新《科学技术普及法》专题讲座课件
- 博士申请全攻略
- 北京市西城区2022-2023学年三年级上学期英语期末试卷(含听力音频)
- (版)国家开放大学电大《组织行为学》机考终结性2套真题题库及答案3
- 燃气锅炉安全培训
- 【MOOC】诊断学-山东大学 中国大学慕课MOOC答案
- 耕地表土回填施工方案
评论
0/150
提交评论