程序设计实验报告

合集下载

程序设计实训实验报告(热门20篇)

程序设计实训实验报告(热门20篇)

程序设计实训实验报告(热门20篇)c语言是在国内外广泛使用的一种计算机语言。

其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。

其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,unix,linux,mac,os/2,无一例外,哪一个不是c 语言写的?很多新型的语言如,c++,java,c,j,perl...都是衍生自c语言。

掌握了c语言,可以说你就掌握了很多门语言。

学习c程序这门课一年了,这是我们学的第一门专业课,在大学里c语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程。

所以作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。

同时,我觉得c语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。

在学习一年c语言的过程中我也在慢慢探索怎样才能学好c语言,并总结了一点经验:要了解c语言就要从语法规为基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。

在c语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。

这些都是语法基础也是c语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。

比如说ifelse和switchcase这两种条件语句都是用来判断执行功能的,那我要什么时侯用if什么时侯用switch呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选switch而不会选if。

C语言程序设计实验实验报告7

C语言程序设计实验实验报告7

C语言程序设计实验实验报告7实验名称:链表实现学生信息管理系统实验目的:通过设计链表实现学生信息管理系统,掌握链表的操作方法及其应用。

实验内容:设计一个学生信息结构体,包括学号、姓名、性别、年龄和成绩五个成员变量,并选择链式结构存储这些数据。

实现以下功能:1. 添加学生信息:从键盘输入学号、姓名、性别、年龄和成绩等信息,添加到链表中。

2. 删除学生信息:从链表中删除指定学号的学生信息。

5. 按成绩排序:按学生的成绩从高到低排序,并输出所有学生的信息。

7. 退出程序:退出学生信息管理系统。

实验方法:1. 设计学生信息结构体,定义链表节点结构体,并编写初始化链表和销毁链表的函数。

2. 编写添加学生信息函数,新建链表节点并插入链表末尾。

3. 编写删除学生信息函数,根据学号查找需要删除的节点,先将该节点从链表中删除,再释放节点空间。

4. 编写修改学生信息函数,根据学号查找需要修改的节点,并修改其成员变量。

6. 编写按成绩排序函数,使用冒泡排序法对链表进行排序,并输出所有学生的信息。

7. 编写输出所有学生信息函数,遍历链表并输出每个节点的信息。

8. 完成学生信息管理系统的主函数,实现菜单及相应功能的选择。

实验结果:依次选择菜单中的各个功能,添加、修改、删除、查找、排序和输出学生信息都能实现。

经测试,程序稳定运行,功能正常,符合需求。

本次实验主要让我们掌握了链式结构的概念、链表节点的定义、链表的初始化、插入、查找、删除和销毁链表的操作方法,以及在实际应用中如何使用链表来实现数据管理。

虽然链表操作相对于数组稍微有些繁琐,但其可以灵活处理数据结构的长度变化,具有更高的可扩展性和更好的操作效率,可以更好的适应各种实际需求。

在实验中,还需要注意节点指针的正确使用、各个函数之间的调用关系和输入输出数据格式的合理选择等问题,以保证程序能够正常运行。

同时,还需要保持认真细致的态度,严格按照实验需求和要求来完成每个步骤,以达到更好的实验效果和运行效率。

程序设计实验报告(matlab)

程序设计实验报告(matlab)

程序设计实验报告(matlab)实验一: 程序设计基础实验目的:初步掌握机器人编程语言Matlab。

实验内容:运用Matlab进行简单的程序设计。

实验方法:基于Matlab环境下的简单程序设计。

实验结果:成功掌握简单的程序设计和Matlab基本编程语法。

实验二:多项式拟合与插值实验目的:学习多项式拟合和插值的方法,并能进行相关计算。

实验内容:在Matlab环境下进行多项式拟合和插值的计算。

实验方法:结合Matlab的插值工具箱,进行相关的计算。

实验结果:深入理解多项式拟合和插值的实现原理,成功掌握Matlab的插值工具箱。

实验三:最小二乘法实验目的:了解最小二乘法的基本原理和算法,并能够通过Matlab进行计算。

实验内容:利用Matlab进行最小二乘法计算。

实验方法:基于Matlab的线性代数计算库,进行最小二乘法的计算。

实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。

实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。

实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。

实验方法:基于Matlab的ODE工具箱,进行ODE求解。

实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。

