实验八 函数实验一
实验八__差分方程

实验八差分方程[实验目的]1. 掌握差分的性质,多项式求和;2. 差分方程的解法;3. 用差分方程解代数方程;4. 用差分方程分析国民经济。
§1 基本理论1.差分2. 任意数列{x n },定义差分算子Δ如下:Δx n=x n+1-x n对新数列再应用差分算子,有Δ2xn=Δ(Δk x n).性质性质1 Δk(x n+y n)=Δk x n+Δk y n性质2 Δk(cx n)=cΔk x n性质3 Δk x n=∑(-1)jC j k X n+k-j性质4 数列的通项为n的无限次可导函数,对任意k>=1,存在η,有Δk xn=f(k)(η) 差分方程定义8。
1 方程关于数列的k阶差分方程:x n-a1x n-1-a2x n-2-……a B x n-k=b(n=k,k+1,……)其中a1,a2,------ak 为常数,ak≠0. 若b=0,则该方程是齐次方程关于λ的代数方程λk-a1λk-1-------a k-1λ-a k=0为对应的特征方程,根为特征值。
1.实验内容与练习2.1 差分例1Xn={n3可见,{n},三阶差分数列为常数数列,四阶为0。
练习1 对{1},{n},{n 2},{n 4},{n 5}, 分别求各阶差分数列。
练习2 {C 0n-1}{C 1n-1}{C 2n-1},{C 4n-1},分别求各阶差分数列. {Xn}的通项为n 的三次函数, Xn=a 3n 3+a 2n 2+a 1n+a 0 证明它为常数数列。
证明 由Xn=a 3n 3+a 2n 2+a 1n+a 0可直接计算 。
定理8。
1 若数列的通项是关于n 的k 次多项式,则 k 阶差分数列为非零数列,k+1阶差分数列为0。
练习3 证明定理8。
1 。
定理8。
2 若{Xn}的 k 阶插分为非零常数列,则{Xn}是 n 的 k 次多项式,练习4 根据插分的性质证明定理8。
2 例2。
求∑i 3 例3 例4解 设Sn=∑i 3 表设Sn=a 4n4+a 3n 3+a 2n 2+a 1n+a 0, s 1=1,s 2=9,s 3=36,s 4=100,s 5=225,得a 0=0, a 1=0, a 2=1/4, a 3=1/2, a 4=1/4.所以,Sn=(1/4)n 4+(1/2)n 3+(1/4)n 2.练习 {Xn}的通项Xn 为n 的k 次多项式,证明∑x i 为n 的 k+1次多项式;求 ∑i 4.由练习 2 {C r n-1}可得。
高级语言程序设计实验指导书ptf

高级语言程序设计实验指导书编者:苑俊英2010.9前言本实验指导书是《高级语言程序设计实验》课程的配套教材,本指导书中的实验内容涉及到高级语言中各个章节的知识点,并对任课教师和学生以指导。
该指导书的实验一至实验十二为专题实验,实验十三为综合实验,除了从各个知识点对学生加以实践外,还以综合项目的形式,让学生体会团队合作、中小型项目的开发过程和方法,锻炼其综合运用所学知识的能力和动手实践的能力。
本实验指导由苑俊英执笔完成,由于作者水平有限,难免有不妥之处,请各位老师和专家指正!目录实验相关 (4)实验一 C程序的运行环境和运行C程序的方法 (6)实验二数据类型、运算符和表达式(1) (8)实验三数据类型、运算符和表达式(2) (11)实验四最简单的C程序设计 (13)实验五逻辑结构程序设计 (15)实验六循环结构程序设计 (16)实验七数组 (17)实验八函数1 (19)实验九函数2 (20)实验十指针 (21)实验十一结构体和共用体 (22)实验十二位运算 (23)实验十三文件 (24)综合实验 (25)实验相关1.每次实验准备(1)了解所用计算机系统的性能和使用方法(2)复习和掌握与本实验有关的教学内容(3)准备好上机所需程序(4)需事先估计运行中可能出现的问题,针对不同的问题进行修改(5)准备好调试和运行时所需的数据2.实验要求(1)一人一组,独立上机(综合实验除外)。
(2)上机过程出现的问题,除了是系统问题外,一般应独立解决,不要轻易举手求助老师。
对出错信息进行分析、判断,学习如何调试程序。
(3)独立完成实验,按时交实验报告。
3.实验步骤(1)进入C工作环境(Turbo C、Turbo C++、Visual C++、Visual Studio 2008、Eclipse、CodeBlocks)(2)编辑程序(3)检查程序的书写错误并修改(4)编译和连接,根据出错信息进行更改,直到编译连接通过为止(5)运行程序并分析运行结果是否合理和正确(6)输出程序清单和运行结果(7)书写实验报告4.实验报告(1)实验报告应包括以下内容:(2)题目(3)程序清单(4)运行结果(5)对运行结果的分析及本次实验取得的经验,如果程序未通过,应分析其原因实验一 C程序的运行环境和运行C程序的方法1.实验目的(1)了解所用计算机系统的基本操作方法,学会独立使用该系统。
C语言实验报告

中南民族大学管理学院学生实验报告课程名称:C程序语言设计姓名:郭晋学号:10056006年级:2010专业:信息管理与信息系统指导教师:李超锋实验地点:管理学院综合实验室2010 学年至20 11 学年度第2 学期目录实验一熟悉C语言的开发环境和C程序的上机步骤实验二基本数据类型及数据的输入输出实验三运算符及表达式实验四顺序结构程序设计实验五选择结构程序设计实验六循环结构程序设计实验七数组及其应用实验八函数及其应用实验九指针及其应用实验(一)熟悉C语言的开发环境和C程序的上机步骤实验时间:2011.3.29同组人员:郭晋,金亚男实验目的:1,了解T urb C3.0编译系统,熟悉各菜单的功能,掌握在该系统上编辑,编译,连接,运行一个C程序的方法。
2,通过调试,运行简单的C程序,初步了解C语言程序的特点。
实验内容:1.编写一个C程序,求一个圆的面积。
我们的程序设计#include<stdio.h>void main(){float r,s;scanf("%f",&r);s=3.14*r*r;printf("s=%f",s);}2.编写程序求任意三个书的最大值。
我们的程序设计#include<stdio.h>void main(){int a,b,c,max;scanf("%d,%d,%d" ,&a,&b,&c);if(a>b&&a>c)max=a;if(b>a&&b>c)max=b;if(c>a&&c>b)max=c;printf("max=%d\n",max);}实验步骤:1.首先,我们两人先根据题目中的编程要求确定实验步骤,分别写下相应的编程语言进行比较,未出现明显的分歧。
2.打开Turb C 程序,然后将刚刚确定的C语言程序输入,打开Proiles,进行系统纠错,看是否出现错误或者警告,进行相应的调试。
c语言第二部分 实验内容

三、实验内容
1.阅读并输入如下程序,查看运行结果,并分析其功能。 # include "stdio.h" main ( ) { int a, b, c, s ; a = 5; b = 4; c = 6; s = (a+b+c)/ 3; printf (" a = %d, b = %d, c = %d \n, s = %d ", a, b, c, s) ; }
C语言程序设计实验·设计·习题
2.下面是一正方形面积的计算程序,通过输入不同的边长,求 出不同的面积。输入此程序并试运行。 注意:程序中含有输入语句,运行时将会停留在另一窗口中等待 输入数据。 # include"stdio.h" main ( ) { int r, s ; scanf (" %d ",&r) ; s= r*r; printf (" s = %d ", s) ; } 3.在Turbo C中调试并修改以下C程序中的错误。
C语言程序设计实验·设计·习题
三、实验内容
1.改正书中所给的相关程序的错误。 2.程序填空。 (1)按程序中注释的要求填输出语句。 (2)要求运行时必须按如下格式输入数据,请填空。 3.程序编译成功,只是说明没有语法错误,但并不一定能得出 正确结果,因为有可能存在编程逻辑错误。这时,我们需要跟踪变量、 调试程序,找出问题所在。调试的一般方法有: (1)单步跟踪:选择Run菜单下的Step命令,也可以直接按快捷键 F7(可跟踪进函数、过程)或快捷键F8,这样可以每条语句单独运行。 (2)运行至光标处:先将光标移至目标语句,然后选择Run菜单下 的Go to Cursor命令,或按快捷键F4,这样可以连续运行从开始到光 标处的一段程序。
STM8教程实验8-定时器TIM1

例程八 TIM1这一节,我们将向大家介绍如何使用STM8的定时器中的基本定时功能,STM8的定时器功能十分强大,有TIM1高级定时器,也有TIM2、TIM3等通用定时器,还有TIM4基本定时器。
在STM8S参考手册里面,定时器的介绍占了1/3的篇幅,足见其重要性。
这一节,我们分别介绍TIM1的基本定时功能16位高级控制定时器(TIM1)简介:TIM1由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱动。
TIM1有4个通道,分别是1到4。
分别对应于四个不同的捕获/比较通道。
高级控制定时器适用于许多不同的用途:基本的定时测量输入信号的脉冲宽度(输入捕获)产生输出波形(输出比较,PWM和单脉冲模式)对应与不同事件(捕获,比较,溢出,刹车,触发)的中断与TIM5/TIM6或者外部信号(外部时钟,复位信号,触发和使能信号)同步 高级控制定时器广泛的适用于各种控制应用中,包括那些需要中间对齐模式PWM的应用,该模式支持互补输出和死区时间控制。
高级控制定时器的时钟源可以是内部时钟,也可以是外部的信号,可以通过配置寄存器来进行选择。
TIM1的时基单元包括,如下图所示:● 16位向上/向下计数器● 16位自动重载寄存器● 重复计数器● 预分频器16位计数器,预分频器,自动重载寄存器和重复计数器寄存器都可以通过软件进行读写操作。
自动重载寄存器由预装载寄存器和影子寄存器组成。
可在在两种模式下写自动重载寄存器:● 自动预装载已使能(TIM1_CR1寄存器的ARPE位置位)。
在此模式下,写入自动重载寄存器的数据将被保存在预装载寄存器中,并在下一个更新事件(UEV)时传送到影子寄存器。
● 自动预装载已禁止(TIM1_CR1寄存器的ARPE位清除)。
在此模式下,写入自动重载寄存器的数据将立即写入影子寄存器。
更新事件的产生条件:●计数器向上或向下溢出。
●软件置位了TIM1_EGR寄存器的UG位。
●时钟/触发控制器产生了触发事件。
实验八实验报告电工学

中山大学电工原理及其应用实验报告S U N Y A T-S E N U N I V E R S I T Y院(系):移动信息工程学号:审批专业:软件工程实验人:实验题目:实验九:BJT单管共射电压放大电路一、实验目的1. 掌握放大电路静态工作点的测试方法,分析静态工作点对放大器性能的影响。
2. 掌握放大电路动态性能(电压增益、输入电阻、输出电阻、最大不失真输出电压以及幅频特性等)的测试方法。
3. 进一步熟练常用电子仪器的使用二、预习思考题1.阅读教材中有关单管放大电路的内容并估算实验电路的性能指标。
假设:3DG6 的β=100,Rb2=20KΩ,Rb1=60KΩ,RC=2KΩ,RL=2KΩ。
估算放大电路的静态工作点,电压增益AV,输入电阻Ri和输出电阻RO2、阅读实验附录中有关示波器的使用、晶体管特性图示仪简介以及放大电路干扰和自激振荡消除的内容。
3、能否用直流电压表直接测量晶体管的VBE?为什么实验中要采用测VB、VE,再间接算出VBE的方法?答:一般的电压表直接测不准,会引起电路参数变化,因为电表直接接在输入端,形成额外的输入信号。
而测UB、UE时,电压表的一端是接地的,不容易形成额外输入。
4、怎样测量Rb1阻值?答:用万用表电阻档测量。
5、当调节偏置电阻Rb1,使放大电路输出波形出现饱和或截止失真时,晶体管的管压降VCE怎样变化?答:饱和失真时Uce减小Ic增大,截止失真时Uce增大Ic减小。
6、改变静态工作点对放大电路的输入电阻Ri有否影响?改变外接电阻RL对输出电阻RO有否影响?答:因为Ri≈Rbe‖Rb1‖Rb2;Ro≈Rc,所以对输入电阻有影响对输出电阻吴影响。
7、在测试AV,Ri和RO时怎样选择输入信号的大小和频率?为什么信号频率一般选1KHz,而不选100KHz 或更高?答:应该选Ui=10mv作用f=1KHZ左右,因为,试验电路为阻容耦合单管共射放大电路,阻容耦合单管放大电路的下限频率fL越小电路的低频响应越好,所以采用1KHZ而不用更高的8.单管共射级放大电路测试中,如果将函数信号发生器,交流毫伏表,示波器中任一仪器的二个测试端子接线换位,将会出现什么问题?答:对于函数信号发生器:如果有波形输出,例如正弦波,则在示波器端的显示是反相。
实验八(上):SQL-Server用户自定义函数和触发器

实验八(上)用户自定义函数和触发器一、实验目的1、掌握SQLServer中用户自定义函数的使用方法。
2、掌握SQL Server中触发器的使用方法。
二、实验内容和要求1.创建一个返回标量值的用户定义函数RectangleArea:输入矩形的长和宽就能计算矩形的面积。
自选2种实例调用该函数。
create function RectangleArea(@a int,@b int)returns intasbeginreturn @a*@benddeclare @area intexecute @area=RectangleArea 3,5print('矩形面积是:')print @areadeclare @area intexecute @area=RectangleArea 7,8print('矩形面积是:')print @area2.创建一个用户自定义函数(内嵌表值函数),功能为产生某个系的学生选修信息,内容为学号,姓名,课程名,成绩。
调用这个函数,显示信息系有选课学生的信息。
create function Search (@sdept char(10))returns tableasreturn(select sc.sno 学号,student.sname 姓名,ame 课程名,sc.grade 成绩,student.sdept 系别from sc,student,course where o=o andsc.sno = student.sno and sdept=@sdept)select*from Search('cs')3.创建一个作用在P表上的触发器P_checks,确保用户在插入或更新P表的WEIGHT值时,所提供的WEIGHT值介于20与40之间,否则给出错误提示并回滚此操作。
请测试该触发器,测试方法自定。
create trigger P_checks on p for insertasbegindeclare @weight intselect @weight=weight from insertedif @weight<10 or @weight>20beginRAISERROR('weight 必须在~20之间!',16,1)ROLLBACK TRANSACTIONendendinsert into p(pno,pname,color,weight)values('p7','刀片','红',40)insert into p(pno,pname,color,weight)values('p7','刀片','红',15)select*from p4.创建一个作用在J表上的触发器J_Update,禁止同时修改项目的名称和所在城市,并进行相应的错误提示。
C语言实验报告 实验八 参考答案

实验七八 函 数(一) 参考答案1.请编写程序sy8-1.cpp ,要求:(1)设计一个fun 函数用来计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。
(2)在主函数中输入数据,调用fun 函数,输出结果。
例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。
【解题思路】用循环穷举1~n 之间各数,若余5等于0或余9等于0,则将其表示为倒数并累加即可。
注意分式若需要得到实数结果则必须至少有一个操作数是实数类型。
【参考答案】#include <stdio.h>double fun(int n){ double s=0;int i;for(i=1;i<=m;i++)if(i%5==0||i%9==0)s=s+1.0/i;return s;}main( ){ int n;double s;printf("\nInput n: ");scanf("%d",&n);s=fun(n);printf("s=%f\nlf",s);}2.请编写程序sy8-2.cpp ,要求:(1)设计一个fun 函数用来计算下列多项式的值。
(2)在主函数中输入数据,调用fun 函数,输出结果。
例如:若n 的值为11时,函数的值为1.83333【解题思路】根据多项式各项的变化规律可以看出各项的分子为常量1,分母是从1到n 累加和。
【参考答案】#include <stdio.h>float fun(int n){ float sum=0,s=0; //sum 存多项式的累加和,s 存分母的累加和int i;for(i=1;i<=n;i++){ s=s+i; //先求分母的累加sum=sum+1/s;}return sum;}main()n s ⋯++++⋯++++++=321132112111{int n; float s;printf("\nPlease enter n:");scanf("%d", &n);s = fun(n);printf("the result is: %f\n", s);}3.请编写程序sy8-3.cpp,要求:(1)设计一个fun函数,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、目的与要求 1.掌握 C 语言函数的定义方法、函数的声明及函数的调用方法。 2.了解主调函数和被调函数之间的参数传递方式。 二、实验例程 例 1:利用函数调用方式实现从键盘输入两个整数,输出较大的数。 int max(int a,int b); void main() {
int max(int a,int b); int x,y,z; printf("input two numbers:\n"); scanf("%d,%d",&x,&y);//输入时注意"," z=max(x,y); printf("maxmum=%d",z); } int max(int a,int b) { if(a>b) return a; else return b; } 例 2:写两个函数,分别求两个正数的最大公约数和最小公倍数,用主函数 调用这两个函数并输出结果。两个正数由键盘输入。 源程序如下: #include "stdio.h" hcf(u,v) int u,v; { int a,b,t,r; if(u>v) {
t=u; u=v; v=t; } a=u; b=v; while((r=b%a)!=0) {
b=a; a=r;
} return(a); } lcd(u,v,h) int u,v,h; { return(u*v/h); } main() { int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%d\n",h); l=lcd(u,v,h); printf("L.C.D=%d\n",l); } 这是一个十分典型的算法,同学们一定要认真分析、学习。 例 3 用牛顿迭代法求根。方程为 ax3+bx2+cx+d=0,系数 a、b、c、d 由主函 数输入。求 x 在 1 附近的一个实根。求出根后,由主函数输出。(用函数方法实 现)。 源程序如下: /*牛顿迭代法解方程*/ #include “math.h” float solut(a,b,c,d) float a,b,c,d; { float x=1,x0,f,f1; do {
} 在此题目中,方程的系数是未知的,这是与以前我们用牛顿迭代法的时候不 同的地方。但原理、算法是相同的,这里我们用函数来求方程的根。也就是把牛 顿迭代法用函数的形式表现出来。 【作业】 1.上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。 main() {
int x,y; printf("%d\n",sum(x+y)); int sum(a,b); {
int a,b; return(a+b); } } 2.定义一个函数,功能是计算 n 个学生的成绩中,高于平均成绩的人数, 并作为函数值。用主函数来调用它,统计 50 个学生成绩中,高于平均成绩的有 多少人? 3.编写一个对 n 个数据从大到小的排序 C 函数,再编写一个计算最后得分 的 C 函数,计算方法是:去除一个最高分,去除一个最低分,其余的平均分为 参赛选手的最后得分。并在主函数中调用它们对有 n 个评委评分,m 个选手参赛 的x0+b)*x0+c)*x0+d; f1=(3*a*x0+2*b)*x0+c; x=x0-f/f1; }while(fabs(x-x0)>=1e-5); return(x); } main()
{ float a,b,c,d; printf(“\n 输入方程的系数 a,b,c,d\n”); scanf(“%f,%f,%f,%f”,&a,&b,&c,&d); printf(“\n 方程是:%5.2fx^3+%5.2fx^2+%5.2fx+%5.2f=0”,a,b,c,d); printf(“\nX=%10.7f\n”,solut(a,b,c,d));