合工大 程序设计与艺术 实验三

合工大 程序设计与艺术 实验三
合工大 程序设计与艺术 实验三

《程序设计艺术与方法》课程实验报告

四、实验结果与分析(源程序及相关说明)

思考:

判线段相交时,如果有个线段的端点在另一条线段上,注意可能与另一条线段上的端点重合,思考这样的情况怎么办。

用跨立的方法。线段相交满足且只需满足如下两个条件就可以了:

(1)两条线段相互跨立;

(2)一条线段的一个端点在另一条线段上。

如果两线段相交,则两线段必然相互跨立对方,若p1p2跨立p3p4,则(p1-p3)×(p4-p3)*(p2-p3)×(p4-p3)>0,当(p1-p3)×(p4-p3)=0时,说明p1,p3,p4共线,但就是因为已经通过了快速排斥实验,所以点p1一定在线段p3,p4上。所以判断线段p1p2,p3p4相交的依据就是(p1-p3)×(p4-p3)*(p2-p3)×(p4-p3)>=0。

#include

#include

using namespace std;

typedef pair POINT;

double direction(POINT p,POINT p1,POINT p2)

{

POINT v1,v2;

v1、first =p2、first -p、first ;

v1、second=p2、second-p、second;

v2、first =p1、first -p、first;

v2、second=p1、second-p、second;

return v1、first*v2、second-v1、second*v2、first;

}

bool on_segment(POINT p,POINT p1,POINT p2)