总结在Matlab环境下进行程序设计实验,使我对Matlab有了更深刻的认识和了解,也使我对计算机科学在实践中的应用有了更加深入的了解。

通过这些实验的学习,我能够灵活应用Matlab进行各种计算和数值分析,同时也能够深入理解相关的数学原理和算法。

这些知识和技能对我未来的学习和工作都将有着重要的帮助。

C语言程序设计 实验报告1--顺序结构

C语言程序设计 实验报告1--顺序结构

福建农林大学金山学院实验报告系(教研室):专业:年级:实验课程: C语言程序设计姓名:学号:实验室号:_ 计算机号:实验时间:指导教师签字:成绩:实验1:顺序结构程序设计一、实验目的和要求1.了解Visual C++ 6.0/DEV_C++的基本操作方法2.掌握C程序设计的基本步骤:编辑、编译、连接和运行3.掌握各种类型数据的输入输出方法4.能够编写一个简单的程序二、实验内容和原理1. 输入并运行一个简单、正确的程序。

# include <stdio.h>int main( ){printf ("This is a c program!\n");return 0;}2. 要使下面程序的输出语句在屏幕上显示:A,B,34,则从键盘输入的数据格式应为AB34__________ 。

#include<stdio.h>int main(){char a, b;int c;scanf("%c%c%d",&a,&b,&c);printf("%c,%c,%d\n",a,b,c);return0;问题1:要使上面程序的键盘输入数据格式为a=A,b=B,34,输出语句在屏幕上显示的结果也为A,B,34,则应修改程序中的哪条语句?怎样修改?scanf( “a=%c,b=%c,%d”,&a,&b,&c );问题 2:要使上面程序的键盘输入数据格式为A,B,34,而输出语句在屏幕上显示的结果为“A”,“B”,34,则应修改程序中的哪两条语句?怎样修改?scanf( “%c,%c,%d”,&a,&b,&c);printf(“\”%c\”,\”%c\”,%d\n”,a,b,c);3、编程求一个圆的周长和面积。

用scanf输入圆半径,输出保留两位小数。

4、输入一个华氏温度F,要求输出摄氏温度C。

c语言程序设计_实验一实验报告

c语言程序设计_实验一实验报告

实验项目名称:实验一C 语言的运行环境的使用实验目的及要求:1. 了解 Windows 系统下 C 语言的运行环境,熟悉 C 程序编辑、调试、运行的基本操作方法。

2. 熟练掌握编辑、编译、连接和运行 C 程序的方法。

3. 通过运行简单的 C 程序,初步了解 C 源程序的特点。

4. 初步理解 C 语言的数据类型,了解变量定义、变量赋值以及简单运算方法,了解程序运行结果的基本输出方法。

实验内容(方法和步骤):1、编程实现在屏幕上显示如下三行文字Hello, world !Wolcome to the C language world!Everyone has been waiting for程序代码:#include <stdio.h>int main(){printf("Hello,World!\n");printf("Welcome to the C language world!\n");printf(Everyone has been waiting for.\n");return 0;}运行结果:2、编写程序,将两个整数相加,并输出结果。

程序代码:#include <stdio.h>int main(){int a,b,c;a=12;b=26;c=a+b;printf("c=%d\n",c);return 0";}运行结果:3. 编写程序,要求从键盘输入2 个整数,输出其中较大的数程序代码:#include <stdio.h>int main(){int max(int x,int y);int a,b,c;scanf("%d,%d",&a,&b);c=max(a,b);pintf("max=%d",c);return 0;}int max(int x,int y){ int z;if (x>y) z=x;else z=y;return(z);}运行结果:4.输入并运行下程序,观察运行结果。

C程序设计实验四实验报告

C程序设计实验四实验报告

实验报告工学院土木工程专业09级2011 至2012 学年度第 1 学期实验目的:1、了解C语言表示逻辑量的方法(以0代表“假”, 以非0代表“真”);2.学会正确使用逻辑运算符和逻辑表达式;3.熟练掌握if语句的使用(包括if语句的嵌套);4.熟练掌握多分支选择语句——switch语句;5.结合程序掌握一些简单的算法;6.进一步学习调试程序的方法。

实验内容(1)本实验要求事先编好解决下面问题的程序, 然后上机输入程序并调试运行程序。

有一函数: x (x<1)y=﹛2x-1 (1<=x<10)3x-11 (x>=10)①写程序, 输入x的值, 输出y相应的值。

