程序设计专题实践指导书.docx

上传人:b****2 文档编号:2010737 上传时间:2022-10-26 格式:DOCX 页数:14 大小:69.58KB
下载 相关 举报
程序设计专题实践指导书.docx_第1页
第1页 / 共14页
程序设计专题实践指导书.docx_第2页
第2页 / 共14页
程序设计专题实践指导书.docx_第3页
第3页 / 共14页
程序设计专题实践指导书.docx_第4页
第4页 / 共14页
程序设计专题实践指导书.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

程序设计专题实践指导书.docx

《程序设计专题实践指导书.docx》由会员分享,可在线阅读,更多相关《程序设计专题实践指导书.docx(14页珍藏版)》请在冰豆网上搜索。

程序设计专题实践指导书.docx

程序设计专题实践指导书

执笔人:

杨崇

实验一利用梯形法求函数的积分。

一实验目的:

通过实验了解并掌握利用计算机实现数值计算的基本原理与方法,了解数学理论与利用计算机进行实际应用的联系与区别,培养针对数学模型进行建模的能力,掌握计算特殊函数积分的基本方法和技巧。

二实验内容:

在TurboC平台下编程利用梯形法求出使用常规方法无法求出原函数的特殊函数的积分值,积分函数为。

要求将积分结果的精度控制在要求的范围内。

三实验原理:

普通的函数可以通过寻找原函数求得定积分值,而某些特殊函数是无法找到原函数的,那么,利用牛顿-莱布尼兹公式求积分法将无所适从,通过积分中值定理我们知道:

在积分区间[a,b]内存在一点ξ,成立,也就是说,底为b-a而高为f(ξ)的矩形面积恰等于所求曲面梯形的面积。

问题在于点ξ的具体位置一般是不知道的,因而难以准确f(ξ)的值。

我们将f(ξ)成为区间[a,b]上的平均高度,这样,只要对平均高度f(ξ)提供一种算法,相应地获得一种数值求积分法。

如果我们用两个端点的高度f(a),f(b)取算术平均值作为f(ξ)的近似值,这样导出的求积公式T=[f(a)+f(b)]便是我们所熟悉的梯形公式。

设将积分区间[a,b]划分为n等份,步长h=(b-a)/2,分点为xk=a+kh,k=0,1,2,3,…..,n。

利用低阶的牛顿—轲特斯公式求得每个子区间[xk,xk+1]上的积分值Ik,然后再求和,用来作为所求积分I的近似值。

复化梯形公式:

Tn=[f(xk)+f]xk+1)]=[f(a)+2f(xk)+f(b)]。

四、实验步骤

1打开开始->程序->附件->命令提示符,进入TurboC2.0,输入程序。

2按F2存盘。

3按F9键检查语法是否存在错误。

4按Ctrl+F9运行程序,调试编译。

五、实验中应注意的问题:

1当变量值为0时,根据罗必塔法则函数值取1。

2对步长进行运算时,应采用for循环,可避免产生死循环。

3运算时数值类型应为float或者double,打印数据时,小数点后应保留足够的位数。

4在取除数时,由于使用了实型数据,因此分子或分母的数字部分也应该采取实数形式:

如1.0/x,否则将无法得到正确结果。

5上机时应注意随时存盘,尤其是调试时,避免因为死循环造成无法正常退出而丢失源文件或数据。

六、实验报告内容:

1实验原理及实现方法。

2上机源程序代码。

3实验结果。

4误差分析。

实验二矩阵的运算

一实验目的:

通过实验了解并掌握利用计算机实现矩阵计算的基本原理与方法,了解数学抽象概念在实际应用中的引用和计算方法、技巧,培养针对数学模型进行建模的能力,掌握矩阵的基本运算方法。

二实验内容:

在TurboC平台下编程求出矩阵的加/减,以及M×N矩阵和N×M矩阵的乘运算。

三实验原理:

矩阵实际上就是一张表,可以认为是数的集合,它表示了一个一维、二维、空间的抽象特征。

本实验涉及的是二维矩阵。

矩阵在进行加/减运算时,进行运算的两个矩阵必须是行数必须相同,列数也必须相同。

也就是说M×N的矩阵A只能与M×N的矩阵B进行运算,运算的规则是:

Cij=Aij±Bij

矩阵在进行乘运算的时候,进行运算的两个矩阵应为M×N矩阵乘以N×M的矩阵,反之亦然,但相乘的结果可能不同,运算规则是:

