西安交通大学 C++ 上机实验
西南交大各次C上机实验报告答案(全)
2014-2015各次C++上机实验报告答案(全)实验__1__①实验报告一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务1.新建源程序文件,编辑以下程序,编译,链接,得出运行结果,并保存程序:#include <iostream>using namespace std;void main( ){ cout<<'a'<<endl;/*输出语句*/cout<<'\141'<<endl;cout<<'\x61'<<endl;}2.新建源程序文件,编辑以下程序,编译,链接,运行,输入36和64,得出运行结果,并保存程序:#include <iostream>using namespace std;int main(){ float num1,num2,sum;cout << "Enter first number: ";/*输出语句*/cin >> num1; /*输入语句*/cout << "Enter second number: ";cin >> num2; /*输入语句*/sum=num1+num2; /*运算语句*/cout << "The sum is " << sum << endl; /*输出语句*/return 0;}三、实验结果1.2.实验一②实验报告一、实验目的1.熟悉C++程序的集成开发环境;2.学习新建和打开控制台应用程序的方法;3.掌握简单数据运算以及输入与输出方法。
二、实验任务1.输入一个摄氏温度,输出并显示转换出的华氏温度(提示:摄氏温度=(华氏温度—32)*5/9);2.画出一头威武雄壮的雄狮。
C上机实验6含答案及代码
`特别注意事项:1,文件名“_王小小_数学0801_实验1.doc”中的实验1指的是第几次上机实验,与“实验指导书”中的实验几没有关系;2,文件名“_王小小_数学0801_实验1.doc”中的doc是文件扩展名,请注意不要提交如“*******.doc.doc”的文件;3,上机实验作业一律以word形式提交;4,若上机实验有多个作业,请按照下列加粗方式给每个作业命名,如:实验1_1,实验1_25,实验作业的word文件的页眉不可少,请每次注意修改;6,每个实验作业均要给出比较详细的程序说明,且程序说明位于程序之后。
程序说明是特别重点考察的部分,请按照你的理解进行撰写;7,该部分“特别注意事项”可以随同作业一并提交,请提交作业前进行对照。
实验8_1/******************************************************************* 主程序中定义一个类对象,把新定义的类对象作为参数传递给普通函数***********************************************************************/ // Tdate.h:Tdate类声明#include<iostream>using namespace std;class Tdate{public:void Set(int,int,int); //成员函数的声明int IsLeapYear();void Print();private:int month;int day;int year;};//Tdate.cpp:#include "Tdate.h"void Tdate::Set(int m,int d,int y){month=m;day=d;year=y;}int Tdate::IsLeapYear(){return(year%4==0&&year%100!=0)||(year%400==0);}void Tdate::Print(){ cout<<month<<"/"<<"/"<<year<<endl;}//应用程序:lab12.cpp#include <iostream>using namespace std;# include"Tdate.h"void someFunc(Tdate someday){ someday.Print ();if (someday.IsLeapYear())cout<<"leap yrar\n";elsecout<<"not leap year\n";}void main(){ Tdate s;s.Set (21,10 ,2012);someFunc(s);}程序说明:定义一个日期类Tdate,它的数据成员有年、月、日;它的函数成员有设置值、打印输出和判断是否闰年。
大学C 上机实验题目(版)
20XX年复习资料大学复习资料专业:班级:科目老师:日期:实验前言(建议认真阅读)一、上机实验的目的上机实验的目的是提高学生的分析问题、解决问题的能力和动手能力,通过实践环节理解C++语言的基本结构和程序设计方法。
通过亲手编程掌握C++语言编程的方法。
二、实验基本内容为了使学生在上机实验时目标明确,本实验指导书针对课程内容编写了五个实验。
学生在课内机时先完成指导书中标有“*”号的程序,理解所学的知识,在此基础上再编写其他应用程序。
指导书中的五个个实验如下:1. 函数与编译处理2. 指针与引用3. 类和对象4. 继承和派生类5. 多态性三、实验提交(特别提醒)1. 实验题目以附件形式提交,每个附件限一个源程序,附件以实验编号-题号-自己学号.cpp命名;如学号为20XXXX20XXXX20XXXX34的同学提交实验1的第5题,则附件命名方式为:1-5-20XXXX20XXXX20XXXX34.cpp,错误提交的将视为未提交。
2. 提交时间定为该次实验课的一周内,过期不再接收。
四、评分和作弊处理1. 要求提交实验题总数为6题(带“*”号),占期末总评成绩的20XX%;2. 存在抄袭和被抄袭的作业,无论抄袭与被抄袭者,本门课程平时成绩以零分记。
存在两次及两次以上抄袭和被抄袭者,本门课程以不及格记。
五、实验课要求(重点强调)1. 严禁QQ、MSN等即时软件工具聊天;2. 严紧接听手机、发送短信;3. 严紧玩游戏。
实验1 函数与编译处理一、实验目的1. 掌握函数声明、定义和使用的方法;2. 掌握形参与实参之间的对应关系;3. 掌握函数调用时,形参、实参之间的“值传递”和“引用传递”的区别;4. 掌握函数递归调用的方法;5. 掌握全局变量、局部变量、静态变量的使用方法;6. 掌握文件包含的使用方法。
二、实验内容1. 定义两个函数swap1和swap2,目的是实现两个整数的次序交换,其中swap1的参数是传递值参数,swap2的参数是引用参数,在程序中分别调用这两个函数,其输出结果如下所示:初始值:x=1,y=2调用swap1后的结果:x=1 y=2调用swap2后的结果:x=2 y=12. 编写一个函数,用来计算从键盘上输入的整数的阶乘。
西安交通大学传热学上机实验报告
φ1 − φ2 E= (φ1 + φ2)2
三、计算过程
用 MATLAB 编写计算程序,取网格步长 ∆x = ∆y = 0.1m 。 1、第一类边界条件 (1)运行程序 1(见附录 1) ,得到等温边界条件下计算墙角温度分布图:
图 4 等温边界条件下计算等温线分布(左图中每两条线间隔为三摄氏度) 运行程序 2(见附录 2) ,得到等温边界条件下实测墙角温度分布图:
s1=0; for i=2:11 s1=s1+(30-T(i,2))*0.53; end for j=2:15 s1=s1+(30-T(11,j))*0.53; end s1=s1+(30-T(1,2))*0.53/2+(30-T(11,16))*0.53/2
%墙角外侧换热量
s2=0; for i=2:6 s2=s2+T(i,5)*0.53; end for j=7:15 s2=s2+T(8,j)*0.53; end s2=s2+T(1,5)*0.53/2+T(8,16)*0.53/2+T(7,5)*0.53/2+T(8,6)*0.53/2 %墙角内侧换热量 s=2*(s1+s2) %单位长度墙壁的总换热量 e=abs(s1-s2)/((s1+s2)/2)
图3
内节点和绝热边界
图 3 所示的内节点和绝热边界节点方程如下: 内节点:
⎡(t −t )∆x (t −t )∆x (t −t )∆y (t −t )∆y⎤ ΦN +ΦS +ΦE +ΦW = λ⋅1⋅ ⎢ i, j+1 i, j + i, j−1 i, j + i+1, j i, j + i−1, j i, j ⎥ = 0 ∆y ∆y ∆x ∆x ⎣ ⎦
西安交通大学汇编第一次上机实验报告
西安交通大学汇编第一次上机实验报告80_86 汇编语言程序设计课内实验报告班级实验时间 2021.5.26 姓名学号实验内容概述 1.熟悉 masm,link,debug 上机环境。
2.算术指令程序设计。
编写完整程序,实现 Z = ( ( W ndash; _ ) / 5 _Y ) _2。
3.寄存器使用程序设计,按照要求合理使用寄存器进行运算。
实验步骤 1.实验内容 1,使用 masm 编译 demoadd.asm,并生成.asm、.lst、.crf 文件,再使用 link 编译 demoadd.asm,同时生成同名的.map 文件,link 编译结束后可进行 debug 对demoadd.e_e 进行 debug,并熟悉 debug 的各种指令 2.实验内容 2,按照给定的公式合理设置变量及变量大小,合理运用寄存器进行编程,并使用 masm 进行汇编,使用 link 进行连接,使用 debug 进行调试以确认结果正确。
按照所给题合理使用寄存器进行编程,完成运算,并使用masm 进行汇编,使用 link 进行连接,使用 debug 进行调试以确认结果正确。
实验中遇到的问题及其解决方法 1.问题在 dos 运行程序时陷入死循环,无法得出程序结果,也就无法得到执行程序后内存的值问题是在实验 2 中遇到,通过 debug -t 指令逐步执行发现是 idiv 指令出现问题,无法执行,导致执行到 idiv 指令后重新进行循环。
经过几番尝试,由于时间紧迫,无奈放弃搜索后了解到 8086 的除法指令比较笨,只能处理除数与商同为 8 位、16 位的问题,当商出现溢出则无法解决。
于是一开始想法是优先执行除法指令,但结果依然溢出。
后来想通过 cbw 将除数扩展,使得商不会溢出,但不知道什么原因仍旧陷入死循环。
另一个想法是直接用 80386 指令,于是在代码头加.386 伪操作,依然陷入死循环。
用.486 伪操作,dos 无法识别。
西安交通大学算法上机实验报告
《计算机算法设计与分析》上机实验报告姓名:班级:学号:日期:2016年12月23日算法实现题3-14 最少费用购物问题★问题描述:商店中每种商品都有标价。
例如,一朵花的价格是2元,一个花瓶的价格是5元。
为了吸引顾客,商店提供了一组优惠商品价。
优惠商品是把一种或多种商品分成一组,并降价销售。
例如,3朵花的价格不是6元而是5元。
2个花瓶加1朵花的优惠价格是10元。
试设计一个算法,计算出某一顾客所购商品应付的最少费用。
★算法设计:对于给定欲购商品的价格和数量,以及优惠价格,计算所购商品应付的最少费用。
★数据输入:由文件input.txt提供欲购商品数据。
文件的第1行中有1个整数B(0≤B≤5),表示所购商品种类数。
在接下来的B行中,每行有3个数C,K和P。
C表示商品的编码(每种商品有唯一编码),1≤C≤999;K表示购买该种商品总数,1≤K≤5;P是该种商品的正常单价(每件商品的价格),1≤P≤999。
请注意,一次最多可购买5*5=25件商品。
由文件offer.txt提供优惠商品价数据。
文件的第1行中有1个整数S(0≤S≤99),表示共有S种优惠商品组合。
接下来的S行,每行的第1个数描述优惠商品组合中商品的种类数j。
接着是j个数字对(C,K),其中C是商品编码,1≤C≤999;K表示该种商品在此组合中的数量,1≤K≤5。
每行最后一个数字P (1≤P≤9999)表示此商品组合的优惠价。
★结果输出:将计算出的所购商品应付的最少费用输出到文件output.txt。
输入文件示例输出文件示例Input.txt offer.txt output.txt2 2 147 3 2 1 7 3 58 2 5 2 7 1 8 2 10解:设cost(a,b,c,d,e)表示购买商品组合(a,b,c,d,e)需要的最少费用。
A[k],B[k],C[k],D[k],E[k]表示第k种优惠方案的商品组合。
offer (m)是第m种优惠方案的价格。
西安交大传热学上机实验报告
西安交⼤传热学上机实验报告传热学上机实验报告⼆维导热物体温度场的数值模拟学院:化⼯学院姓名:沈佳磊学号:2110307016班级:装备11⼀、物理问题有⼀个⽤砖砌成的长⽅形截⾯的冷空⽓空道,其截⾯尺⼨如下图所⽰,假设在垂直于纸⾯⽅向上冷空⽓及砖墙的温度变化很⼩,可以近似地予以忽略。
在下列两种情况下试计算:(1)砖墙横截⾯上的温度分布;(2)垂直于纸⾯⽅向的每⽶长度上通过砖墙的导热量。
外矩形长为3.0m,宽为2.2m;内矩形长为2.0m,宽为1.2m。
第⼀种情况:内外壁分别均匀地维持在0℃及30℃;第⼆种情况:内外表⾯均为第三类边界条件,且已知:外壁:30℃,h1=10W/m2·℃,内壁:10℃,h2= 4 W/m2·℃砖墙的导热系数λ=0.53 W/m·℃由于对称性,仅研究1/4部分即可。
⼆、数学描写对于⼆维稳态导热问题,描写物体温度分布的微分⽅程为拉普拉斯⽅程22220t t x x ??+=??这是描写实验情景的控制⽅程。
三、⽅程离散⽤⼀系列与坐标轴平⾏的⽹格线把求解区域划分成许多⼦区域,以⽹格线的交点作为确定温度值的空间位置,即节点。
每⼀个节点都可以看成是以它为中⼼的⼀个⼩区域的代表。
由于对称性,仅研究1/4部分即可。
依照实验时得点划分⽹格。
建⽴节点物理量的代数⽅程对于内部节点,由?x=?y ,有,1,1,,1,11()4m n m n m n m n m n t t t t t +-+-=+++由于本实验为恒壁温,不涉及对流,故内⾓点,边界点代数⽅程与该式相同。
设⽴迭代初场,求解代数⽅程组图中,除边界上各节点温度为已知且不变外,其余各节点均需建⽴类似3中的离散⽅程,构成⼀个封闭的代数⽅程组。
以t ? =0°C 为场的初始温度,代⼊⽅程组迭代,直⾄相邻两次内外传热值之差⼩于0.01,认为已达到迭代收敛。
四、编程及结果program mainimplicit nonereal ,dimension(1:16,1:12)::treal ,dimension(1:16,1:12)::t1real q,q1,q2,q3,q4,q5,q6,q7,q8,q9,q10,q11,a integer m,n,z logical::converged=.false.z=1t=0a=0.53do n=1,12t(1,n)=30end dodo m=2,16t(m,12)=30end dodo n=1,7t(6,n)=0end dodo m=7,16t(m,7)=0end dodo while(.not.converged.and.z<10000)t1=tdo m=2,5do n=1,11if( n==1 )thent(m,n)=0.25*(t(m-1,n)+t(m+1,n)+2*t(m,n+1))elset(m,n)=0.25*(t(m-1,n)+t(m+1,n)+t(m,n-1)+t(m,n+1)) end if end doend dodo n=8,11do m=6,16if (m==16) thent(m,n)=0.25*(t(m,n-1)+t(m,n+1)+2*t(m-1,n)) elset(m,n)=0.25*(t(m-1,n)+t(m+1,n)+t(m,n-1)+t(m,n+1)) end if end doend doz=z+1do m=1,16do n=1,12if(abs(t(m,n)-t1(m,n))>0.000001) thenconverged=.false.exitelseconverged=.true.end ifend doend doend dowrite(*,'(16f5.1)',advance='no')((t(m,n),m=1,16),n=12,7,-1) write(*,*) write(*,'(6f5.1)',advance='no')((t(m,n),m=1,6),n=6,1,-1)do n=2,11q1=(t(1,n)-t(2,n))*a+q1end dodo m=2,15q2=(t(m,12)-t(m,11))*a+q2end doq3=(t(1,1)-t(2,1))*a*0.5q4=(t(16,12)-t(16,11))*a*0.5q10=q1+q2+q3+q4write(*,*)do n=2,6q5=(t(5,n)-t(6,n))*a+q5end dodo m=7,15q6=(t(m,8)-t(m,7))*a+q6end doq7=(t(5,1)-t(6,1))*a*0.5q8=(t(16,8)-t(16,7))*a*0.5q9=(t(5,7)-t(6,7))*a*2q11=q5+q6+q7+q8+q9q=(q10+q11)*0.5*4print*,"外表⾯导量=",q10,"内表⾯导热量",q11,"每⽶⾼砖墙导热量",q end结果截图:将以上结果⽤matlab画图⼯具绘制出如下图像:。
上机实验操作一基本操作
上机实验操作一基本操作上机实验是指在计算机上进行实验操作,通过软件和硬件的结合来模拟和执行实验。
下面是关于上机实验的一些基本操作。
第一步:准备工作1.首先要确认实验所需的计算机硬件和软件环境是否满足实验要求,例如需要安装特定的操作系统、驱动程序和软件工具等。
2.确保计算机和相关设备的电源和连接线处于正常工作状态。
3.在进行上机实验之前,最好备份一份计算机中重要的数据。
第二步:实验操作1.启动计算机:按下计算机电源按钮,等待操作系统加载完全。
2.登录系统:输入用户名和密码登录到操作系统中。
3.打开实验所需的软件:根据实验需求,打开相应的软件工具。
4.配置实验环境:对实验软件进行一些设置,如选择合适的实验模式、打开所需的工具栏等。
5.导入实验数据:如果实验需要用到预先准备好的数据,可以将其导入到实验软件中。
6.进行实验操作:根据实验指导书或者实验要求进行相应的实验操作,如进行数据分析、图表绘制等。
7.记录实验结果:将实验过程中的关键步骤和结果记录下来,以备后续分析和总结使用。
8.保存实验数据和设置:在实验过程中,及时保存实验数据和设置,以免数据丢失或实验过程中的设置被覆盖。
9.结束实验操作:在实验完成后,关闭实验软件和其他相关应用程序,然后关闭计算机。
第三步:实验分析与总结1.对实验结果进行分析:根据实验记录和数据分析,对实验结果进行综合分析,并进行图表绘制等可视化处理。
2.总结实验经验与教训:回顾实验操作过程,总结实验中获得的经验和教训,为今后的实验操作提供参考。
3.撰写实验报告:根据实验分析结果,撰写实验报告,包括实验目的、原理、方法、结果和结论等内容。
总结:上机实验是一种利用计算机软硬件进行实验操作的方式,它可以对实验操作进行模拟和执行。
在进行上机实验之前,要做好准备工作,确保计算机和相关设备的正常运行。
在实验操作中,要遵循实验指导书或实验要求,逐步进行实验操作,并记录实验过程和结果。
在实验完成后,要对实验结果进行分析和总结,撰写实验报告。
西安交通大学第二次汇编上机实验报告
西安交通大学第二次汇编上机实验报告
实验时间5.31姓名
学号
实验内容概述主要对第五章所学的循环了分支结构进行了实践。
第一题循环结构比大小,把最大值的最大值的相对位置存储在数组之后的两位第二题循环结构找两数组之间的相同数字第三题分支结构对数组里出现的元素进行计数实验步骤
一(1)对数据求源码(负数取反后加一)(2)取每个数的绝对值(3)从前向后两两比较,如果当前数字比max的记录值大,那么更新当前数字的max,并存储当前位置pos二(1)根据数组a的长度设置外循环次数(2)根据数组b 的长度设置外循环次数(3)外循环遍历a的每一个元素,将a中每一个元素与b中元素比较,如果相同,则终止当前内循环,将该值存储在c数组中三(1)定义一个分支结构,先判断当前值,如果相等,则跳转至对应子程序:使存储该数字出现次数的位置上加一(2)程序运行结束时,在dos窗口输出每个元素出现的次数,
实验中遇到的问题及其解决方法1、mov指令用错当时报错后,查找了mov 指令的课本内容,想起来存储单元之间不能直接赋值,已解决2、逻辑正确,数据错误当时确认逻辑无误之后,我的内心非常纠结,甚至出现了想要重装软件的想法,后来利用u和t指令,一步步找错,发现是比例因子出现错误,将inccx 改为addcx,2后解决实验结果
结果均正确
2021
年
5月
31日
建议无备注无。
西安交通大学C++第5章_实验报告
int main()
计
{
设
序 cout<<"请输入一个整数 m:";
//提示用户输入一个整数
sushu();
U程 cout<<endl; XJT return 0;
//调用素数判断函数 //输出判断结果
}
3.实验结果:
案 答 机 C++上 计 设 序 XJTU程
三.个人小结 通过本次的的实验我充分地掌握了掌握函数定义及函数调
//输入变量值
XJ k=int (sqrt((double)m)); //计算出变量 k 的值
if(m==1)
//判断 1 的属性
{
cout<<"该正整数不为素数!"<<endl; //输出 1 的属性
return;
}
else if(m==3||m==2)
//判断 2,3 的属性
{
cout<<"该正整数为素数!"<<endl; //输出 2,3 的判断结果
break;
//所有字符判断完毕,跳出循环
if(s[i]>='a'&&s[i]<='z')
//对每个字符判断大小写
s[i]=s[i]-32;
//小写字符转大写
}
return s[i];
//返回字符型数组
} void main() {
char a[100]; gets(a); change(a); puts(a); } 3.实验结果:
机
#include <iostream>
c++2010021075-7
西安交通大学实验报告课程__计算机程序设计______________实验名称__函数和指针程序设计_____________第页共页系别_____材料科学与工程____________________________ 实验日期年月日专业班级___材料03_____________组别_____________ 实验报告日期年月日姓名_____熊力___________学号_2010021075____________ 报告退发 ( 订正、重做 )同组人_________________________________ 教师审批签字一.实验目的(1)掌握函数调用的方法;(2)掌握函数的递归调用方法;(3)掌握函数调用中参数的值传递和地址传递方法和含义。
二.实验内容(-)实验题目一:第7章第1题1.要点分析编写递归函数,以基本形式结束递归。
2.程序源代码#include<iostream>using namespace std;double power (double x,int k){if(k==0)return 1;elsereturn power(x,k-1)*x;}int main(){double x1;int k1;cout<<"请输入任意给定的实数x和整数k";cin>>x1>>k1;cout<<x1<<"的"<<k1<<"次方是:"<<power(x1,k1)<<endl;return 0;}3.实验结果(二)实验题目二:第7章第3题1要点分析:构造递归函数。
2程序源代码:#include<iostream>using namespace std;int fib(int n){if(n==0)return 0;else if (n==1)return 1;return fib(n-1)+fib(n-2);}int main(){int n ;cout<<"请输入待求的数列的项数:";cin>>n;cout<<"数列的第"<<n<<"项是:"<<fib(n)<<endl;return 0;}3实验结果:(三)实验题目三:第7章第5题1要点分析:按照不同的参数和返回值,设计不同的一组同名函数,使用时直接把相应的数据带入即可。
C语言上机试验报告
西安交通大学电子与信息工程学院程序设计方法专题实验实验报告学号10052087姓名冯伯阳班级信息04实验指导老师吴茜媛实验地点计算机教学实验中心实验结束日期2010年12月07日实验题目一1.题目要求:有一篇文章,共有3行文字,每行有80个字符。
要求分别统计出其中英文大写字母,小写字母,数字,空格以及其他字符的个数。
2.问题分析:首先利用for循环输入三行十个字符,定义指针变量a表示每一行字符的首地址。
利用for循环使数组下标【i】【j】增加,从而使*a表示从第一行第一个元素到第三那行的最后一个元素。
再利用大写字母的ASCII码在A与Z之间,小写字母在a与z之间等,统计出每种字符的个数。
3.实验内容:#include<stdio.h>void main(){char m[3][80];char(*a)[80];/*定义指针变量a*/int i,j,s1,s2,s3,s4,s5;s1=0;s2=0;s3=0;s4=0;s5=0;printf("请输入240个字符(若超过,则统计前240字符)。
\n");for(i=0;i<3;i++){for(j=0;j<80;j++)scanf("%c",&m[i][j]);}a=m;/*指针变量取m数组的首地址*/for(i=0;i<3;i++){for(j=0;j<80;j++){if(*(a[i]+j)>64&&*(a[i]+j)<91)s1++;else if(*(a[i]+j)>96&&*(a[i]+j)<123)s2++;else if(*(a[i]+j)>47&&*(a[i]+j)<58)s3++;else if(*(a[i]+j)=='')s4++;else开始输入数据定义指针变量用if语句判断字符类型并用自增统计数量输出统计结果结束s5++;}}printf("大写字母有%d个\n",s1);printf("小写字母有%d个\n",s2);printf("数字有%d个\n",s3);printf("空格有%d个\n",s4);printf("其他字符有%d个\n",s5); }程序运行结果:实验题目二1.题目要求:用选择法和冒泡法对10个整数按从大到小顺序排列。
C上机实验4含答案及代码
特别注意事项:1,文件名“_王小小_数学0801_实验1.doc”中的实验1指的是第几次上机实验,与“实验指导书”中的实验几没有关系;2,文件名“_王小小_数学0801_实验1.doc”中的doc是文件扩展名,请注意不要提交如“*******.doc.doc”的文件;3,上机实验作业一律以word形式提交;4,若上机实验有多个作业,请按照下列加粗方式给每个作业命名,如:实验1_1,实验1_25,实验作业的word文件的页眉不可少,请每次注意修改;6,每个实验作业均要给出比较详细的程序说明,且程序说明位于程序之后。
程序说明是特别重点考察的部分,请按照你的理解进行撰写;7,该部分“特别注意事项”可以随同作业一并提交,请提交作业前进行对照。
特别注意事项:1,文件名“_王小小_数学0801_实验1.doc”中的实验1指的是第几次上机实验,与“实验指导书”中的实验几没有关系;2,文件名“_王小小_数学0801_实验1.doc”中的doc是文件扩展名,请注意不要提交如“*******.doc.doc”的文件;3,上机实验作业一律以word形式提交;4,若上机实验有多个作业,请按照下列加粗方式给每个作业命名,如:实验1_1,实验1_25,实验作业的word文件的页眉不可少,请每次注意修改;6,每个实验作业均要给出比较详细的程序说明,且程序说明位于程序之后。
程序说明是特别重点考察的部分,请按照你的理解进行撰写;7,该部分“特别注意事项”可以随同作业一并提交,请提交作业前进行对照。
实验4_1_1/*************************************************使用全局变量,求两正整数的最大公约数和最小公倍数*************************************************/#include <iostream>using namespace std;int maxgy;int maxgb;void fun(int a,int b){int t,i;if(a<b){t=a;a=b;b=t;} // 求的a为最大数i=b;while(i>=1){if(b%i==0 && a%i==0){maxgy=i;break;}i--;}i=a;while(i>=a){if(i%a==0 && i%b==0){ maxgb=i;break;}i++;}}void main (){ int x,y;cout<<"input data x,y:";cin>>x>>y;fun (x,y);cout<<"该两个数的最大公约数是:"<<maxgy<<endl;cout<<"该两个数的最大公倍数是:"<<maxgb<<endl;}程序说明:将两正整数的最大公约数和最小公倍数都设为全局变量,先做好函数的声明和定义,再用main主函数调用。
C_上机实验(含作业)总的目的、要求和评分标准
上机实验(含作业)总的目的、要求和评分标准一、实验目的实验作为教学的一个重要环节,其目的在于更深入地理解和掌握课程教学中的有关基本概念,应用基本技术解决实际问题,从而进一步提高分析问题和解决问题的能力。
C程序设计课程实践性很强,即要求独立编写程序,学会独立上机调试程序。
学会独立上机调试程序。
也就是要善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行。
计算机技术是实践性很强的技术,要求从事这一领域的人不仅能了解和熟悉有关理论和方法,还要求自己动手实践。
对程序设计来说,要求会编写程序并上机调试通过。
因此调试程序本身是程序设计课程的一个重要的内容和基本要求,应给予充分的重视。
调试程序的经验固然可以借鉴他人的现成经验,但更重要的是通过自己的直接实践来积累,而且有些经验是只能“会意”难以“言传”。
因此,在实验时不但要达到通过程序完成每一次的实验任务,而且应当在已通过的程序基础上作进一步的修改、提高和完善。
甚至于“自设障碍”,即把正确的程序改为有错的(如用scanf函数为输入变量输入数据时,漏写“&”符号,double变量使用格式符“%f”;使数组下标出界;使整数溢出等等),观察和分析所出现的情况。
这样的学习才会有真正的收获。
实验目的可归纳如下:⒈验证自己已建立起来的概念或所编写的程序是否正确;⒉加深对课堂所学内容的理解和语法规则的记忆;⒊理解和掌握运用计算机高级语言进行编程的思想方法;⒋掌握常用算法的设计与应用实现;⒌熟悉Turbo C 2.0程序开发环境,掌握C程序常用的调试手段;⒍学会上机调试程序的方法,不断积累调试经验,提高排错能力;⒎使自己具有独立的应用编程和熟练的程序调试能力。
二、要求:⒈做好每一次上机前的准备以提高上机效率:①预先认真阅读相关实验内容,做到心中有明确的目的要求和任务,要有备而来;②按照实验内容规定的习题题目,事先在实验预习报告上编写好源程序及运行程序所需的典型数据,并经人工静态检查认为无误;手编程序应书写整齐,应在每个题目之间留出一定的空间,以备记录上机调试情况和运行结果等;对程序中自己有疑问的地方,应作出记号,以便上机时给以注意。
西安交通大学概率论上机实验报告
西安交通大学一、试验目的概率论部分1.了解matlab软件的基本命令与操作;2.熟悉matlab用于描述性统计的基本菜单操作及命令;3.会用matlab求密度函数值、分布函数值、随机变量分布的上下侧分位数。
数理统计部分1.熟悉matlab进行参数估计、假设检验的基本命令与操作.2.掌握用matlab生成点估计量值的模拟方法3.会用matlab进行总体数学期望和方差的区间估计。
4.会用matlab进行单个、两个正态总体均值的假设检验。
5.会用matlab进行单个、两个正态总体方差的假设检验。
二、试验问题实验五、随机变量综合试验实验内容1. 产生(6),(10),F(6,10)和t(6)四种随机数,并画出相应的频率直方图;2. 在同一张图中画出了N(0,1)和t(6)随机数频率直方图,比较它们的异同;3. 写出计算上述四种分布的分布函数值和相应上侧分位点命令.实验七、对统计中参数估计进行计算机模拟验证实验内容:1.产生服从给定分布的随机数,模拟密度函数或概率分布;2.对分布包含的参数进行点估计,比较估计值与真值的误差;3. 对分布包含的参数进行区间估计,行区间估计,可信度。
三、实验源程序及结果实验5源程序:% 清空内存,清空输出屏幕clc;clear;% 首先是指数分布n = normpdf(-2::14,6);% 绘制频率直方图plot(-2::14,n,'color','r','linewidth',2);ylabel('概率密度');title('正态分布概率密度');% t分布h1 = figure;t = tpdf(-3::3,6);plot(-3::3,t,'color','g','linewidth',2);ylabel('对应频率');title('t分布频率密度');% F分布h2 = figure;f = fpdf(0::10,6,10);plot(0::10,f,'color','k','linewidth',2); ylabel('对应频率');title('F分布频率直方图');% 卡方分布h3 = figure;ka = chi2pdf(0::15,6);plot(0::15,ka,'color','y','linewidth',2); ylabel('对应频率');title('卡方分布频率直方图');% 再来绘图h4 = subplot(2,1,1);y1=normpdf(-10::10,0,1);plot(-10::10,y1,'color','b','linewidth',2); title('N(0,1)');h5 = subplot(2,1,2);t1 = tpdf(-10::10,6);plot(-10::10,t1,'color','r','linewidth',2);%上侧分位数norminv,0,1)tinv,6)chi2inv,6)finv,6,10)运行结果:正态分布T分布F分布N(0,1)和t(6)随机数频率直方图四种分布的分布函数值和相应上侧分位点实验7源程序:% 以正太分布为例% 清空内存,清空输出屏幕clc;clear;y=normrnd(10,1,10000,1);ymin=min(y);ymax=max(y);x=linspace(ymin,ymax,80);yy=hist(y,x);yy=yy/10000;bar(x,yy);grid;xlabel('(a)¸概率密度分布直方图 ');phat=mle(y,'distribution','norm','alpha',%对分布函数参数进行区间估计,并估计区间的可信度 [mu,sigma,m_ci,s_si]=normfit(y,运行结果:正态分布概率密度分布直方图得到估计参数m =σ =由上可知估计的m = ,而实际是 10。
西安交大概率论上机实验报告西安交通大学概率论实验报告
西安交⼤概率论上机实验报告西安交通⼤学概率论实验报告概率论与数理统计上机实验报告⼀、实验内容使⽤MATLAB 软件进⾏验证性实验,掌握⽤MATLAB 实现概率统计中的常见计算。
本次实验包括了对⼆维随机变量,各种分布函数及其图像以及频率直⽅图的考察。
1、列出常见分布的概率密度及分布函数的命令,并操作。
2、掷硬币150次,其中正⾯出现的概率为0.5,这150次中正⾯出现的次数记为X ,(1) 试计算45=X 的概率和45≤X 的概率;(2) 绘制分布函数图形和概率分布律图形。
3、⽤Matlab 软件⽣成服从⼆项分布的随机数,并验证泊松定理。
4、设22221),(y x e y x f +-=π是⼀个⼆维随机变量的联合概率密度函数,画出这⼀函数的联合概率密度图像。
5、来⾃某个总体的样本观察值如下,计算样本的样本均值、样本⽅差、画出频率直⽅图。
A=[16 25 19 20 25 33 24 23 20 24 25 17 15 21 22 26 15 23 2220 14 16 11 14 28 18 13 27 31 25 24 16 19 23 26 17 14 30 21 18 16 18 19 20 22 19 22 18 26 26 13 21 13 11 19 23 18 24 28 13 11 25 15 17 18 22 16 13 12 13 11 09 15 18 21 15 12 17 13 14 12 16 10 08 23 18 11 16 28 13 21 22 12 08 15 21 18 16 16 19 28 19 12 14 19 28 28 28 13 21 28 19 11 15 18 24 18 16 28 19 15 13 22 14 16 24 20 28 18 18 28 14 13 28 29 24 28 14 18 18 18 08 21 16 24 32 16 28 19 15 18 18 10 12 16 26 18 19 33 08 11 18 27 23 11 22 22 13 28 14 22 18 26 18 16 32 27 25 24 17 17 28 33 16 20 28 32 19 23 18 28 15 24 28 29 16 17 19 18]6. 利⽤Matlab 软件模拟⾼尔顿板钉试验。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安交通大学实验报告一.实验目的(1)了解了C++程序中的几种控制结构,包括分支和循环。
(2)初步学习运用了for循环、while循环、do{}while循环,能够简单的用于一些问题的解答。
(3)熟悉了两种分支:两重分支和多重分支,并将两重分支多次运用于将解决实际问题。
(4)了解了许多有趣的数字,并使用程序获得有关这些数字的知识。
二.实验内容(-)实验题目一:第3章第2题1.程序源代码#include<iostream>using namespace std;int main(){double x,y;cout<<"请输入x的值";cin>>x;if(x<0){y=x*x;}else{y=x*x*x+2*x*x+x;}cout<<"y="<<y<<endl;return 0;}2.实验结果(二)实验题目二:编程计算n!。
n由用户输入,输入的n不合法时给出提示【问题扩展】你写的程序能计算多大的数的阶乘。
再大了呢?怎么办呢?1.程序源代码#include<iostream>using namespace std;int main(){int m,i;double n,sum;cout<<"请输入n的值";cin>>n;i=1;sum=1;m=n;if(n-m!=0){cout<<"输入的n不合理"<<endl;}else{if(n<=0){if(n==0){cout<<"阶乘sum=1"<<endl;}else{cout<<"输入的n不合理"<<endl;}}else{do{sum=i*sum;i=i+1;}while(i<=n);cout<<"阶乘sum="<<sum<<endl;}}return 0;}2.实验结果【问题扩展】为了得到更大数的阶乘,采用范围更广的双精度型,使得能表示的结果的范围更大,即能够计算获得更大的数的阶乘,换句话说就是n!<=1.8E+308程序源代码#include<iostream>using namespace std;int main(){int n;double sum;n=1;sum=1;do{sum=sum*n;n=n+1;cout<<n-1<<"!="<<sum<<endl;}while(n<=200);return 0;}实验结果故最多只能计算170的阶乘,在n=171时将超过范围。
(三)实验题目三:第3章第12题前两小题,即(1)和(2)题(必做题)小题(1)1.程序源代码#include<iostream>using namespace std;int main(){int n,sum,Fn,i,b,m;cout<<"请输入n的值";cin>>n;m=1;sum=0;i=1;b=0;if(n<0){cout<<"输入不合理"<<endl;}else{if(n==0){cout<<"F0=0"<<endl;cout<<"前n项和sum=0"<<endl;}else{do{Fn=b+m;sum=sum+Fn;b=Fn;m=b-m;i=i+1;}while(i<=n);cout<<"前n项和sum="<<sum<<endl;cout<<"第n项Fn的值为"<<Fn<<endl;}}return 0;}2.实验结果小题(2)1.程序源代码#include<iostream>#include<cmath>using namespace std;int main(){double fn,F1,F2;double f0=0,f1=1,sum=0,n=0;do{sum=sum+f0/f1;fn=f0+f1;F1=f0/f1;F2=f1/fn;f0=f1;f1=fn;n=n+1;}while(fabs(F1-F2)>=10E-8);cout<<"n="<<n<<endl;cout<<"f"<<n-1<<"/f"<<n<<"="<<F1<<endl;cout<<"前"<<n<<"项和sum"<<"="<<sum<<endl;return 0;}2.实验结果(四)实验题目四:第3章第13题(必做题)1.程序源代码#include<iostream>using namespace std;int main(){int a,i,m,n,sum;cout<<"请输入a和n的值";cin>>a;cin>>n;sum=0;m=a;for(i=1;i<=n;i++){cout<<a<<"+";sum=a+sum;a=m+a*10;}cout<<sum<<endl;return 0;}2.实验结果(五)实验题目五:第3章第16题(必做题)1.程序源代码#include<iostream>using namespace std;int main(){int a,b,c,d;for(a=1;a>=0;a=a-1) //1:是小偷0:不是for(b=1;b>=0;b=b-1)for(c=1;c>=0;c=c-1)for(d=1;d>=0;d=d-1)if((a==0)+(c==1)+(d==1)+(d==0)==3&&a+b+c+d==1) //4人的说法中有3个真的,且只有一个小偷{cout<<"A "<<(a?"":"不")<<"是小偷。
"<<endl;cout<<"B "<<(b?"":"不")<<"是小偷。
"<<endl;cout<<"C "<<(c?"":"不")<<"是小偷。
"<<endl;cout<<"D "<<(d?"":"不")<<"是小偷。
"<<endl;}return 0;}2.实验结果(六)实验题目六:求所有水仙花数之和,再计算平均数。
1.程序源代码#include<iostream>using namespace std;int main(){int a,b,c,s,i,n;double p;s=0;n=0;for(i=100;i<1000;i++){a=i/100;b=(i-a*100)/10;c=(i-a*100-b*10)/1;if(a*a*a+b*b*b+c*c*c==i){s=s+i;n=n+1;cout<<i<<" "<<endl;}}p=s/n;cout<<"水仙花数的总和s="<<s<<",其平均数p="<<p<<endl;return 0;}2.实验结果(七)实验题目七:找出1000-2000之间所有整数中满足如下条件的数,该数的高端两位数字的和与低端两位数字的和值相等,如1001、1120。
程序能输出所有满足条件的数及它们的总个数。
1.程序源代码#include<iostream>using namespace std;int main(){int a,b,c,d,i,n;n=0;for(i=1000;i<=2000;i++){a=i/1000;b=(i-a*1000)/100;c=(i-a*1000-b*100)/10;d=(i-a*1000-b*100-c*10)/1;if(a+b==c+d){n=n+1;cout<<i<<" ";}}cout<<"这类数的个数n="<<n<<endl;return 0;}2.实验结果三.个人小结经过这次上机实验,我学习掌握并应用了不同的循环和分支。
同时了解了C++中的有关循环和分支的知识,初步学会使用if else 语句、switch语句来实现分支结构,学会了使用while 语句、do while语句、for语句来实现循环结构,并在解决实际问题的编程中运用这些循环和分支,尤其是两重分支,它给我我们带来了更加简洁的算法。
除此之外,还对于一些特殊的数字有了初步的了解。
同时,自己对C++有了更加具体深入的体会,增加了对该门课程的兴趣。