用scanf函数输入x的值, 求y值。

输入程序如下:#include<stdio.h>int main(){int x,y;printf("Please input x:");scanf("%d",&x);if (x<1){y=x;printf("x=%d y=%d",x,y);}else if (x<10){y=2*x-1;printf("x=%d y=%d",x,y);}else{y=3*x-11;printf("x=%d y=%d",x,y);}return 0;}运行结果如下: (分别输入-6,5,15)①从键盘输入一个小于1000的正数, 要求输出它的平方根(如果平方根不是正数,则输出其整数部分)。

要求在输入数据后先对其进行检查是否小于1000。

若不是, 则要求重新输入。

输入数据如下:#include<stdio.h>#include<math.h>int main(){int x,y;printf("Please input x:");scanf("%d",&x);while (x>1000){printf("Please input x(<1000):");scanf("%d",&x);}y=sqrt(x);printf("x=%d y=%d",x,y);return 0;}②运行结果如下①给出一个百分制成绩, 要求输出成绩等级A,B,C,D,E。

程序设计基础实验报告

一、实验目的1. 掌握程序设计的基本概念和编程语言的基本语法。

2. 熟悉编程环境的使用,学会编写、调试和运行简单的程序。

3. 培养逻辑思维能力和问题解决能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容1. 简单计算器(1)功能描述编写一个简单的计算器程序,能够实现加、减、乘、除四种基本运算。

(2)实现步骤1)定义一个函数,用于获取用户输入的两个数和一个运算符。

2)根据运算符进行相应的运算,并返回运算结果。

3)在主函数中调用该函数,打印运算结果。

(3)代码实现```pythondef calculator(num1, num2, operator):if operator == '+':return num1 + num2elif operator == '-':return num1 - num2elif operator == '':return num1 num2elif operator == '/':return num1 / num2else:return "无效的运算符"def main():num1 = float(input("请输入第一个数:"))num2 = float(input("请输入第二个数:"))operator = input("请输入运算符(+、-、、/):")result = calculator(num1, num2, operator)print("结果是:", result)if __name__ == "__main__":main()```2. 循环结构(1)功能描述编写一个程序,实现计算1到100之间所有奇数的和。

C++面向对象程序设计》实验报告

《C++面向对象程序设计》实验内容实验1 C++程序设计初步1.实验目的(1)了解在C++编译系统(Visual C++6.0)上如何编辑、编译、连接和运行一个C++程序。

(2)通过运行简单的C++程序, 初步了解C++源程序的结构和特点。

(3)掌握简单C++程序的编写和调试方法。

(4)掌握重载函数的定义方法。

(5)能正确使用引用型变量。

2.实验内容和步骤(1)在Visual C++环境下编译和运行C++程序①先进入Visual C++6.0环境。

②在自己指定的子目录中建立一个名为test.cpp的新文件。

③从键盘输入以下程序int main(){int a,b;c=a+b;cout>> “a+b=”>>a+b;}选择Build→Compile test.cpp命令, 对此源程序进行编译。

观察和分析编译信息。

⑤根据编译信息指出的错误, 修改程序。

再进行编译, 如果还有错, 再重复此过程, 直到编译不出错为止。

⑥选择Build→Build test.exe命令, 对程序进行连接, 如果不出错, 就会生成可执行程序test.exe。

⑦选择Build→Execute test.exe命令, 执行可执行程序test.exe。

观察屏幕的变化。

在输出窗口应显示程序运行结果。

⑧分析结果是否正确, 如果不正确或认为输出格式不理想, 可以修改程序, 然后重新执行以上④和⑧步骤。

改过后的程序:#include<iostream>using namespace std;int add(int x,int y){int z;z=x+y;return(z);}int main(){int a,b,c;cin>>a>>b;c=add(a,b);cout<<"a+b="<<c<<endl;return 0;}实验2 C++对C的扩充(2)编一个程序, 用来求2个或3个正整数中的最大数。

选择程序设计实验报告

选择程序设计实验报告选择程序设计实验报告一、引言在当今数字化时代,程序设计已经成为了一门重要的技能。

无论是在科技领域还是商业领域,程序设计都扮演着重要的角色。

因此,选择一门合适的程序设计实验课程对于学生来说至关重要。

本文将探讨选择程序设计实验的重要性以及如何选择适合自己的实验课程。