Cij=(i=1,2,…m,j=1,2,…,n)

在计算机中,矩阵的存储方式是以数组的方式以行为主或以列为主的形式存放在内存中,C语言的缺省存储方式是以行为主。

利用二维数组存储矩阵的时候,应当注意,C语言定义数组的下标起始值为0,即第一个元素的下角标为(0,0)而不是(1,1),第(M,N)个数据的下角标为(M-1,N-1)。

四、实验步骤

1打开开始->程序->附件->命令提示符,进入TurboC2.0,输入程序。

2按F2存盘。

3按F9键检查语法是否存在错误。

4按Ctrl+F9运行程序,调试编译。

五、实验中应注意的问题:

1C语言数组下角标的定义特性,如数组个数为N,则下角标从0开始到N-1结束上机时应充分考虑这一特点,防止下标越界。

2矩阵运算时,循环结构采用for循环,避免死循环的发生。

3数据类型的定义要统一,不同类型的矩阵是不可以进行运算的。

4打印运算结果时,矩阵的打印要遵照一定的格式,应该以按行为主打印。

5矩阵数据的输入可采取静态装入,也可以采取运行时动态输入,但要保证输入数据对号入座。

建议按行输入,每次输一行。

六、实验报告内容:

1实验原理及实现方法。

2上机源程序代码。

3实验结果。

实验三利用二分法求方程的根

一实验目的:

通过实验了解并掌握利用二分法求方程的跟的基本原理和方法。

了解方程求跟问题在工程中的应用于理论的联系和区别。

培养针对数学模型进行建模的能力,以及在工程中解决实际问题的创造能力。

二实验内容:

在TurboC平台下编程利用二分法求出高阶方程的根,要求根的精度限定在一定的范围内,高阶方程为x3-x-1=0,设定有根区间为[1.0,1.5]。

三实验原理:

数学物理中的许多问题常常归结为求解函数方程f(x)=0,这里,f(x)可以是代数多项式,也可以是超越函数,方程f(x)=0的解x*成为它的根,或称为f(x)的零点。

设函数f(x)在[a,b]上连续,且f(a)f(b)<0,根据连续函数的性质可知道方程f(x)在区间[a,b]内一定有实根。

这时称区间[a,b]为方程f(x)=0的有根区间。

考察有根区间[a,b],取中点x0=(a+b)/2将它分为两半,然后进行根的搜索,即检查f(x0)与f(a)是否同号,如果确系同号,说明所求的根x*在x0的右侧,这时令a1=x0,b1=b;否则x*必在x0的左侧,这时令a1=a,b1=x0。

不管出现哪种情况,新的有根区间[a1,b1]的长度仅为[a,b]的一半。

对压缩了的有根区间[a1,b1]又可以实行同样的步骤,即用中点x1=(a1+b1)/2再分为两半,然后通过根的搜索判定所求的根在x1的那一侧,从而又确定了一个新的有根区间[a2,b2],其长度为[a1,b1]的一半。

如此反复下去,将会有[a3,b3],[a4,b4],…..,[ak,bk],当区间长度bk-ak→0时,也就是说当二分空间逐渐趋近于一个点x*时,该点即为所求函数之根。

在工程上,往往不可能完成这个接近于无限的过程,其实也没有必要,因为在工程上,只要结果在一定的误差范围内即可,即|bk-ak|<ε。

算法:

1计算f(x)在有根区间[a,b]端点处的函数值f(a),f(b)。

2计算f(x)在区间中点处的值f()。

3判断f()=0则即是根,计算过程结束;否则检验:

若f()与f(a)异号,则根位于区间[a,]内,这时以代替b;

若f()与f(a)同号则根位于区间[,b]内,这时以代替a。

反复执行步2和步3,直到区间[a,b]缩小到允许的误差范围之内,此时区间中点

即可作为所求的根。

四、实验步骤

1打开开始->程序->附件->命令提示符,进入TurboC2.0,输入程序。

2按F2存盘。

3按F9键检查语法是否存在错误。

4按Ctrl+F9运行程序,调试编译。

5提高误差控制值,查看计算时间高精度求值余低精度求值时运算次数的区别。

五、实验中应注意的问题与思考题:

1求值区间为估算区间,如该区间无根,则应该如何考虑程序的健壮性?

2调整寻根区间时,定义区间端点的变量应为全局变量,为什么?

