资源描述:
《《测量程序设计实习指导书》》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验1编程基本知识练习实验目的:通过该实验课内容的练习,学生应掌握VB编程的基本语法、变量的定义、数组(动态数组)的定义、VB语言中子过程与函数的定义以及文本文件的读写等知识。实验内容:1)变量的定义、动态数组的定义与应用;2)矩阵的加、减、乘运算(定义Sub()子过程或Function()来实现);3)数据文件的建立、数据的读取与写入。实验步骤:1.1编程界面打开(1)•打开VB编程工具,进入编程主界面。(2)•双击“窗体”进入代码输入界面。1.2文本文件的读写在桌面上新建一"data,txt”文本文件(其路径为"C:Doc
2、umentsandSettingsAdministrator桌面练习data.txt”),并输入以下内容。6,7,4,0.005A,35.418B,45.712C,25.270D,24.6781.2在窗体上新建“从文本文件中读入数据”和“输出数据”两个按钮,并读入数据源码和输出数据源码分别拷入到这两个按钮中。2•用VB编写的源代码2.1矩阵基本运算源码(1)两矩阵相加PrivateFunctionMsum(MAsInteger,nAsInteger,MatrixsumOAsDouble,Matrixl()AsDouble
3、,Matrix2()AsDouble)'矩阵求和函数DimilAsInteger,12AsIntegerReDimMatrixsum(1ToM,1Ton)Foril=1ToMFori2=1TonMatrixsum(i1,i2)=Matrixl(il,i2)+Matrix2(il,i2)Nexti2NextilEndFunction(2)两矩阵相减FunctionMminus(MAsInteger,nAsInteger,MatrixMinus()AsDouble,Matrixl()AsDouble,Matrix2()AsDoubl
4、e)'矩阵求差函数DimilAsInteger,i2AsIntegerReDimMatrixMinus(1ToM,1Ton)Foril二1ToMFori2=1TonMatrixMinus(il,i2)二Matrixl(il,i2)-Matrix2(il,12)Nexti2NextilEndFunction(3)矩阵转置FunctionMchange(MAsInteger,nAsInteger,Matrixchange()AsDouble,Matrixl()AsDouble)'矩阵转置函数Matrixl()需转置的矩阵,Matri
5、xchange()为转置后的矩阵DimilAsInteger,i2AsIntegerReDimMatrixchange(1Ton,1ToM)'动态分配用来存储转置后的矩阵Foril二1ToMFori2二1TonMatrixchange(i2,il)=Matrixl(il,i2)Nexti2NextilEndFunction(4)两矩阵相乘'矩阵想乘函数,MatrixMultiply()为存储AB后的矩阵,Matrixl()为A矩阵,Matrix2()为B矩阵,注意矩阵想乘的顺序'Mi为行,Ni为列,1=1,2FunctionMm
6、ultiply(MlAsInteger,nlAsInteger,M2AsInteger,n2AsInteger,MatrixMultiply()AsDouble,Matrixl()AsDouble,Matrix2()AsDouble)DimilAsInteger,i2AsInteger,i3AsIntegerIfnl<>M2ThenMsgBox"两矩阵不能想乘,请检查!",vbOKCancel+vbCritical+vbDefaultButtonlExitFunctionEndIfReDimMatrixMultiply(1ToM
7、l,1Ton2)Foril二1ToMlFori2二1Ton2MatrixMultiply(il,i2)=0Fori3二1TonlMatrixMultiply(il,i2)=MatrixMultiply(il,i2)+Matrixl(il,i3)*Matrix2(i3,i2)Nexti3Nexti2NextilEndFunction(3)矩阵求逆FunctionMRinv(nAsInteger,mtxA()AsDouble)AsBoolean1功能:实矩阵求逆的全选主元高斯一约当法1参数:n-Integer型变量,矩阵的阶数1mt
8、xA-Double型二维数组,体积为nxno存放原矩阵A;返回时存放其逆矩阵A-1。'返回值:Boolean型,失败为False,成功为TrueReDimnls(n)AsInteger,nJs(n)AsIntegerDimiAsInteger,jAsIntege