二、选择程序设计实验的重要性1. 培养程序设计能力选择一门合适的程序设计实验课程可以帮助学生培养程序设计能力。

通过实践操作,学生可以掌握程序设计的基本概念和技巧,提高自己的编程水平。

这对于日后从事与计算机相关的工作或研究具有重要意义。

2. 培养解决问题的能力程序设计实验课程通常会涉及到解决实际问题的过程。

学生需要分析问题、设计算法、编写代码,并最终实现解决方案。

这个过程培养了学生的问题解决能力,使他们能够更好地应对各种挑战和困难。

3. 培养团队合作精神在选择程序设计实验课程时,学生可以选择与他人合作完成项目。

这样的实践可以培养学生的团队合作精神,提高他们的沟通和协作能力。

在现实生活中,团队合作已经成为了一种必备的能力,选择适合的实验课程可以为学生提供锻炼的机会。

三、如何选择适合自己的实验课程1. 考虑自身兴趣和目标在选择实验课程时,学生应该考虑自己的兴趣和目标。

如果对于某个领域特别感兴趣,那么选择与该领域相关的实验课程是一个不错的选择。

同时,学生也应该考虑自己的职业目标,选择与之相关的实验课程。

2. 了解课程内容和要求在选择实验课程之前,学生应该了解课程的内容和要求。

不同的实验课程可能有不同的难度和教学方法。

学生可以通过查阅课程大纲或向老师咨询来了解更多信息。

这样可以帮助学生选择适合自己的实验课程。

3. 考虑实验设施和资源在选择实验课程时,学生也应该考虑实验设施和资源的情况。

一些实验课程可能需要特定的硬件或软件设备,学生需要确保自己能够获得这些设备。

此外,学生还可以考虑实验室的环境和资源是否能够满足自己的需求。

四、结论选择一门合适的程序设计实验课程对于学生来说具有重要意义。

程序设计实验报告格式

一、实验题目程序设计实验二、实验目的1. 熟悉程序设计的基本概念和原理。

2. 掌握编程语言的基本语法和编程技巧。

3. 提高编程能力和解决问题的能力。

三、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm四、实验内容1. 编写一个简单的Python程序,实现以下功能:a. 输入两个整数,计算它们的和、差、积、商。

b. 输入一个字符串,统计其中英文字母、数字、空格和其他字符的数量。

c. 输入一个列表,输出列表中所有大于10的元素。

2. 使用面向对象的方法设计一个简单的图书管理系统,实现以下功能:a. 创建图书类,包含图书的属性(如书名、作者、出版社、价格)和方法(如显示图书信息)。

b. 创建图书管理类,包含添加图书、删除图书、查找图书、显示所有图书信息等功能。

五、实验步骤1. 编写Python程序实现以下功能:a. 输入两个整数,计算它们的和、差、积、商。

- 输入:a = 10, b = 5b. 输入一个字符串,统计其中英文字母、数字、空格和其他字符的数量。

- 输入:str = "Hello, World! 123"- 输出:英文字母 = 10,数字 = 3,空格 = 2,其他字符 = 3c. 输入一个列表,输出列表中所有大于10的元素。

- 输入:lst = [1, 5, 10, 15, 20, 25]- 输出:大于10的元素有:15, 20, 252. 使用面向对象的方法设计一个简单的图书管理系统:a. 创建图书类,包含图书的属性和方法。

- 图书类(Book):- 属性:书名、作者、出版社、价格- 方法:显示图书信息b. 创建图书管理类,包含添加图书、删除图书、查找图书、显示所有图书信息等功能。

- 图书管理类(BookManager):- 属性:图书列表- 方法:- 添加图书:向图书列表中添加新的图书- 删除图书:根据书名删除图书- 查找图书:根据书名查找图书- 显示所有图书信息:遍历图书列表,显示所有图书信息六、实验结果与分析1. 编写Python程序实现以下功能:a. 输入两个整数,计算它们的和、差、积、商。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生实验报告院系:测绘学院专业班级:测绘13级3班学号:2013305517学生姓名:王泽指导教师:郭辉老师2016年05月20日安徽理工大学实验报告实验课程名称:数据结构与软件开发上机实验开课院系及实验室:测绘学院红楼二楼机房实验1 编程基本知识练习实验目的:通过该实验课内容的练习,学生应掌握VB 编程的基本语法、变量的定义、数组(动态数组)的定义、VB 语言中子过程与函数的定义以及文本文件的读写等知识。