3误差区间应适度,过大则会造成运算结果不准确,太小则会造成浪费大量计算时间。

4如何选取适当的误差区间?

六、实验报告内容:

1实验原理及实现方法。

2上机源程序代码。

3实验结果。

4回答思考题。

实验四基于单向链表的学生信息处理程序

一实验目的:

通过实验了解并掌握利用线性链表、结构体的定义与使用方法。

了解线性链表的基本运算规则,掌握线形逻辑结构采取非线性存储情况下的软件开发技巧,进一步熟悉并掌握C语言中指针的用法。

二实验内容:

在TurboC2.0平台下,开发基于单项链表的学生信息处理程序,利用链表对学生信息处理,应提供创建、编辑、删除、查询、排序等基本功能。

学生的信息应采用结构体进行组织。

三实验原理:

线性链表是常见的线性表之一,它的特点是逻辑结构为线性,即遵守除头结点和尾结点外,其他结点均有且只有一个钱件,有且只有一个后件,头结点只有后件而无前件,尾结点只有前件而无后件。

线性链表的物理结构与逻辑结构不一定对应,通常是杂乱无章的,通过指针作为前后件的连接手段,即前件保存后件的物理地址。

它的结构如下图:

Head

其中,Data域为数据域,用来加载用户数据,Next域为指针域,用来存放后件的物理地址.但这些地址通常不连续。

线性链表的存储方式充分利用了系统的零散空间,对提高计算机内存利用率有很好的作用。

线性链表的创建:

创建过程实际上是链表结点的申请和连接的过程。

向系统申请内存单元,输入用户数据,将结点加入到链表中,连接前后件,明确关系后添加下一个结点。

线性链表的删除:

选定要删除的结点,将该结点前件的指针域数据修改为后件的物理地址值,释放该节点占用的内存空间。

线性链表的查找:

给定查找条件,从链表头开始,顺延向后查找,当找到符合条件的结点时,返回该结点的地址值。

线性链表的编辑:

给定查找条件,查找到符合条件的结点后,修改相应的用户数据,但不能改变该结点的指针值。

线性链表的排序:

按照指定的用户数据用指定的的排序要求(升序或降序)对链表的逻辑结构进行重组,重组的过程中,只改变逻辑结构,而不是物理结构,也不改变结点的数据。

四、实验步骤

1打开开始->程序->附件->命令提示符,进入TurboC2.0,输入程序。

2按F2存盘。

3按F9键检查语法是否存在错误。

4按Ctrl+F9运行程序,调试编译。

5完成对链表的打印,要求程序可以循环执行。

五、实验中应注意的问题与思考题:

1删除链表中的结点时应释放该节点所占用的空间。

为什么?

2定义工作指针时,应注意避免造成内存泄漏?

3定义学生信息资料时应定义为结构体,信息应尽量全面。

4对链表进行运算时应保证线性链表的逻辑完整性。

六、实验报告内容:

1实验原理及实现方法。

2上机源程序代码。

3实验结果。

4回答思考题。

实验五使用图形函数实现计算机绘图和动画显示

一实验目的:

通过实验了解并掌握利用图形函数进行绘图的基本方法和技巧,熟悉图形函数的使用,了解并掌握计算机坐标系统的相关知识。

二实验内容:

在TurboC2.0平台下,使用图形函数绘制滑行小车,具体图形绘画模式由学生自主开发。

应了解并掌握计算机坐标的特性和使用方法,做好绘画对象的数学建模。

三实验原理:

PC机显示系统一般是由显示器和显示卡组成。

显示器(Monitor)是独立于主机的一种外部设备。

显示卡(Adapter)是插在PC主机上的一块电路板。

PC机对显示屏幕的所有操作都是通过显示卡来实现的。

显示系统的主要特性

1.显示分辨率

显示分辨率是指屏幕上所能显示的像素点数,通常用列数和行数的乘积来表示。

为了获得良好的显示效果,要求显示器的分辨率与对应分辨率的显示卡相匹配。

通常,高分辨率的显示效果比低分辨率的效果好。

但是,显示分辨率的提高对显示器与显示卡的硬、软件要求更高。

特别是分辨率的提高在很大程度上受到显示器的显示尺寸和扫描频率的限制,也受到显示卡的显存的限制。

根据应用情况的不同,在不超过显示器最高分辨率的条件下,可以通过对显示卡的设置而使用不同的分辨率。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1