《Visual Basic 程序设计教程》第05章:控制结构与算法-教学课件(非AI生成).ppt
PrivateSubcmdCalc_Click()Dimx1AsSingle,x2AsSingle,x3AsSinglex1=0 x2=2Dox3=(x1+x2)/2If(x1*x1*x1-x1-1)*(x3*x3*x3-x3-1)0Thenx1=x3 Elsex2=x3 EndIfLoopUntilx2-x10.000001 txtRoot.Text=(x1+x2)/2 EndSub例:用二分迭代法求解方程x3-x-1=0在区间[0,2]中的根(精度为e=10-6)***PrivateSubcmdCalc_Click()DimxAsSinglex=3 初值DoWhileAbs(x*x-5)0.000001x=(x+5/x)/2 迭代LooptxtRoot.Text=x 输出结果2.236068EndSub①建立迭代关系式。由题意可知,x2=5。于是得到方程f(x)=x2-5。本题就等价于求解方程f(x)=x2-5=0的一个根。可以确定f‘(x)=2x。根据牛顿迭代公式xn=xn-1-f(xn-1)/f‘(xn-1)可以得到本题的迭代关系式: xn=(xn-1+5/xn-1)/2②给定初值。可以估计出一个粗略解作为初值,这里取3。③给定精度。这里取10-6。本题可以采用xn2和5的差来判断精度。当|xn2-5|10-6时,认为满足精度,xn就是所求的数值解。求解方程x2=5的算术平方根***PrivateSubcmdCalc_Click()DimhAsSingleDimL1AsSingle,L2AsSingleDimsAsSingleDimint1AsInteger,nAsIntegerDimaAsSingle,bAsSingles=0 a=0:b=2n=CInt(txtNumber.Text) h=(b-a)/nForint1=1TonL1=(Abs(4-(a+(int1-1)*h)*(a+(int1-1)*h)))^0.5L2=(Abs(4-(a+int1*h)*(a+int1*h)))^0.5 梯形的两个底长s=s+(L1+L2)*h/2NexttxtResult.Text=s EndSub例:梯形面积法求数值积分。* Dimint1AsInteger,int2AsInteger DimintbAsInteger Forint1=1To4 Forint2=1Toint1-1 intb=a(int1,int2) a(int1,int2)=a(int2,int1) a(int2,int1)=intb Next Next例:矩阵的转置。*4.循环的嵌套4.循环的嵌套循环的嵌套是指一个循环体内完整地包括了另一个循环。一套一称为二重循环,如果二重循环的内循环中又包含一个循环,则称为三重循环,依此类推。三重以上的可称为多重循环。For循环和Do可以混合嵌套,但是各循环间不得交叉。下例是非法的循环嵌套。ForI…ForJ……NextINextJDoFor