实验内容:1)变量的定义动态数组的定义与应用;2)矩阵的加、减、乘运算(定义Sub()子过程或Function()来实现);3)数据文件的建立、数据的读取与写入。

实验步骤:1.编辑界面1.1 打开VB 编程工具,进入编程主界面。

1.2 在窗体上新建“读入数据”和“输出数据”两个按钮。

1.3 双击“窗体”进入代码输入界面,进行代码编辑。

2.用VB 编写的源代码2.1 矩阵基本运算源码详见附录一。

(1)两矩阵相加(2)两矩阵相减(3)矩阵转置(4)两矩阵相乘(5)矩阵求逆2.2 文本文件(本实验中data.txt)的读取源代码(1)建立文本文件并输入数据在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\data.txt”)。

输入以下内容:6,7,4,0.005A,35.418B,45.712C,25.270D,24.678在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\result.txt”)。

(2)从文本文件中读数据Dim linedata as string, m_GaochaN as integer,m_Pnumber asinteger,m_knPnumber as integer,M as Double,k1 as integer'linedata 为存储文本文件一行信息的字符串变量Dim a() as String,H() as Double'a()为存储点名,H()存储高程Open“C:\Users\ WH\Desktop\练习\data.txt”For Input As #1Line Input #1, linedatak = Split(linedata, ",")m_GaochaN = Val(k(0))m_Pnumber = Val(k(1))m_knPnumber = Val(k(2))M = CDbl(k(3))For k1 = 1 To m_knPnumberLine Input #1, linedatak = Split(linedata, ",")a(k1)= k(0)GetstationNumber (a)H(k1) = CDbl(k(1))NextClose #1(3)将读入点名存储到点名数组中,且返回该点名所对应编号Function GetstationNumber(name As String)Dim i As IntegerFor i = 1 To m_PnumberIf P_Name(i) <> "" Then'将待查点名与已经存入点名数组的点比较If P_Name(i) = name ThenGetstationNumber = iExit ForEnd IfElse '待查点是新的点名,将新点名放到P_Name 数组中P_Name(i) = nameGetstationNumber = iExit ForEnd IfNext iEnd Function(4)从文本文件中写数据(将从data.txt 读入的数据,写入到result.txt 文件中) Open“C:\Users\ WH\Desktop\ 练习\result.txt” For Output As #1outstring = outstring + str(m_GaochaN) +","outstring = outstring + str(m_Pnumber) + ","outstring = outstring + str(m_knPnumber) + ","outstring = outstring + str(M) + vbCrLfFor k1 = 1 To m_knPnumberoutstring = outstring +a(k1)+ ","+Format(H(k1), "##0.000") + vbCrLfNextPrint #1, outstring实验2 水准网平差程序设计实验目的:通过本次实验的练习,使学生掌握水准网平差中近似高程计算算法、组成误差方程系数阵B、组成误差方程常数项L及权阵生成算法。

掌握法方程的组建参数改正值的计算以及单位权中误差的计算。

掌握水准网平差中输出高程平差值和高程中误差、输出观测值及其改正数与平差值等信息并保存为平差成果文件的方法。

实验内容:1)在读入水准网数据后,进行待定点近似坐标的计算;2)基于间接平差的思想,以观测的测段高差为观测值,组成误差方程系数矩阵B 及常数项矩阵L;3)基于水准网平差中定权的方法(测段长或测站数定权),生成权阵P。

4) 利用矩阵的基本运算(调用矩阵运算函数即可)得到法方程系数矩阵及常数项矩阵。

该实验的内容其实质就是调用矩阵运算函数。

5)熟悉VB 中输出函数Print 的用法,及控制输出格式的函数的用法,如Space()、String()6)水准网平差结束后,将变量及数组中的数据输出到平差结果文件中。

实验步骤:1.读入水准网数据(1)建立文本文件并输入数据在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习1\data.txt”)。

输入以下内容:10,7,2,0.001A,0.000F,11.414A,B,73.795,20.4A,D,14.005,18.8A,G,14.167,15.4C,B,71.949,8.9D,B,59.780,14.2C,D,12.159,12.8C,E,15.364,9.8F,E,5.797,19.6G,E,3.044,15.1D,G,0.169,10.0在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习1\ out.txt”)。