{

double min_x=p1、first

double max_x=p1、first>p2、first?p1、first:p2、first;

double min_y=p1、second

最短路问题:

#include

#include

#include

#include

using namespace std;

typedef pairPOINT;

double direction(POINT p,POINT p1,POINT p2)

{

POINT v1,v2;

v1、first=p2、first-p、first;

v1、second=p2、second-p、second;

v2、first=p1、first-p、first;

v2、second=p1、second-p、second;

return v1、first*v2、second-v1、second*v2、first;

}

bool on_segment(POINT p,POINT p1,POINT p2)

{

double min_x=p1、first

double max_x=p1、first>p2、first?p1、first:p2、first;

double min_y=p1、second

double max_y=p1、second>p2、second?p1、second:p2、second;

for (int i=0;i

{

cout<

}

}

int main()

{

vectorpv;

double x,y;

int i;

cout<<"请输入5个点:"<

for(i=1;i<5;i++)

{

cout<<"No"<

cin>>x>>y;

pv、push_back(make_pair(x,y));

}

cout<

find_convex_hull(pv);

system("Pause");

return 0;

}

运行结果:

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

实验报告 工学院土木工程专业09级2011至2012学年度第1学期学号:xxxxxx姓名:xxxxxx 2011 年10月08日第3~4节综合楼325教室 实验目的:

a的字节数为sizeof (a)或sizeof (int ),用printf 函数语句输出各类型变 量的长度(字节数)。 ①输入程序如下 in clude int mai n() {int a,b,i,j,k,r,s,t,u,v,w,x,y,z; float d,e; char c1,c2; double f,g; long m, n; un sig ned int p,q; a=61;b=62; c1='a';c2='b'; d=3.56;e=-6.78; m=50000;n=-60000; p=32768;q=40000; i=sizeof(a);j=sizeof(b); k=sizeof(d);r=sizeof(e); s=sizeof(c1);t=sizeof(c2); u=sizeof(f);v=sizeof(g); w=sizeof(m);x=sizeof( n); y=sizeof(p);z=sizeof(q); prin tf("a=%d,b=%d\nd=%d,e=%d\nc 1= %d,c2=%d\n",i,j,k,r,s,t); prin tf("f=%d,g=%d\nm=%d, n=%d\nmp=%d,q=%d\n",u,v,w,x,y,z); } 结 果如 下: (2)设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体 积。编程序,用scanf输入数据,输出计算结果。输出时要有文字说明,去小数点后两位数字。 ①编写程序如下: #i nclude int mai n() {float h,r,l,s,sq,vq,vz; float pi=3.141526; prin tf("Please in put r,h:"); sca nf("%f,%f",&r,&h); l=2*pi*r; s=r*r*pi; sq=4*pi*r*r; vq=3.0/4.0*pi*r*r*r; vz=pi*r*r*h; prin tf("The circumfere nce:l=%6.2f\n",l); prin tf("The area of thee circle:s=%6.2f\n ",s); prin tf("The superficial area of the ball:sq=%6.2f\n ",sq); prin tf("The volume of the ball:v=%6.2f\n",vq); prin tf("The volume of the cyli nder:vz=%6.2f\n ",vz); return 0; L

西工大大学物理学习题册答案

第一章 真空中的静电场 一、选择题 ; ;;;;;;; ; 二、填空题 1. 3 0281R qb επ;由圆心指向缺口。 2. 0εq ;21Φ<Φ。 3. 均匀带电薄球壳。 4. 1 22 10 h h E E --ε;312C/m 1021.2-?。 5. N/C 100;2 -9 C/m 10.858?。 6. V 135-;V 45。 7. R Q q U q E 0006πε= ;00=∞C U q ;R Q q U q CE 0006πε-=;R Q q U q E 0006πε=∞。 8. 41 2 20 R x q +πε; 2 322 ) (41R x qx πε +; R 22; N/C 4333620=R πεq 。 9. 有源场;无旋场(或保守场)。 三、问答题 答:E 电场强度从力的角度描述电场的性质,矢量场分布;U 从能和功的角度描述电场的性质,标量场。 E 与U 的关系为: U E grad -=?,?∞?=a d l E U a ? ? 使用叠加原理计算电场强度,注意先将各个场源产生的电场强度分解到各坐标轴,然后再叠加。 使用叠加原理计算电势,要注意电势零点的选择。 四、计算与证明题: 1.证:(1) CD BC AB E E E E ? ???++= 根据对称性分布,两段直导线AB 和CD 在O 点产生的电场强度大小相等,方向相反,则0=+CD AB E E ? ?。 在半圆形BC 上取电荷元d l ,则l q d d λ=,相应的在O 点产生d E 为 2 04d d a l E πελ= 由于对称分布分析可知0=x E ,设d E 和y 轴夹角为θ,且有θd d a l = θθελ θελd cos 4πcos 4πd d 020y a a l E == a a E y 02202πd cos 4πελθθελππ==?- j a εE ??0 2πλ=∴ 得证

c语言实验报告4 循环结构程序设计

《C程序设计》课程实验报告 学院:班级:姓名:学号: 实验设备:计算机1台实验日期:2011年3月1日 实验项目名称循环结构程序设计 实验目的 掌握使用三种循环语句实现循环结构的方法。 实验要求:能用while~ do~while for 三种循环语句实现循环结构,编写简单的程序,掌握这三种循环语句。 实验内容(包括步骤):1.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半另一个,以后每天早晨都吃剩下的一半另一个,到第十天早晨再想吃时,就剩一个桃子。问第一天共摘了多少桃子。 要求:分别用三种语句编写程序。 2.编写程序验证下列结论:任何一个自然数n的立方都等于n个连续奇数之和。例如:13=1;23=3+5;33=7+9+11;43=13+15+17+19。 要求:程序对每个输入的自然数计算并输出相应的连续奇数,直到输入的自然数为0时止。 3.编写程序,求1-3+5-7+…-99+101的值。 4.编写程序,求e的值。e ≈ 1+1/1!+1/2!+1/3!+1/4!+…+1/n! (1)用for循环,计算前50项。 (2)用while循环,要求直至最后一项的值小于10-6。 5.编写程序,输出从公元1600年至2000年所有闰年的年号。每输出5个年号换一行。判断公元年是否为闰年的条件是:

(1)公元年数如能被4整除,而不能被100整除,则是闰年。 (2)公元年数如能被400整除也是闰年。 6.编写程序,打印以下图形: * *** ***** ******* ***** *** * 7.输入一行字符,统计输入的字符中字母‘a’出现的次数(包括大小写)。 8.我国1991年有11.6亿人口,要求根据人口平均年增长率,计算从1991年算起经过多少年后我国的人口增加到15亿。 9.有一个四位数F=BBAA,前二位数相同,后二位数相同,此数又是某个自然数T的平方,求此数。 10.分解一个正整数的所有质因数 调试与结果测试:部分程序出现错误经过调整后调试正常,达到题目要求的结果,运行正常。

实验三综合程序设计方案(一)

实验三综合程序设计(一) 一、实验目的 1熟练掌握子程序的结构。 2?掌握子程序设计的思想、方法及上机调试过程。 3 ?熟练掌握系统功能调用的作用。 4?掌握系统功能调用的思想、方法。 二、实验准备知识 1. 8086/8088汇编语言指令及伪指令的用法 2?子程序设计的思想和方法 (1)子程序是功能相对独立的程序段,它可以实现源程序的模块化,简化源 程序结构,提高编程效率 (2)子程序定义:禾I」用过程伪指令PROC和ENDP,格式如下: 过程名PROC [NEAR|FAR] ……;过程体 过程名ENDP 其中:可选的参数指定过程的调用属性。没有指定过程属性,则采用默认属性NEAR。 NEAR属性:段内近调用,子程序只能被相同代码段的其他程序调用 FAR属性:段间远调用,子程序可以被相同或不同代码段的程序调用 (3)主程序(调用程序)调用子程序(被调用程序):利用CALL指令 (4)子程序返回主程序:利用RET指令 (5)保护现场:子程序开始处应该保护子程序中使用的寄存器(通常利用堆栈),子程序返回前相应进行恢复。 (6)子程序中对堆栈的压入和弹出操作通常成对使用,以保持堆栈的平衡。 (7)子程序允许嵌套和递归

(8)处理好子程序与主程序之间的参数传递问题:利用寄存器、内存缓冲区 及堆栈。 3. DOS和BIOS中断调用是机器及操作系统提供的中断调用功能 4?系统功能调用的步骤: ⑴在AH寄存器中设置系统功能调用号 ⑵ 在指定寄存器中设置入口参数 ⑶ 用中断调用指令(INT i8 )执行功能调用 ⑷ 根据出口参数分析功能调用执行情况 5.DOS利用21H号中断提供给用户近百个系统功能,主要包括设备管理、 目录管理和文件管理三个方面的功能版权文档,请勿用做商业用途 (1 )输入一个字符,01H号功能调用 (2)输出一个字符,02H号功能调用 (3)输入一个字符串,0AH号功能调用 (4)输出一个字符串,09H号功能调用 注意它们的入口参数及出口参数 6.BIOS也以中断服务程序的形式,向程序员提供系统的基本输入输出程序 BIOS功能更加基本,且与操作系统无关,当DOS没有启动或不允许使用DOS 功能调用时,可以使用BIOS功能调用版权文档,请勿用做商业用途 (1)键盘I/O中断调用——INT 16H (2)显示器输入中断调用——INT 10H 注意它们的入口参数及出口参数 三、实验性质 本实验为综合性实验。 四、实验学时 本实验学时为2学时。

实验一简单程序设计实验

实验一:简单程序设计实验 (1)编写一个 32 位无符号数除法的程序,要求将存放在 NUM1 中的 32 位无符号数与存放 在 NUM2 中的 16 位无符号数相除,结果存放在 NUM3 和 NUM4 中。 程序流程图略。 参考源程序: DATA SEGMENT NUM1 DD 2A8B7654H NUM2 DW 5ABCH NUM3 DW ? NUM4 DW ? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA ;数据段寄存器初始化 MOV DS,AX MOV AX, WORD PTR NUM1 MOV DX, WORD PTR NUM1+2 DIV NUM2 MOV NUM3,AX MOV NUM4,DX MOV AH,4CH ;正常返回DOS 系统 INT 21H CODE ENDS END START (2)编写一个拆字程序。要求将存放在 ARY 单元的 2 位十六进制数 X 1X 2 拆为 X 1 和 X 2 两 部分,并以 0X 1 和 0X 2 的形式分别存入 ARY+1 和 ARY+2 单元中。 程序流程图略。 参考源程序: DATA SEGMENT ARY DB 2AH,?,? DATA ENDS CODE SEGMENT ASSUME DS:DATA, CS:CODE START: MOV AX,DATA MOV DS,AX MOV SI,OFFSET ARY ;取ARY 的偏移地址 MOV AL,[SI] ;取16进制数至AL

MOV BL,AL AND AL,0F0H ;取16进制数的高四位,即X1 SHR AL,4 MOV [SI+1],AL ;存0X1 MOV AL,BL AND AL,0FH ;取16进制数的低四位,即X2 MOV [SI+2],AL ;存0X2 MOV AH,4CH INT 21H CODE ENDS END START

合工大快速原型课后复习题及解答

第二章光固化快速成型工艺 1 .叙述光固化快速成型的原理。 氦-镉激光器或氩离子激光器发出的紫外激光束在控制系统的控制下按零件的各分层截面信息在光敏树脂表面进行逐点扫描,使被扫描区域的树脂薄层产生光聚合反应而固化,形成零件的一个薄层。一层固化完毕后,工作台下移一个层厚的距离,以使在原先固化好的树脂表面再敷上一层新的液态树脂,刮板将粘度较大的树脂液面刮平,然后进行下一层的扫描加工,新固化的一层牢固地粘结在前一层上,如此重复直至整个零件制造完毕,得到一个三维实体原型。 2 .光固化快速成型的特点有哪些? 优点:(1)成型过程自动化程度高; (2)尺寸精度高; (3)优良的表面质量; (4)可以制作结构十分复杂的模型、尺寸比较精细的模型; (5)可以直接制作面向熔模精密铸造的具有中空结构的消失型; (6)制作的原型可以一定程度地替代塑料件。 缺点:(1)制件易变形,成型过程中材料发生物理和化学变化; (2)较脆,易断裂性能尚不如常用的工业塑料; (3)设备运转及维护成本较高,液态树脂材料和激光器的价格较高; (4)使用的材料较少,目前可用的材料主要为感光性的液态树脂材料; (5)液态树脂有气味和毒性,并且需要避光保护,以防止提前发生聚合反应,选择时有局限性; (6)需要二次固化 3.光固化材料的优点有哪些?光固化树脂主要分为几大类? 优点:(1)固化快 (2)不需要加热 (3)可配成无溶剂产品 (4)节省能量。 (5)可使用单组分,无配置问题,使用周期长。 (6)可以实现自动化操作及固化,提高生产的自动化程度,从而提高生产效率和经济效益。分类:(1)自由基光固化树脂 (2)阳离子光固 (3)混杂型光固化树脂 4.光固化成型工艺过程主要分为几个阶段,其后处理工艺过程包括哪些基本步骤? 阶段:前处理、原型制作和后处理三个阶段。 后处理步骤:(1)原型叠层制作结束后,工作台升出液面,停留5~10min(晾干); (2)将原型和工作台一起斜放景干,并将其浸入丙酮、酒精等清洗液中,搅动并刷掉残留的气泡,45min后放入水池中清洗工作台; (3)由外向内从工作台上取下原型,并去除支撑结构; (4)再次清洗后置于紫外烘箱中进行整体后固化。 5.光固化成型的支撑结构的类型有哪些?支撑的作用是什么? 类型:斜支撑、直支撑、单腹板、双腹板、十字壁板。 作用:支撑结构除了确保原型的每一结构部分都能可靠固定之外,还有助于减少原型在制作过程中发生的翘曲变形。

实验四分支和循环程序设计实验(精)

实验四分支和循环程序设计实验 一、实验要求和目的 1.熟悉汇编语言程序设计结构; 2.熟悉汇编语言分支程序基本指令的使用方法; 3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法; 4.了解汇编语言循环程序设计的基本流程; 5.熟悉汇编语言循环基本指令的使用方法; 6.掌握利用汇编语言的循环指令完成循环程序设计方法。 二、软硬件环境 1、硬件环境:计算机系统 windows; 2、软件环境:装有 MASM、DEBUG、LINK、等应用程序。 三、实验涉及的主要知识 在实际应用中,经常根据一些条件来选择一条分支执行。汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号相减而导致的结果来进行。 1.无条件转移指令 JMP 无条件转移指令 JMP是使程序无条件转移至目标处,又分为段内转移、段间转移。 2.条件转移指令 JXX 条件转移指令可分为三大类: 1).简单条件转移指令指令。根据单个标志位的状态判断转移条件。标志位指令转移条件意义 CF JC CF=1 有进位/借位 JNC CF=0 无进位/借位 ZF JE/JZ ZF=1 相等/等于 0 JNE/JNZ ZF=0 不相等/不等于 0 SF JS SF=1 是负数 JNS SF=0 是正数 OF JO OF=1 有溢出 JNO OF=0 无溢出 PF

JP/JPE PF=1 有偶数个 1 JNP/JPO PF=0 有奇数个 1 2).无符号数条件转移指令。 假设在条件转移指令前使用比较指令,比较两个无符号数A,B,指令进行的的操作是 A-B,其转移指令如下: 指令转移条件意义 JA/JNBE CF=0 AND ZF=0 A>B JAE/JNB CF=0 OR ZF=1 A>=B JB/JNAE CF=1 AND ZF=0 AB JGE/JNL SF=OF OR ZF=1 A>=B JL/JNGE SF OF AND ZF=0 A

