当前位置:文档之家› 最新实验2微分方程(基础实验)

最新实验2微分方程(基础实验)

最新实验2微分方程(基础实验)
最新实验2微分方程(基础实验)

实验2微分方程(基

础实验)

项目四无穷级数与微分方程

实验2 微分方程(基础实验)

实验目的理解常微分方程解的概念以及积分曲线和方向场的概念,掌握利用Mathematica求微分方程及方程组解的常用命令和方法.

基本命令

1. 求微分方程的解的命令DSolve

对于可以用积分方法求解的微分方程和微分方程组,可用Dsolve命令来求其通解或特解. 例如,求方程?Skip Record If...?的通解, 输入

DSolve[y ''[x]+3y '[x]+2y[x]==0,y[x],x]

则输出含有两个任意常数C[1]和C[2]的通解:

?Skip Record If...?

注:在上述命令中,一阶导数符号 ' 是通过键盘上的单引号 ' 输入的,二阶导数符号 '' 要

输入两个单引号,而不能输入一个双引号.

又如,求解微分方程的初值问题:

?Skip Record If...?

输入

Dsolve[{y''[x]+4 y'[x]+3y[x]==0,y[0]==6, y'[0]==10},y[x],x]

(*大括号把方程和初始条件放在一起*)

则输出

?Skip Record If...?

2. 求微分方程的数值解的命令NDSolve

对于不可以用积分方法求解的微分方程初值问题,可以用NDSolve命令来求其特解.例

要求方程

?Skip Record If...?

的近似解?Skip Record If...?, 输入

NDSolve[{y'[x]==y[x]^2+x^3,y[0]==0.5},y[x],{x,0,1.5}]

(*命令中的{x,0,1.5}表示相应的区间*)

则输出

{{y->InterpolatingFunction[{{0.,1.5}},< >]}}

注:因为NDSolve命令得到的输出是解?Skip Record If...?的近似值. 首先在区间[0,1.5]内插入一系

列点?Skip Record If...?, 计算出在这些点上函数的近似值?Skip Record If...?, 再通过插值方法得到

?Skip Record If...?在区间上的近似解.

3. 一阶微分方程的方向场

一般地,我们可把一阶微分方程写为

?Skip Record If...?

的形式,其中?Skip Record If...?是已知函数. 上述微分方程表明:未知函数?Skip Record If...?在点?Skip Record If...?处的斜率等于函数

仅供学习与交流,如有侵权请联系网站删除谢谢127

?Skip Record If...?在点?Skip Record If...?处的函数值. 因此,可在?Skip Record If...?平面上的每一点, 作出过该点的以?Skip Record If...?为斜率

的一条很短的直线(即是未知函数?Skip Record If...?的切线). 这样得到的一个图形就是微分方程?Skip Record If...?

的方向场. 为了便于观察, 实际上只要在?Skip Record If...?平面上取适当多的点,作出在这些点的函数的

切线. 顺着斜率的走向画出符合初始条件的解,就可以得到方程?Skip Record If...?的近似的积分曲

线.

例如, 画出?Skip Record If...?的方向场.

输入

<

g1=PlotVectorField[{1,1-y^2},{x,-3,3},{y,-2,2}, Frame->True,

ScaleFunction->(1&),ScaleFactor->0.16,

HeadLength->0.01,PlotPoints->{20,25}];

则输出方向场的图形(图2.1), 从图中可以观察到, 当初始条件为?Skip Record If...?时, 这个微分方程的解介于?Skip Record If...?和1之间, 且当x趋向于?Skip Record If...?或?Skip Record If...?时, ?Skip Record If...?分别趋向于?Skip Record If...?与1.

下面求解这个微分方程, 并在同一坐标系中画出方程的解与方向场的图解. 输入sol=DSolve[{y'[x]==1-y[x]^2,y[0]==0},y[x],x];

g2=Plot[sol[[1,1,2]],{x,-3,3},PlotStyle->{Hue[0.1],Thickness[0.005]}];

Show[g2,g1,Axes->None,Frame->True];

则输出微分方程的解?Skip Record If...?,以及解曲线与方向场的图形(图2.2). 从图中可以看到, 微分方程的解与方向场的箭头方向相吻合.

实验内容

用Dsolve命令求解微分方程

例2.1 (教材例2.1) 求微分方程 ?Skip Record If...?的通解.

输入

Clear[x,y];

DSolve[y '[x]+2x*y[x]==x*Exp[-x^2],y[x],x]

DSolve[D[y[x],x]+2x*y[x]==x*Exp[-x^2],y[x],x]

则输出微分方程的通解:

?Skip Record If...?

仅供学习与交流,如有侵权请联系网站删除谢谢127

其中C[1]是任意常数.

例2.2 (教材例2.2)求微分方程?Skip Record If...?在初始条件?Skip Record If...?下的特解. 输入

Clear[x,y];

DSolve[{x*y ' [x]+y[x]-Exp[x]==0,y[1]==2 E},y[x],x]

则输出所求特解:

?Skip Record If...?

例2.3 (教材例2.3) 求微分方程?Skip Record If...?的通解.

输入

DSolve[y ''[x]-2y '[x]+5y[x]==Exp[x]*Cos[2 x],y[x],x]//Simplify

则输出所求通解:

?Skip Record If...?

例2.4 (教材例2.4) 求解微分方程?Skip Record If...?, 并作出其积分曲线.

输入

g1=Table[Plot[E^x+x^3/3+c1+x*c2,{x,-5,5},

DisplayFunction->Identity],{c1,-10,10,5},{c2,-5,5,5}];

Show[g1,DisplayFunction->$DisplayFunction];

图2.3

例2.5 (教材例2.5)求微分方程组?Skip Record If...?在初始条件?Skip Record If...?下的特解.

输入

Clear[x,y,t];

DSolve[{x' [t]+x[t]+2 y[t]==Exp[t], y'[t] -x[t]- y[t]==0,

x[0]==1,y[0]==0},{x[t],y[t]},t]

则输出所求特解:

?Skip Record If...?

例2.6 验证?Skip Record If...?是微分方程?Skip Record If...?的通解.

输入命令

<

<

sol=(-5x^3-30y+3y^5)/15==C;

仅供学习与交流,如有侵权请联系网站删除谢谢127

g1=ImplicitPlot[sol/.Table[{C->n},{n,-3,3}],{x,-3,3}];

g2=PlotVectorField[{1,x^2/(y^4-2)},{x,-3,3},{y,-3,3},

Frame->True,ScaleFunction->(1&),ScaleFactor->0.16,

HeadLength->0.01,PlotPoints->{20,25}];

g=Show[g2,g1,Axes->None,Frame->True];

Show[GraphicsArray[{g1,g2,g}]];

则分别输出积分曲线如图2.4(a), 微分方程的方向场如图2.4(b). 以及在同一坐标系中画出积分曲线和方向场的图形如下图2.4 (c).

图2.4

从图2.4(c)中可以看出微分方程的积分曲线与方向场的箭头方向吻合, 且当?Skip Record If...?时, 无论初始条件是什么, 所有的解都趋向于一条直线方程.

例2.7 (教材例2.6) 求解微分方程?Skip Record If...?并作出积分曲线.

输入

<

DSolve[y' [x]-2y[x]/(x+1)==(x+1)^(5/2),y[x],x]

则输出所给积分方程的解为

?Skip Record If...?

下面在同一坐标系中作出这个微分方程的方向场和积分曲线(设?Skip Record If...?

输入

t=Table[2(1+x)^(7/2)/3+(1+x)^2c,{c,-1,1}];

g1=Plot[Evaluate[t],{x,-1,1},PlotRange->{{-1,1},{-2,2}},

PlotStyle->RGBColor[1,0,0],DisplayFunction->Identity];

g2=PlotVectorField[{1,-2y/(x+1)+(x+1)^(5/2)},{x,-0.999,1},{y,-4,4},

Frame->True,ScaleFunction->(1&), ScaleFactor->0.16,

HeadLength->0.01, PlotPoints->{20,25},DisplayFunction->Identity];

Show[g1,g2,Axes->None,Frame->True,DisplayFunction->$DisplayFunction];

则输出积分曲线的图形(图2.5).

仅供学习与交流,如有侵权请联系网站删除谢谢127

图2.5

例2.8 求解微分方程?Skip Record If...?并作出其积分曲线.

输入命令

<

DSolve[1-2*x*y[x]*y' [x]==x^2+(y[x])^2-2,y[x],x]

则得到微分方程的解为

?Skip Record If...?

我们在?Skip Record If...?时作出积分曲线, 输入命令

t1=Table[(3+Sqrt[3])Sqrt[3+24x^2-4x^4-4*c*x]/(6*x),{c,-3,3}];

t2=Table[(3-Sqrt[3])Sqrt[3+24x^2-4x^4-4*c*x]/(6*x),{c,-3,3}];

gg1=Plot[Evaluate[t1],{x,-3,3},PlotRange->{{-3,3},{-3,3}},

PlotStyle->RGBColor[1,0,0],DisplayFunction->Identity];

gg2=Plot[Evaluate[t2],{x,-3,3},PlotRange->{{-3,3},{-3,3}},

PlotStyle->RGBColor[1,0,0],DisplayFunction->Identity];

g1=ContourPlot[y-x^3/3-x*(-2+y^2),{x,-3,3},{y,-3,3},PlotRange->{-3,3},Contours->7,ContourShading->False,PlotPoints->50,DisplayFunction->Identity];

g2=PlotVectorField[{1,(x^2+y^2-2)/(1-2*x*y)},{x,-3,3},{y,-3,3},

Frame->True,ScaleFunction->(1&),ScaleFactor->0.16,

HeadLength->0.01,PlotPoints->{20,25},

DisplayFunction->Identity];

Show[g1,g2,Axes->None,Frame->True,

DisplayFunction->$DisplayFunction];

Show[gg1,gg2,g2,Axes->None,Frame->True,

DisplayFunction->$DisplayFunction];

则输出微分方程的向量场与积分曲线, 并输出等值线的图2.6.

仅供学习与交流,如有侵权请联系网站删除谢谢127

图2.6

用NDSolve命令求微积分方程的近似解

例2.9 (教材例2.7)求初值问题:?Skip Record If...?在区间[1.2,4]上的近似解并作图. 输入

fl=NDSolve[{(1+x*y[x])*y[x]+(1-x*y[x])*y'[x]==0,y[1.2]==1},y,{x,1.2,4}] 则输出为数值近似解(插值函数)的形式:

{{y->InterpolatingFunction[{{1.2,4.}},< >]}}

用Plot命令可以把它的图形画出来.不过还需要先使用强制求值命令Evalu-ate, 输入 Plot[Evaluate[y[x]/.fl],{x,1.2,4}]

则输出近似解的图形(图2.7).

图2.7

如果要求区间[1.2,4]内某一点的函数的近似值, 例如?Skip Record If...?,只要输入 y[1.8]/.fl

则输出所求结果

{3.8341}

例2.10 (教材例2.8) 求范德波尔(Van der Pel)方程

?Skip Record If...?

仅供学习与交流,如有侵权请联系网站删除谢谢127

程序设计基础实验指导书

说明 每个实验做完以后,按照实验报告模板格式完成相应的实验报告,存储为word 文档,最终提交的实验文档数量种类和命名原则如下例:(不按要求 者拒收) 目录结构图目录实验 1 内的文件种类和命名原则实验报告成绩将作为平时成绩的一部分计算到期末总成绩中。 实验报告严禁相互抄袭,一经发现抄袭和被抄袭者本次实验按零分计算!

实验1 C 的实验环境和C 语言的数据类型 1. 实验目的 ⑴ 了解在具体的语言环境下如何编辑、编译、连接和运行一个C 程序。 ⑵ 通过运行简单的C 程序,初步了解C 源程序的特点。 ⑶ 掌握C 语言数据类型, 熟悉如何定义一个整型、字符型和实型的变量,以及对它 们赋值的方法。 ⑷ 掌握不同的类型数据之间赋值的规律。 ⑸ 学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(+ +)和自减(--)运算符的使用。 2. 实验内容和步骤 检查所用的计算机系统是否已安装了C 编译系统并确定他所在的子目录。 进入所用的集成环境。 熟悉集成环境的界面和有关菜单的使用方法。 输入并运行一个简单的、正确的程序。 3. 实验题目 输入下面的程序 # include "stdio.h" void main() { printf( "This is a c program.\n" ); } 程序无误,其运行的结果为:(请填写) ⑵ 输入并编辑一个有错误的 C 程序。 # include “ stdio.h ” void main() { int a,b,sum a=123; b=456; sum=a+b print( “ suism%d n” ,sum); } 运行后程序出现几处错误,请分别指出,并逐一更改: ⑶ 若k,g 均为int 型变量, 则下列语句的输出为, : # include "stdio.h" void main() { int k, g; k=017; g=111;

程序设计基础实验报告

《程序设计基础》 实验报告 专业班级: 姓名: 学号:

实验一 面向过程的简单程序设计 1.实验目的要求 (1) 使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程, 初步了解C++程序的特点。 (2) 掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运 算符和表达式的使用。 (3) 掌握赋值语句的使用。 (4) 掌握数据的输入输出方法。 2.实验内容 (1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。 <1> d c b a x -++ <2> 11 11+++x x <3> sinX+cosX+tan -1 X <4> e x+y +e x-y <5> log 10(1+21x +) <6> 22b a -+??b a - (其中??a 表示取不大于a 的最大整数)。 <1> #include using namespace std; int main() { float x,a,b,c,d,e; cin>>x>>a>>b>>c>>d; e=x+(a+b)/(c-d); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sqrt(1+1/(x+1/(x+1)));

cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sin(x)+cos(x)+1/tan(x); cout< #include #include using namespace std; int main() { double x,y,z; cin>>x>>y; z=exp(x+y)+exp(x-y); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=log(1+sqrt(1+x*x)); cout< #include #include using namespace std; int main()

程序设计基础实验内容

实验指导 实验一 Visual C++开发环境使用 1.实验目的 (1)熟悉Visual C++集成开发环境。 (2)掌握C语言程序的书写格式和C语言程序的结构。 (3)掌握C语言上机步骤,了解C程序的运行方法。 (4)能够熟练地掌握C语言程序的调试方法和步骤 2. 实验内容 输入如下程序,实现两个数的乘积。 #include ; int main() { x=10,y=20 p=prodct(x,t) printf("The product is : ",p) int prodct(int a ,int b ) int c c=a*b return c } (1)在编辑状态下照原样键入上述程序。 (2)编译并运行上述程序,记下所给出的出错信息。 (3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。3.分析与讨论 (1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。 (2)总结C程序的结构和书写规则。 实验二数据类型、运算符和表达式 1.实验目的 (1)理解常用运行符的功能、优先级和结合性。 (2)熟练掌握算术表达式的求值规则。 (3)熟练使用赋值表达式。 (4)理解自加、自减运算符和逗号运算符 (5)掌握关系表达式和逻辑表达式的求值 2.实验内容 (1)整数相除 #include<> int main() {

int a=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a; printf("d=%d , e=%d ,f=%d\n",d,e,f); return 0; } (2)自加、自减运算 #include<> int main() { int a=5,b=8; printf("a++=%d\n",a++); printf("a=%d\n",a); printf("++b=%d\n",++b); printf("b=%d\n",b); return 0; } (3)关系运算和逻辑运算 #include<> int main() { int a=5,b=8,c=8; printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&&a<=c); printf("%d,%d\n",a<=b||a>=c,a==b||b==c); printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b)); return 0; } (1)在编辑状态下输入上述程序。 (2)编译并运行上述程序。 3.分析与讨论 (1)整数相除有什么危险?应如何避免这种危险? (2)分析a++和++a的区别。 (3)条件表达式和逻辑表达式的意义是什么,它们取值如何? (4)如何比较两个浮点数相等?为什么? 实验三格式化输入输出函数的使用 1.实验目的 (1)掌握格式字符使用的方法。 (2)掌握printf()进行格式化输出的方法。 (3)掌握scanf()进行格式化输入的方法。 2.实验内容 (1)输入如下程序,观察运行结果 #include<>

大学程序设计基础实验报告 (2)

**大学程序设计基础实验报告 实验名称:实验三分支结构 实验目的: 1、掌握IF-ELSE语句使用。 2、掌握ELSE-IF语句使用。 3、熟悉SWITCH语句使用。 实验内容: 在本地电脑中新建一个文件夹,用于存放C程序,文件夹的名字要求是“学号姓名-实验序号”,如E:\ 1920115555张三-03。启动C-Free,完成如下各题。 1、编程题:输入参数a,b,c,求一元二次方程ax2+bx+c=0的根(①a、b、c都为0,②a 和b为0,c不为0,③a为0,b不为0,c任意,④a不为0,且a、b、c满足b2-4ac ≥0,⑤a不为0,且a、b、c满足b2-4ac<0)。 2、编程题:输入职工的月薪salary,计算并输出应缴纳的个人所得税tax。tax=rate * (salary –850),rate的计算方式如下: 当salary <= 850,则rate = 0; 当850 < salary <= 1350,则rate = 5%; 当1350 < salary <= 2850,则rate = 10%; 当2850 < salary <= 5850,则rate = 15%; 当salary > 5850,则rate = 20%;。 3、编程题:根据输入的3个边长a、b、c,判断它们是否能构成三角形,若能构成三 角形,则进一步判断此三角形是哪种类型的三角形(等边三角形、等腰三角形、直角三角形和一般三角形。等腰直角算作等腰)。 4、编程题:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。【请分别用if语句和switch语句实现此题功能】 上交作业的方法: 1.将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这 次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。 2.保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学 号姓名-03”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上 交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“报告上交02”文件 夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名-03”命名的word 文档上交到“报告上交03”文件夹下的另一子文件夹“word文件上交”中。 特别提醒:每次上传的文件名一定要是“学号姓名-实验序号. doc”(如1720115555张

《C程序设计基础》实验指导

《C程序设计基础》实验指导 实验1 C程序的设计环境和运行方法 【实验目的】 1.熟悉所用计算机系统的基本操作方法。 2.学习Turbo C 2.0的使用方法,掌握程序编辑、编译、连接、运行及查看运行结果的方法。 3.掌握C程序的基本结构。 【实验内容】 1.熟悉使用的计算机系统的基本操作,创建自己的工作目录,参照附录中介绍的方法,掌握Turbo C 2.0的启动方法(一种或多种),了解Turbo C 2.0系统的安装路径和结构。2.进入Turbo C 2.0的工作环境,参照附录设置环境,用File/Change dir…设置当前工作目录、用Options/Directories设置系统的安装路径、包含文件路径、标准库文件路径、输出文件路径和源文件路径。 3.熟悉Turbo C 2.0的系统菜单组成及功能。学习使用功能键和快捷键调用菜单项的方法。 掌握文件建立、编辑、修改和保存的方法。落实文件的存储位置是否是你的工作目录,如果不是,回第二步重新设置。了解编译、连接和运行命令在屏幕菜单项的位置和调用方法。 4.输入并运行下面最简单的C程序 ①使用File菜单的New命令创建一个新文件。 ②在编辑区输入下面程序: #include mian() { printf(" Hello World!\n") } ③按功能键F9进行编译和连接,观察屏幕显示的编译信息。如果出现出错信息,信息窗口中将显示错误内容及定位错误时的语句行号,修改错误,再进行编译。 ④如果编译无错,按Ctrl+F9运行程序,按Alt+F5切换到用户屏,观察运行结果。 ⑤改变源程序中双引号内的字符串内容,重新编译和连接,并查看运行结果。 ⑥保存文件,查看你的工作目录下是否有该文件。编译连接的中间文件应该在Output设置的目录中。如果没有设置Output目录,中间文件应该在当前工作目录中。 5.输入并运行下面一个需要在运行时输入数据的程序,程序要求从键盘输入三个浮点数,输出它们的和。 #include mian()

C语言程序设计基础实验报告3【VIP专享】

实验3 逻辑结构程序设计一、实验目的 1、了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。 2、学会正确使用逻辑运算符和逻辑表达式。 3、熟练掌握if 语句和switch 语句。 4、结合程序掌握一些简单的算法。 5、学习调试程序。 二、实验内容和步骤 本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。 1、改错题。给定程序MODI1.C 的功能是:对于如下函数: 用scanf 函数输入x 的值,求y 值。/* MODI1.C */#include void main() { int x, y; /***********found***********/ scanf ("%d", &x);if ( x < 1 )y = x; /***********found***********/else if ( 1 <=x&& x < 10 ) y = 2*x -1 ; else y = 3*x -11; printf("y = %d\n", y ); } 程序中有两处错误,错误都在提示行: /***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构! 修改程序后,运行程序,输入x 的值(分别为x<1、1≤x<10、x ≥10三种情况,如0.5、8、15),检查输 出的y 值是否正确。 ?? ? ??≥-<≤-<=)10(113) 101(12)1(x x x x x x y

2、从键盘输入某学生的考试成绩,要求输出成绩等级A 、B 、C 、D 、E 。学生的成绩可分成5个等级,90- 100分为A 级,80-89分为B 级,70-79分为C 级,60-69分为D 级,0-59分为E 级。要求在输入负数时, 给出错误提示。 ① 事先编好程序,要求分别用if 语句和switch 语句实现。运行程序,并检查结果是否正确。 ② 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之 能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。 3、给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位 数字,例如:原数据为321,应输出123。(BX4.6) 分别用1位正整数、2位正整数、3位正整数、4位正整数、5位正整数作为测试数据进行测试。 除此之外,程序还应当对不合法的输入作必要的处理。例如:当输入负数时或输入的数超过5位(如123 456)数时。4、输入3 个整数,要求按由小到大的顺序输出。

程序设计基础C实验指导书

《程序设计基础C》实验指导书 上海应用技术学院 2012-2-20

目录 实验一顺序结构程序设计 (1) 实验二分支结构程序设计 (2) 实验三循环结构程序设计一 (3) 实验四(1)循环结构程序设计二 (4) 实验四(2)循环结构程序设计三 (5) 实验五数组 (6) 实验六数组和字符串 (7) 实验七函数 (8) 实验八函数 (9) 实验九指针 (10) 实验十结构体 (11) 实验十一文件 (12) 实验十二综合 (13)

实验一顺序结构程序设计 实验目的: 1.掌握C语言程序结构。 2.掌握变量的定义和使用。 3.掌握输入输出函数的使用。 4.掌握赋值语句的使用。 内容: 1.从键盘输入两个数,计算两个数的和,然后输出。 注意:带下划线的内容表示是从键盘输入的,实际上机时并不显示下划线,其余的内容是程序输出的。 2.从键盘输入一个华氏温度,请转换成摄氏温度后输出。 3.电路图如下所示,从键盘输入5个电阻的电阻值,计算并输出总的电阻值。

实验二 分支结构程序设计 实验目的: 1. 掌握逻辑表达式的使用方法。 2. 掌握if 和switch 语句的使用方法。 3. 掌握一些简单的算法。 内容: 1. 有下列函数,写一段程序,输入x 的值,输出y 的值 x (x<1) y= 2x-1 (1<=x<10) 3x-11 (x>=10) 2. 输入一个不超过 6位的正整数,输出该数的最高位和最低位,如果该数是一位数,则输 出该数。然后再输出该数是几位数。程序需要对输入的数进行合法性检查,对小于0和大于6位的数要有提示。 3. 输入一个 0到100的百分制成绩,转换成五级制A 、B 、C 、 D 和 E 。程序中首先需要 对输入的数进行合法性检查,对小于0和大于100的数要有提示,然后转换部分使用 switch 语句实现。

C语言程序设计基础实验报告6【VIP专享】

实验6 数组 一、实验目的 1、掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2、掌握字符数组和字符串函数的使用; 3、掌握与数组有关的算法(特别是排序算法)。 二、实验内容和步骤 编程序并上机调试运行。 1、以下给定程序MODI1.C的功能是: 求一维数组a中所有元素的平均值, 结果保留两位小数。例如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9时,程序的输出应为:The aver is: 9.10 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9}, i; /************found************/ /************found************/ s = a[0]; for ( i=1; i<10; i++) s += a[i]; aver = s / i; printf("The aver is: %.2f\n", aver); } 2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。 例如,当二维数组a中的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is: 2 。 程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误, 使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5}, i, j, min; clrscr();

程序设计基础(c语言)实验指导与测试答案

习题集参考答案 测试1 1.BDAAA 6.DBCDB 11.AADDD 16.CDCCC 21.BCDBA 26.AD 28.a+b,a-b,a-b 测试2 1.BBBDC 6.BCABC 11.CDBBA https://www.doczj.com/doc/482884020.html,DCB https://www.doczj.com/doc/482884020.html,(假设输入12345回车)CBB 26.ACDDC 31.CBC 34. x>=0 x0 m=n/10 36. i==j k!=i&&k!=j 37. i<10 j%3!=0 38. k!=0 k/10 continue 39. 0 z<10 100*x+10*y+z 40. i=1,m=0 m+=i 测试3 1.CDACB 6.CBDBA 11.AACC CAC 16.C 17. 1.0/(i*i) sqrt(6*s) 18. m=n r !=0 return n 19. <=n s fun(k) 测试4 1.*CDBD 6.DCDA CD 11.DCDBD 16.DCCBB 21.BBABD 26.BDDDD 31.ABCCC 36.CDDCB 41.BAABB 46.CABDC 51.题目中strcat(p1,p2)有误,因为p1指向的是字符串常量 52.DC 55.1110 56. &a[i] continue 57. i=strlen(a) ;i>=j ;i-- a[i+1]=a[i] 58. ‘\0’str1[i]-str2[i] 59. j++ ‘\\’j++ ‘\\’j++ ‘\0’ 60. j<3 b[j][i]=a[i][j] i<3 61. b[i][j+1]=a[i][j] i=0 i<2 printf(“\n”) 62. i=j+1 found=1 63. strlen(t) t[k]==c 64. BD 65. float a[10],x i<10 i<9 j<9-i a[j]>a[j+1] a[j]=a[j+1] i<10 i%5==0 66. ADD 67. DA 测试5 1.BCBAD 6.DBDDA 11.DDCCB

程序设计基础实验内容

实验指导 实验一 Visual C++6.0开发环境使用 1.实验目的 (1)熟悉Visual C++6.0集成开发环境。 (2)掌握C语言程序的书写格式和C语言程序的结构。 (3)掌握C语言上机步骤,了解C程序的运行方法。 (4)能够熟练地掌握C语言程序的调试方法和步骤 2. 实验内容 输入如下程序,实现两个数的乘积。 #include (stdio.h); int main() { x=10,y=20 p=prodct(x,t) printf("The product is : ",p) int prodct(int a ,int b ) int c c=a*b return c } (1)在编辑状态下照原样键入上述程序。 (2)编译并运行上述程序,记下所给出的出错信息。 (3)再编译执行纠错后的程序。如还有错误,再编辑改正,直到不出现语法错误为止。3.分析与讨论 (1)记下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。 (2)总结C程序的结构和书写规则。 实验二数据类型、运算符和表达式 1.实验目的 (1)理解常用运行符的功能、优先级和结合性。 (2)熟练掌握算术表达式的求值规则。 (3)熟练使用赋值表达式。 (4)理解自加、自减运算符和逗号运算符 (5)掌握关系表达式和逻辑表达式的求值 2.实验内容

(1)整数相除 #include int main() { int a=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a; printf("d=%d , e=%d ,f=%d\n",d,e,f); return 0; } (2)自加、自减运算 #include int main() { int a=5,b=8; printf("a++=%d\n",a++); printf("a=%d\n",a); printf("++b=%d\n",++b); printf("b=%d\n",b); return 0; } (3)关系运算和逻辑运算 #include int main() { int a=5,b=8,c=8; printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&& a<=c); printf("%d,%d\n",a<=b||a>=c,a==b||b==c); printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b)); return 0; } (1)在编辑状态下输入上述程序。 (2)编译并运行上述程序。 3.分析与讨论 (1)整数相除有什么危险?应如何避免这种危险? (2)分析a++和++a的区别。 (3)条件表达式和逻辑表达式的意义是什么,它们取值如何? (4)如何比较两个浮点数相等?为什么? 实验三格式化输入输出函数的使用 1.实验目的

计算机程序设计基础实验12个实验

《计算机程序设计基础》实验教学 大纲 课程编号:1303072 实验学时:24课程学分:3.5 课程类型:必修教学对象:全校各非计算机专业先修课程: ㈠实验目的与要求  本实验课程面向文法学院学生,通过本课程的学习与实验,使学生了解程序设计的一些基本概念,掌握计算机程序设计的一般方法,具备使用计算机解决实际问题的初步能力。 在实验教学中提倡“实验前要准备,实验中要认真,实验后要总结”;突出上机实践操作环节,强调在教师指导下的以学生为中心完成每次上机的具体内容和要求;对于普遍问题采用领练、辅导有机

结合的方法;尽量采用 CAI 辅助教学软件。 通过实验教学使学生能够建立计算机程序设计的基本概念;在简单的程序设计过程中掌握Visual Basic可视化设计的步骤,逐步搞清什么是对象、对象的属性以及事件和方法等重要概念。在此基础上,掌握程序设计的3种基本结构。 ㈡实验考核方式与成绩评定方法考核方式: 1.考核学生每次实验完成情况; 2.考核学生的计算机基本操作能力; 3.上机考试 成绩评定:学生应按照每次实验的要求,完成指定的实验任务,并按要求提交实验报告和实验文件,成绩评定由实验指导教师根据学生实验完成情况按照优秀、良好、中等、合格、不合格五个等级给出,实验成绩占20%计入学生课程成绩。  本学期需上交实验报告为三次,实验报告实验要求用本校实验报告册书写。要求填写学号、班级、姓名、实验指导老师、实验日期,报告内容包括实验名称、实验目的、实验内容、详细操作步骤及结果,最好写出自己的上机体会和总结。

㈢ 实验项目设置 根据教学内容和实验教学目的,共设4个实验项目: 项目一,认识Visual Basic,包括2个实验; 项目二,程序设计基础,,包括6个实验; 项目三,常用控件及界面设计,包括2个实验;项目四,文件管理,包括1个实验; 总的实验数为12个实验。 实验项目名称实验内容与学时分配总学时 数 认识Visual Basic 1.Visual Basic 程序设计环 境 2.窗体和最基 本控件 4 程序设计基础1.数据类型及函数 2.顺序程序设计 3.分支结构程序设计4.循环结构程序设计5.数组 6.过程 12 常用控件及界面设计1.常用标准控件 2.界面设计 4 文件管理1.文件管理2

C++程序设计实验报告5

《程序设计基础》 实验报告 学号:2016211990 姓名:王贯东 班级:16-计算机科学与技术-1班

学院:计算机与信息学院 实验五指针 1.实验目的要求 (1)掌握指针的概念,学会定义和使用指针变量。 (2)学会使用数组指针和指向数组的指针变量。 (3)学会使用字符串指针和指向字符串的指针变量。 (4)了解指向指针的指针的概念以及其使用方法。 (5)掌握指针、引用、数组做函数参数的传递机制。 (6)*学会使用指向函数的指针变量。 2.实验设备 Visual C++ 6.0 3.实验内容 (1)阅读下面程序,写出其运行结果。

<1> #include sub ( int x , int y , int *z ) { *z = y – x ; } void main( ) { int a,b,c; sub( 10 , 5 , &a ) ; sub( 7, a, &b ) ; sub( a, b, &c ) ; cout << a <<‘,’<< b <<‘,’<< c << endl ; } 解:输出-5,-12,-7 <2> #include #include void main()

{ int stre ( char[ ] ) ; char str [ 10 ] , *p = str ; gets ( p ) ; cout << stre ( p ) << endl ; } int stre ( char str[ ] ) { int num = 0 ; while( * ( str + num ) != ’\0’ ) num ++ ; return ( num ) ; } 解:题目库函数少了 。该正后,输入1234,输出4 (2)编写程序实现下列问题的求解。 (1)输入三个整数,按由小到大的顺序输出,然后将程序改为:输入三个字符串,按由小到大的顺序输出。 #include using namespace std; int turn (int *p1,int *p2)

java程序设计基础(第3版)实验指导答案 第四章

实验16 public class shiyan16 { public static void main(String[] args) { int i; int []a; a=new int[10]; for(i=0;i<=a.length-1;i++) System.out.print("a["+i+"]="+a[i]+" "); System.out.print("\n"); for(i=a.length-1;i>=0;i--) { a[i]=i; System.out.print("a["+i+"]="+a[i]+" "); } } } //定义一个长度为10的整形数组,输出元素的内容,再对数组元素进行赋值 实验17 import java.util.*; public class shiyan17 { public static void main(String[] args) { int i,max,min; int []a=new int[5]; Scanner reader=new Scanner(System.in); System.out.println("从键盘输入5个整数"); for(i=0;i<5;i++) a[i]=reader.nextInt(); max=a[0]; min=a[0]; for(i=1;i<5;i++) { if(a[i]>max) max=a[i]; if(a[i]

程序设计基础实验指导书

实验1 C程序的运行环境和C语言的数据类型⒈ 实验目的 ⑴了解在具体的语言环境下如何编辑、编译、连接和运行一个C程序。 ⑵通过运行简单的C程序,初步了解C源程序的特点。 ⑶掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它 们赋值的方法。 ⑷掌握不同的类型数据之间赋值的规律。 ⑸学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++) 和自减(--)运算符的使用。 ⒉ 实验内容和步骤 ⑴检查所用的计算机系统是否已安装了C编译系统并确定他所在的子目录。 ⑵进入所用的集成环境。 ⑶熟悉集成环境的界面和有关菜单的使用方法。 ⑷输入并运行一个简单的、正确的程序。 ⒊ 实验题目 ⑴ 输入下面的程序 # include “stdio.h” void main() { printf(“This is a c program.\n”); } 程序无误,其运行的结果为:(请填写) ⑵ 输入并编辑一个有错误的C程序。 # include “stdio.h” void main() { int a,b,sum a=123; b=456; sum=a+b print(“sum is %d\n”,sum); } 运行后程序出现几处错误,请分别指出,并逐一更改:

⑶若k,g均为int型变量,则下列语句的输出为,: # include “stdio.h” void main() { int k, g; k=017; g=111; print(“%d\t”,++k); printf(“%x\n”,g++); } 运行结果为:

⒈ 实验目的 ⑴掌握C语言中赋值语句的使用方法。 ⑵掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。 ⑶进一步熟悉C程序的编辑、编译、连接和运行的过程。 ⒉ 实验内容 用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。问在键盘上如何输入? 请书写程序 #include “stdio.h” void main() { int a,b; float x,y; charc1,c2; scanf(“a=%d b=%d”,&a,&b); scanf(“%f %e”,&x,&y); scanf(“ %c %c”,&c1,&c2); printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”); } 运行,并按照如下方式在键盘上输入: A=3 b=7 8.5 71.82 A a 运行结果: A=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a 思考:为什么在第三个scanf函数双引号第一个字符为空格字符,如果没有这个空格字符,而写成:scanf(“%c %c”,&c1,&c2); 按以上的输入、输出将如何变化? 请分析原因

C语言程序设计基础实验报告8

实验8 指针 一、实验目的 1、通过实验进一步掌握指针的概念,会定义和使用指针变量; 2、能正确使用数组的指针和指向数组的指针变量; 3、能正确使用字符串的指针和指向字符串的指针变量; 二、实验内容和步骤 1、改错 (1)指出下面程序错误的原因. main( ) { int x=10,y=5,*px,*py; px=py; px=&x; py=&y; printf("*px=%d,*py=%d,*px,*py); } #include void main() { int x=10,y=5,*px,*py; px=&x; py=&y; printf("px=%d,py=%d",*px,*py); } (2)下面的程序试图有如下运行结果: which style you want to : Capital ( c ) or uncapital ( a ):c ↙ COMPUTER Which sytle you want to : Capital ( c ) or uncapital ( a ) : u↙ computer 请调试下面的程序,使其有如上执行结果. #include main () { char s*;char c; printf("which style you want to :ln"); printf("capital ( c ) or uncapital(a):"); c=getchar(); …… if(c='c')strcpy(s,"COMPUTER"); else strcpy(s,"computer"); put(s); } #include #include #include void main() { char *s;char c; printf("which style you want to :\n"); printf("capital(c) or uncapital(a):"); c=getchar();

周信东主编版C语言程序设计基础实验一实验报告

周信东主编版C语言程序设计基础实验一实验报告 The latest revision on November 22, 2020

实验1 C程序的运行环境和最简单的C程序设计 学号:姓名:莫新锋实验日期: 一、实验目的和要求 (1)熟悉C语言程序开发环境(Visual C++),了解开发环境中的编辑、编译、链接和运行命令。 (2)掌握在C语言开发环境中如何编辑、编译、链接和运行一个标准C语言程序。(3)掌握简单C语言程序的查错方法,理解编译错误信息的含义。 (4)掌握C语言数据类型的概念,熟悉如何定义一个整型、字符型、实型变量,以及如何对它们进行赋值。 (5)了解下列命令及函数:#include <>、main、printf、scanf。 (6)通过运行简单的程序,熟悉C语言的基本格式规范,并初步了解它的结构特点。 二、实验内容 实验指导书中的实验一的“基础部分”题目。 三、实验步骤及结果 (一)VC 实验平台的使用 1.简要描述在VC环境下开发一个C程序的主要步骤,并粘贴主要操作窗口的截图。【请填空。截图的操作方法:先点击欲截取的窗口使之置于屏幕最前方,并作适当的缩放,再按快捷键+将窗口截取到内存中,然后打开word将光标移到欲插入图片的位置上进行粘贴即可。也可对图片进行适当剪切,裁剪掉多余部分。注意:截图上必须有你自己的学号或姓名等信息,否则视为抄袭。】 主要步骤: 1: 创建一个工作文件夹。 2:启动 Visual C++。 3:新建一个 C 语言源程序。 4:编辑源程序 5:保存源程序 2.编译、链接、运行程序 (1)输入源程序后,如何编译该程序 【请填空】 输入好后在编译器中有一个编译按钮按一下就能编译 (2)如何链接程序生成可执行文件 【请填空】 得到后缀为obj的目标程序后选择build菜单下的build选项,表示要求连接并建立一个可执行文件 (3)如何运行程序查看结果 【请填空】

程序设计基础实验指导书

程序设计基础实验指导书

前言 本指导书是针对计算机专业及非计算机专业函授生的需要提供的程序设计基础实验指导书。前面十个实验涉及的是C语言的基础内容,要求学生必须熟练掌握。后面三个综合性实验能提高学生对较复杂问题的分析及程序设计能力。另外每个实验后面都有思考题,主要目的是进一步巩固所学的知识。在本指导书的第三、四部分给出了turbo C的常用函数表和错误信息表,目的是方便学生编程并查阅所需要函数并尽快找出错误的根源。 上机内容中有的给出了参考程序(主要是前面几个实验),更多的需要学生自己编写程序,所以要求学生必须在每次实验前认真预习本次实验内容,编写好程序方能参加实验。 编者 2009.8

Turbo C集成编译环境 Turbo C集成编译环境是一个集程序编辑、编译、连接、调试为一体的C程序开发软件,它具有速度快、效率高、功能强、使用方便等优点。用户在这个集成环境下,可以利用内部的编辑器进行全屏幕编辑,利用窗口功能进行编译、连接、调试、运行、环境设置等工作。 如果你的计算机系统已经安装了Turbo C编译系统,则在DOS命令状态下键入命令: TC或TC filename 其中filename是用户需要进行编辑、编译、连接、运行的C程序的文件名。在前者情况下,该文件名可以在进入集成环境后再指定。 如果是在windows环境下启动TC,只需要找到TC.exe文件双击即可。 进入Turbo C集成环境后,首先在屏幕上显示Turbo C主菜单窗口,如图1所示。 图1 由图1可以看出,在该菜单下,有八个菜单条目,即提供了八种选择。每一个条目的意义如下: File 处理文件(包括装入、存盘、选择、建立、换名写盘),目录操作(包括列表、改变工作目录),退出系统及调用DOS。 Edit 建立、编辑源文件 Run 控制运行程序。如果程序已经编辑连接好,且Debug/Source Debugging以及Option/Compiler/Code generation/OBJ Debug Information开关置为ON,则可以用此菜初始化调试阶段。 Compile 编译并生成目标程序与可执行文件。 Project 允许说明程序中包含哪些文件的管理条目(Project)。

实验1 程序设计基础

实验报告 实验目的: 通过教师示范、学生模仿的方式,使学生逐渐熟悉Visual Basic6.0集成开发环境的基本使用方 法及VB程序开发的基本过程,同时熟悉VB语言基础中的常量、变量、运算符、常用内部函数及简单控件的基本使用方法。 教学要求: 1.掌握Visual Basic程序的开发过程,能够运行一个完整的Visual Basic程序 2.了解Visual Basic程序的工作机制 3.掌握变量的定义及使用,常用算术和字符串运算符的使用 4.熟悉常用函数的使用方法 5.掌握数据输入输出方法 6.掌握常用控件(文本框、标签、命令按钮、计时器)的使用 实验内容: 项目一:界面设计 【实验1-1】利用VB工具箱中的控件,设计一个QQ登录界面或Windows计算器(“开始”->“程序”->“附件”->“计算器”)。不写代码。 提示:Windows的计算器的菜单用菜单编辑器设计 项目二:输入、输出及运算 任选以下3个实验中的1个完成(可多余1个) 【实验1-2】编写程序,试验Visual Basic中的三种除法运算符(/、\、Mod)的区别。参考程序如附件sy1-2.exe所示。 【实验1-3】输入圆的半径,计算圆的面积。要求半径通过InputBox函数输入,结果在窗体中输出。 【实验1-4】将任意三位正整数进行倒序输出。要求用InputBox函数输入,结果在窗体中输出。

提示:利用数学运算中的Mod、\等运算求得三位数的个、十、百位数值,然后倒序组合。 项目三:文本框、标签及常用内部函数的使用 任选以下3个实验中的1个完成(可多余1个) 【实验1-5】设计一个倒计时程序,内容不限。参考附件sy1-5.exe。 提示:目标日期-date,如5.1倒计时:#5/1/2014# - Date 【实验1-6】文本框及常用内部字符串函数的基本使用。 建立如附件所示用户界面,要求将文本框更名为T1,4个命令按钮名称分别命名为C1~C4。编写代码实现对应转换。参考附件sy1-6.exe。 提示:要使文本框以密码字符方式出现,设置其PasswordChar属性。 【实验1-7】常用数学函数的使用。参考附件sy1-7.exe。 建立如附件所示用户界面,要求将两个文本框更名为T1、T2,6个命令按钮名称分别命名为C1~C6。编写代码实现对应函数求值。 项目四:计时器控件的应用 任选以下3个实验中的1个完成(可多余1个) 【实验1-8】“模拟彩票摇号器”设计(界面可自行设计)。参考附件1-8.exe。 提示:用Rnd函数产生随机数作为随机摇号的结果,每一个摇出的号码在[0.9]范围 【实验1-9】“进度条”设计。(使用两个形状控件Shape,先设置其FillStyle为0,再设置其FillColor) 思路:在计时器计时过程中不断调节长方形的长度,达到进度不断增加效果。参考附件1-9.exe。 【实验1-10】“时钟”设计。参考附件1-10.exe。 提示:1、用三条直线Line分别表示时、分、秒指针,用形状Shape控件做时钟外圆 2、在每一秒钟用Time函数获取系统当前时间 3、用数学方法计算当前时刻时、分、秒指针应指向的位置(定位该直线的两端点坐标) 作业要求: 1、将你所做实验按实验编号命名(如exp1-1) 2、将完成的实验源文件(工程、窗体文件)放入以自己 学号命名的文件夹中压缩,然后在skyclass网站对 应作业位置上传。 3、作业最迟上交期限:第五周星期天

相关主题
文本预览
相关文档 最新文档