Private Sub Command1_Click()(2)读入水准网数据Open "C:\Users\WH\Desktop\练习1\data.txt" For Input As #1Line Input #1, linedatak = Split(linedata, ",")m_GaochaN = Val(k(0))m_Pnumber = Val(k(1))m_knPnumber = Val(k(2))M = CDbl(k(3))ReDim A(1 To m_knPnumber), H(1 To m_knPnumber)For k1 = 1 To m_knPnumberLine Input #1, linedatak = Split(linedata, ",")A(k1) = k(0)H(k1) = CDbl(k(1))NextReDim StartP(1 To m_GaochaN), EndP(1 To m_GaochaN), gaocha(1 To m_GaochaN), Li(1 To m_GaochaN)For k2 = 1 To m_GaochaNLine Input #1, linedatak = Split(linedata, ",")StartP(k2) = k(0)EndP(k2) = k(1)gaocha(k2) = CDbl(k(2))Li(k2) = CDbl(k(3))NextClose #1End Sub2.编辑界面打开VB 编程工具,进入编程主界面。

在窗体上利用控件新建“载入数据”、“开始计算”、“导出结果”、“清空”四个按钮和一个文本框。

3.定义相应变量、数组和实现各功能的函数(过程)详见附录二(1)水准网中近似坐标计算(2)生成误差方程系数矩阵B 及常数项矩阵L(3)生成权阵P(4)残差及中误差计算函数(5)组成法方程及平差计算(6)平差结果输出附件1 矩阵基本运算源码(1)两矩阵相加Private Function Msum(M As Integer, n As Integer, Matrixsum() As Double, Matrix1() As Double, Matrix2() As Double)'矩阵求和函数Dim i1 As Integer, i2 As IntegerReDim Matrixsum(1 To M, 1 To n)For i1 = 1 To MFor i2 = 1 To nMatrixsum(i1, i2) = Matrix1(i1, i2) + Matrix2(i1, i2)Next i2Next i1End Function(2)两矩阵相减Function Mminus(M As Integer, n As Integer, MatrixMinus() AsDouble, Matrix1() As Double, Matrix2() As Double)'矩阵求差函数Dim i1 As Integer, i2 As IntegerReDim MatrixMinus(1 To M, 1 To n)For i1 = 1 To MFor i2 = 1 To nMatrixMinus(i1, i2) = Matrix1(i1, i2) - Matrix2(i1, i2)Next i2Next i1End Function(3)矩阵转置Function Mchange(M As Integer, n As Integer, Matrixchange() As Double, Matrix1() As Double)'矩阵转置函数Matrix1()需转置的矩阵,Matrixchange()为转置后的矩阵Dim i1 As Integer, i2 As IntegerReDim Matrixchange(1 To n, 1 To M) '动态分配用来存储转置后的矩阵For i1 = 1 To MFor i2 = 1 To nMatrixchange(i2, i1) = Matrix1(i1, i2)Next i2Next i1End Function(4)两矩阵相乘'矩阵相乘函数,MatrixMultiply()为存储AB 后的矩阵,Matrix1()为A矩阵,Matrix2()为B 矩阵,注意矩阵相乘的顺序'Mi 为行,Ni 为列,i=1,2Function Mmultiply(M1 As Integer, n1 As Integer, M2 As Integer,n2 As Integer, MatrixMultiply() As Double, Matrix1() As Double,Matrix2() As Double)Dim i1 As Integer, i2 As Integer, i3 As IntegerIf n1 <> M2 ThenMsgBox "两矩阵不能相乘,请检查!", vbOKCancel + vbCritical + vbDefaultButton1 Exit FunctionEnd IfReDim MatrixMultiply(1 To M1, 1 To n2)For i1 = 1 To M1For i2 = 1 To n2MatrixMultiply(i1, i2) = 0For i3 = 1 To n1MatrixMultiply(i1, i2) = MatrixMultiply(i1, i2) +Matrix1(i1, i3) * Matrix2(i3, i2)Next i3Next i2Next i1End Function(5)矩阵求逆Function MRinv(n As Integer, mtxA() As Double) As Boolean'功能:实矩阵求逆的全选主元高斯-约当法'参数:n - Integer 型变量,矩阵的阶数'mtxA - Double 型二维数组,体积为n x n。

相关文档
最新文档