实验3简单的程序设计

实验3简单的程序设计 实验目的: 1.掌握表达式、赋值语句的正确书写规则。 2.掌握VB变量的定义和使用,表达式和常用函数的使用。 3.掌握InputBox与MsgBox的使用。 实验3.1函数考察 实验任务: 考察下列函数的值。 Round(-3.5) Round(3.5) Chr(66) Asc ("c") Asc(Chr(99)) Chr(Asc("K")) Ucase$("abcdefg") Lcase(“ABC”) Str(123.45) Val(“123AB”) Len(“123程序设计ABC”) LenB(“123程序设计ABC”) Ltrim(“ ABC”) String(3, “ABC”) Instr(“EFABCDEFG”, “ef”) Instr(2,“EFABCDEFG”, “ef”,1) Date() Now() Time() 实验步骤: 先自己分析以上函数的功能和可能的结果,然后在立即窗口用Print方法求出相应函数的值,对照比较自己的判断。 22

实验3.2表达式考察 实验任务: 考察下列表达式的值。 Dateadd(“m”,1,#1/30/2000#) Datediff(“y”,#12/03/1999#,#1/03/2000#) ‘计算时间间隔多少日 123 + Mid(“123456”,3,2) 123 & Mid(“123456”,3,2) Ucase(Mid(“abcdefgh”,3,4)) 16 / 4 – 2 ^ 5 * 8 / 4 MOD 5 \ 2 实验步骤: 先自己分析表达式的功能和可能的结果,然后在立即窗口用Print方法求出相应表达式的值,对照比较自己的判断。 实验3.3简单打印图形 实验任务: 使用Print方法、Tab函数和String函数设计一个过程,显示如图3-1所示的图形,并将结果保存到文件中。 图3-1 实验3.2运行界面 参考代码如下: Private Sub Form_Load() Print Tab(15); String(1, "1") Print Tab(14); String(3, "2") Print Tab(13); String(5, "3") Print Tab(12); String(7, "4") End Sub 操作提示: 应先将Form窗体的AutoRedraw属性值设为True。

循环结构程序设计实验报告

嘉应学院计算机学院 实验报告 课程名称程序设计基础实验名称实验地点 指导老师实验时间提交时间 班级姓名座号 一、实验目的和要求 (1)熟悉掌握用while语句、do…while语句和for语句实现循环的方法。 (2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 (3)进一步学习调试程序。 二、实验环境和方法 实验方法: (一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。 (二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。 (三)根据实验内容,编译程序。 实验环境:Windows xp Visual C++6.0 三、实验内容及过程描述 实验步骤: ①进入Visual C++ 6.0集成环境。 ②输入自己编好的程序。 ③检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错, 及时改正。 ④进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”, 根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果 是否正确,应运行多次,分别检查在不同情况下结果是否正确。 实验内容:编译以下题目的程序并调试运行。 (1)输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。 编写程序如下: #include int main() { char c; int letters=0,space=0,digit=0,other=0; printf("请输入一行字符:\n"); while((c=getchar())!='\n')

程序设计综合实验报告册

西南交通大学程序设计综合实验 实验地点: 实验学期: 学生班级: 学生学号: 学生姓名: 任课教师:龚勋 信息科学与技术学院 2012年4月

实验一:ATM机用户操作界面、业务逻辑编写 ●实验目的及内容 1、根据ATM的工作流程编写用户界面,掌握文本用户菜单的编写方法; 2、根据ATM的工作流程编写业务罗杰,掌握搭建一个完整的应用系统的方法及软件编程思想。 ●实验要求 1、除提示用户输入的数字外,界面上不能响应、出现任何其他用户输入; 2、每个菜单界面独立显示,不要出现多组菜单重叠显示的现象; 3、每个业务逻辑可以多次执行,直到用户选择退出业务。 ●实验步骤及核心代码 void main() { int bExit=0; char in; //控制语言的选择 while(!bExit) { MainMenu(); in=getch(); system("cls"); switch(in) { .....语言选择} } } void MainMenu() {......} void LanguageMenu(int t) {

int cExit=0; char in; while(!cExit) { if(t==1) { ...... //显示中文功能选择菜单 in=getch(); system("cls"); switch(in) { 中文功能函数的选择} } else { 同上,只需将中文函数改为英文函数} } } //中文的查询函数 void Query1() { printf("======================\n") printf(“此账户有%.2f元\n",sum); //对sum已初始化system("pause"); system("cls"); } //中文的存钱函数 void Deposit1(float *p) { float x; printf("================================\n"); printf(" 输入您要存的数目:"); scanf("%f",&x); *p+=x; system("pause"); system("cls"); } //中文的取钱函数 void WithDraw1(float *p) { float y; int a=1; printf("====================================\n"); printf("输入您要取的数目: "); while(a) { scanf("%f",&y); if(y>sum)

西工大 大学物理学习题册答案

第一章 真空中的静电场 一、选择题 1.C ;2.B ;3.C ;4.B ;5.B ;6.C ;7.E ;8.AD ; 9.B ;10.BD 二、填空题 1. 3 02 81 R qb επ;由圆心指向缺口。 2. εq ;21Φ<Φ。 3. 均匀带电薄球壳。 4. 1 2210 h h E E --ε;312C/m 1021.2-?。 5. N/C 100;2-9C/m 10.858?。 6. V 135-;V 45。 7. R Q q U q E 0006πε= ;00=∞C U q ;R Q q U q CE 0006πε- =;R Q q U q E 0006πε= ∞。 8. 412 2 R x q +πε ; 2 3 2 2 )(41R x qx πε +; R 2 2; N /C 433362 0=R πεq 。 9. 有源场;无旋场(或保守场)。 三、问答题 答:E 电场强度从力的角度描述电场的性质,矢量场分布;U 从能和功的角度描述电场的性质,标量场。 E 与U 的关系为: U E grad -= ,?∞?=a d l E U a 使用叠加原理计算电场强度,注意先将各个场源产生的电场强度分解到各坐标轴,然后再叠加。 使用叠加原理计算电势,要注意电势零点的选择。 四、计算与证明题: 1.证:(1) CD BC AB E E E E ++= 根据对称性分布,两段直导线AB 和CD 在O 点产生的电场强度大小相等,方向相反,则0=+CD AB E E 。 在半圆形BC 上取电荷元d l ,则l q d d λ=,相应的在O 点产生d E 为 2 04d d a l E πελ= 由于对称分布分析可知0=x E ,设d E 和y 轴夹角为θ,且有θd d a l = θθελ θελd cos 4πcos 4πd d 02 0y a a l E = = a a E y 02 2 2πd cos 4πελ θθελ ππ= = ?- j a εE 02πλ = ∴ 得证

C语言循环结构程序设计实验报告

甘肃政法学院 本科生实验报告 ( 五) 姓名:赵明翔 学院:公安技术学院 专业:安全防范工程 班级: 2015级安全防范工程班 实验课程名称:程序设计 实验日期:2016年月日 开课时间:2015学年第二学期

(2)输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字李方和等于该数本身。例如,153是水仙花数,因为153=12+53+33程序如下: #include int main() { int i,j,k,n; printf("paicissus numbers are"); for (n=100;n<1000;n++) { i=n/100; j=n/10-i*10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) printf("%d",n); } printf("\n"); return 0; } 运行结果: (3)猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又

多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下了1个桃子了。求第一天共摘了多少桃子。 程序如下: #include int main() { int day,x1,x2; day=9; x2=1; while(day>0) {x1=(x2+1)*2; x2=x1; day--; } printf("total=%d\n",x1); return 0; } 运行结果: (4)①用牛顿迭代法求方程0634223=-+-x x x 在1.5附近的根. #include #include int main() {double x1,x0,f,f1; x1=1.5; do {x0=x1; f=((2*x0-4)*x0+3)*x0-6; f1=(6*x0-8)*x0+3; x1=x0-f/f1;

安徽工业大学大学物理练习册参考答案

安工大物理答案 练习一机械振动 (一) 参考解答 1. (C) ; 2. (B) 3.)2 12/5cos(1022π-?=-t x (SI) 4. 3.43 ( s ) ;-2π/3 . 5. 解:k = m 0g / ?l 25.12N/m 08 .08 .91.0=?= N/m 11 s 7s 25 .025.12/--== =m k ω 5cm )7 21(4/2222 020=+=+=ωv x A cm 4/3)74/()21()/(tg 00=?--=-=ωφx v ,φ =0.64 rad )64.07cos(05.0+=t x (SI) 6. 周期25.0/2=π=ωT s ,振幅A = 0.1 m ,初相φ = 2π/3, v max = ω A = 0.8π m/s ( = 2.5 m/s ), a max = ω 2A = 6.4π2 m/s 2 ( =63 m/s 2 ).

练习二机械振动(二) 参考解答 1.(D) ; 2. (C ) . 3.)2 1cos(04.0π-πt ; 4.3/2π± ; 5. 解:(1) 势能221kx W P = 总能量22 1 kA E = 由题意,4/212 2kA kx =,21024.42 -?±=± =A x m (2) 周期T = 2π/ω = 6 s 从平衡位置运动到2 A x ±= 的最短时间?t 为T /8. ∴?t = 0.75 s . 6. 解:x 2 = 3×10- 2 sin(4t -π/6) = 3×10- 2cos(4t -π/6-π/2) = 3×10- 2cos(4t - 2π/3). 作两振动的旋转矢量图,如图所示. 由图得:合振动的振幅和初相分别为 A = (5-3)cm = 2 cm ,φ = π/3. 合振动方程为x = 2×10- 2cos(4t +π/3) (SI) x O ω π/3-2π/3 A 1A 2 A

循环程序设计实验

循环程序设计实验 实验目的 1、掌握循环程序的设计方法。 2、掌握比较指令、转移指令和循环指令的使用方法。 3、进一步掌握调试工具的使用方法。 实验预习要求 复习比较指令、条件转移指令和循环指令。 复习循环程序的结构、循环控制方法等知识。 读懂“实验内容”中给出的将十进制数转换为二进制数以及将二进制数转换为十进制数的程序。 根据“实验内容”中给出的流程图和程序框架编写源程序,以便上机调试。 从“实验习题”中任选一道题目,编写源程序,以便上机调试。 实验内容 计算1+2+……n=,其中n通过键盘输入。要求在屏幕上提供如下信息: Please input a number(1627): ;出现此信息后通过键盘输入一个小于628的无符号整数 1+2+…..n=sum;其中n为用户输入的数,sum为所求的累加和 程序运行情况如下图所示(说明:图中所运行程序允许累加和不大于一个32位二进制数所能表示的范围)。编程指导 键盘输入的十进制数如 368在计算机中是以 33H,36H,38H形式存 放的,如何将它们转换 为一个二进制数0B,以 便对累加循环的循环次 数进行控制是本程序首 先要解决的问题。将键 盘输入的十进制数转换为二进制数的程序清单如下: DATA SEGMENT INF1 DB "Please input a number (0-65535):$" IBUF DB 7,0,6 DUP() DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS:DATA START: MOV A X, DATA MOV DS, AX MOV DX, OFFSET INF1 MOV AH, 09H INT 21H MOV DX, OFFSET IBUF ;键入一个十进制数(<65535) MOV AH, 0AH INT 21H MOV CL, IBUF+1 ;十进制数的位数送CX MOV CH, 0 MOV SI, OFFSET IBUF+2 ;指向输入的第一个字符(最高位)

03实验三 顺序结构程序设计_答案

湖北工业大学实验报告 课程名称:C语言程序设计实验内容实验三顺序结构程序设计 学院:工程技术学院专业班级: 姓名:学号:教师:成绩: 一、实验目的 1、掌握赋值语句、表达式语句、函数调用语句、复合语句、空语句的使用方法。 2、掌握输入、输出函数的格式及格式符的使用。掌握文件包含预处理命令的使用方法。 3、掌握数据的输入、存储、输出之间的关系。 4、掌握顺序程序设计的逻辑结构,掌握数据结构的功能。 二、预习作业 1、程序填空题:试在括号中填入正确的答案,并上机验证程序的正确性。(1) 输入大写字符A,则输出为( )。(文件名:ex3_1.c) (#include ) main( ) { ( char ch,chr; ) chr=(ch= getchar( )) main( ) { ( long int) a =80000 , b = 60000, c, d; ( c) = ( a - b ,a + b ); ( d) = (a + b,a - b); printf(“%ld ,%ld\n”, c, d); }

2、程序改错并上机调试运行 (1)更改下列程序中的位运算符和逻辑运算符,能使变量d、e输出的结果为零。 (文件名:ex3_3.c) #include main( ) { int a = 8, b = 2,c = 3,d,e; /********** found **********/ d = (a % c & ^ a % c); e = a / c - b || && c + + ; printf (“%d, %d\n”, d, e); } (2) 查找改程序中的错误,并修改正确。(文件名:ex3_4.c) #include main( ) { int a = 4, b = 6, c= 3; /********** found **********/ a = a + b = b + c ; b = a < b ?a :b < c ?b :c printf(“%d,%d\n”, a, b); } 3、读程序写结果并上机验证其正确性 (1) 变量 a,b,c,d如下,将变量a以各种格式输出并输出表达式c+a,d – 32的值。(文件名:ex3_5.c) #include main( ) 结果为:(-1,4294967295,37777777777,ffffffff ) { int a = - 1 , b = 2 ; C,B char c = …D?,d = …b?; b = b + c;//??? printf (“%d, %u,%o,%x \n ”,a,a,a,a ); printf (“%c,%c \n ”,c + a, d - 32); } (2) 运行程序后输入”a空格b空格c回车”后,输出结果是(a ,b )。(文件

(完整版)合工大液压与气压传动试卷及答案完整版2

三、判断题 1.液压缸活塞运动速度只取决于输入流量的大小,与压力无关。(○) 2.液体流动时,其流量连续性方程是能量守恒定律在流体力学中的一种表达形式。(×)3.理想流体伯努力方程的物理意义是:在管内作稳定流动的理想流体,在任一截面上的压力能、势能和动能可以互相转换,但其总和不变。(○) 4.雷诺数是判断层流和紊流的判据。(×) 5.薄壁小孔因其通流量与油液的粘度无关,即对油温的变化不敏感,因此,常用作调节流量的节流器。(○) 6.流经缝隙的流量随缝隙值的增加而成倍增加。(×) 7.流量可改变的液压泵称为变量泵。(×) 8.定量泵是指输出流量不随泵的输出压力改变的泵。(×) 9.当液压泵的进、出口压力差为零时,泵输出的流量即为理论流量。(○) 10.配流轴式径向柱塞泵的排量q 与定子相对转子的偏心成正比,改变偏心即可改变排量。(○) 11.双作用叶片泵因两个吸油窗口、两个压油窗口是对称布置,因此作用在转子和定子上的液压径向力平衡,轴承承受径向力小、寿命长。(○) 12.双作用叶片泵的转子叶片槽根部全部通压力油是为了保证叶片紧贴定子内环。(×)13.液压泵产生困油现象的充分且必要的条件是:存在闭死容积且容积大小发生变化。(○)14.齿轮泵多采用变位齿轮是为了减小齿轮重合度,消除困油现象。(×) 15.液压马达与液压泵从能量转换观点上看是互逆的,因此所有的液压泵均可以用来做马达使用。(×) 16.因存在泄漏,因此输入液压马达的实际流量大于其理论流量,而液压泵的实际输出流量小于其理论流量。(○) 17.双活塞杆液压缸又称为双作用液压缸,单活塞杆液压缸又称为单作用液压缸。(×)18.滑阀为间隙密封,锥阀为线密封,后者不仅密封性能好而且开启时无死区。(○)19.当液压泵的进、出口压力差为零时,泵输出的流量即为理论流量(○) 20.单向阀可以用来作背压阀。(○) 21.同一规格的电磁换向阀机能不同,可靠换向的最大压力和最大流量不同。(○)22.因电磁吸力有限,对液动力较大的大流量换向阀则应选用液动换向阀或电液换向阀。(○) 23.串联了定值减压阀的支路,始终能获得低于系统压力调定值的稳定的工作压力。(×)24.增速缸和增压缸都是柱塞缸与活塞缸组成的复合形式的执行元件。(×) 25.变量泵容积调速回路的速度刚性受负载变化影响的原因与定量泵节流调速回路有根本的不同,负载转矩增大泵和马达的泄漏增加,致使马达转速下降。(○) 26.采用调速阀的定量泵节流调速回路,无论负载如何变化始终能保证执行元件运动速度稳定。(×) 27.旁通型调速阀(溢流节流阀)只能安装在执行元件的进油路上,而调速阀还可安装在执行元件的回油路和旁油路上。(○) 29.在变量泵—变量马达闭式回路中,辅助泵的功用在于补充泵和马达的泄漏。(×)30.因液控单向阀关闭时密封性能好,故常用在保压回路和锁紧回路中。(○)31.同步运动分速度同步和位置同步,位置同步必定速度同步;而速度同步未必位置同步。 (○) 32.压力控制的顺序动作回路中,顺序阀和压力继电器的调定压力应为执行元件前一动作的最高压力。(×)

循环程序设计实验

2.4 循环程序设计实验 2.4.1 实验目的 1、掌握循环程序的设计方法。 2、掌握比较指令、转移指令和循环指令的使用方法。 3、进一步掌握调试工具的使用方法。 2.4.2 实验预习要求 1、复习比较指令、条件转移指令和循环指令。 2、复习循环程序的结构、循环控制方法等知识。 3、读懂“2.4.3 实验内容”中给出的将十进制数转换为二进制数以及将二进制数转换为十进制数的程序。 4、根据“2.4.3 实验内容”中给出的流程图和程序框架编写源程序,以便上机调试。 5、从“2.4.4 实验习题”中任选一道题目,编写源程序,以便上机调试。 2.4.3 实验内容 计算1+2+……n=?,其中n通过键盘输入。要求在屏幕上提供如下信息: Please input a number(1 627): ;出现此信息后通过键盘输入一个小于628的无符号整数 1+2+…..n=sum;其中n为用户输入的数,sum为所求的累加和 程序运行情况如下图所示(说明:图中所运行程序允许累加和不大于一个32位二进制数所能表示 的范围)。 1、编程指导 (1)键盘输入的十进 制数如368在计 算机中是以 33H,36H,38H 形式存放的,如 何将它们转换为 一个二进制数 101110000B,以便对累加循环的循环次数进行控制是本程序首先要解决的问题。将键盘输入的十进制数转换为二进制数的程序清单如下: DA TA SEGMENT INF1 DB "Please input a number (0-65535):$" IBUF DB 7,0,6 DUP(?) DA TA ENDS CODE SEGMENT ASSUME CS: CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET INF1 MOV AH, 09H INT 21H MOV DX, OFFSET IBUF ;键入一个十进制数(<65535) MOV AH, 0AH INT 21H MOV CL, IBUF+1 ;十进制数的位数送CX MOV CH, 0

实验三简单程序设计(2)

实验三简单程序设计 【实验目的】 1、掌握scanf、printf函数语句的使用 2、掌握算术表达式和赋值表达式的使用 3、能够编程实现简单的数据处理 【实验性质】验证性 【实验要求】 1、认真阅读本次实验的目的,了解本次实验要求掌握的内容 2、在上机前,需要预习,在程序改错题旁将程序中存在的错误修改过来,将编程题的 代码和流程图写在预习报告中 3、在实验时,将实验要求的基本题(程序改错和编程题)根据预习报告中编写的代码, 在VC环境中编写出来 4、在VC中将编写的程序编译、调试,能正确运行结果,各题目的具体要求请看题目下 的要求 5、将正确程序上传FTP服务器(ftp://172.17.9.253) 6、争取完成选作题 【实验内容】 1、程序改错 1) 下面程序需要从键盘输入三个数,计算其平均值在屏幕上显示输出。要求平均值 需要保留两位小数。源代码如下,程序中存在错误,请将其改正写在旁边,并注明为什么错误。 include int Main(){ int x,y,z,float ave; /*定义变量*/ printf("请输入三个数:\n);/*输入提示*/ scanf("%d,%d,%d",x,y,z);/*从键盘输入*/ ave=x+y+z/3;/*计算*/ printf("平均值是:ave=%f",AVE); return 0; }

2、编程题 1)编写程序,在计算机屏幕上显示如下信息。 【要求】 (1)使用printf 函数输出字符 2) 设一个正圆台的上底半径r1,下底半径r2,高h 。请设计一程序,从键盘输入r1,r2,r3;计算并在显示器上输出该圆台的上底面积s 1,下底面积s 2,圆台的体积V 。 【要求】 (1)r1,r2,h 用scanf 函数输入,且在输入前要有提示; (2)在输出结果时要有文字说明,每个输出值占一行,且小数点后取2位数字。 【思路点拔】 (1)圆面积计算公式为 s=πr 2。其中r 为圆半径。 (2)圆台体积计算公式为 V=3 /)r1r2r2r1(h 22++π 3) 鸡兔同笼,已知鸡兔总头数为h ,总脚数为f ,求鸡兔各有多少只? 【要求】

微机原理与汇编语言_实验3_循环程序设计实验汇总

微机原理与汇编语言 实验报告 姓名x x x学号xxxxxx 专业班级计科x班 课程名称微机原理与汇编语言实验日期2014.10.22 实验名称循环程序设计实验成绩 一、实验目的 1、掌握循环程序的设计方法。 2、掌握比较指令、转移指令和循环指令的使用方法。 3、进一步掌握调试工具的使用方法。 二、实验内容 1、实验原理 (1)键盘输入的十进制数如368在计算机中是以33H,36H,38H形式存放的,如何将它们转换为一个二进制数101110000B,以便对累加循环的循环次数进行控制是本程序首先要解决的问题 (2)累加结果为一个16位的二进制数,为了显示结果,必需把它们转换为十进制数 2、实验步骤 (1)流程图 (2)实验源码 .model small .stack ;定义堆栈段 .data ;定义数据段 inf1 db "Please input a number(1-627):$" inf2 db 0ah, 0dh, "1+2+......+$" ibuf db 7, 0, 6 dup(0) obuf db 6 dup(0) .code start: mov ax, @data mov ds, ax mov dx, offset inf1 ;将屏幕输入的十进制数(存放于ibuf)转化为二进制数存储于ax 中 mov ah, 09h int 21h mov dx, offset ibuf mov ah, 0Ah int 21h mov cl, ibuf+1 mov ch, 0 mov si, offset ibuf+2 mov ax, 0 loop1: mov dx, 10 mul dx and byte ptr [si], 0Fh add al, [si] 从键盘输入一个十进制数,并将其转换为二进制数,存放在AX中 开始 结束 素、、 (CX)-1=0 累加循环次数送CX(MOV CX,AX)AX清0(AX中存放累加和) BX送1(BX存放每次循环累加的数,每循环一次,BX值加1) ADD AX,BX INC BX 累加和(在AX中)转换为十进制数并 显示 Y N

相关文档
最新文档