实验十 指 针

实验十  指 针
实验十  指 针

实验十指针(基础)

例1:体会变量与其指针的关系[c10_204.c]

main( )

{int a,*pa; float b,*pb;

a=10;b=1.5;

pa=&a; pb=&b;

printf("%d,%f\n”,a,b);

printf("%d,%f\n”,*pa,*pb);

}

例2:体会形参为指针变量伟值方式与其运行原理[c10_207.c]

void f(int *x,int *y);

main()

{ int a=1,b=1;

f(&a,&b);

printf(“a=%d,b=%d\n”,a,b);

}

void f(int *x,int *y)

{ *x=*x+1;

*y=*y+2;

}

例3:体会形参为指针变量传值方式与其运行原理用函数来实现两个数由大到小顺序输出。[c10_209.c]

void swap(int *p1,int*p2)

{ int temp;

temp=*p1;

*p1=*p2;

*p2=temp; }

main( )

{ int a=3,b=6,*pa,*pb;

pa=&a; pb=&b;

if(a

printf("%d,%d\n",a,b);

printf("%d,%d\n",*pa,*pb);

}

/*注意:swap( )能否写成下面的形式呢?

void swap(int *p1,int *p2)

{int *p;

*p=*p1;

*p1=*p2;

*p2=*p;

}

*/

/*swap( )能否写成下面的形式呢?

void swap(int x,int y)

{int t;

t=x;x=y;y=t;

}

*/

例4:体会指针变量操纵数组元素

main()

{ int a[6]={1,2,3,4,5,6}

int *p;

p=a;

*(p+3)=*(p+3)+10;

printf(“%d,%d\n”,*p,*(p+3));

}

例5:体会数组作为函数形参的调用机理将数组a中的n个数逆序存放。

void invert(int x[],int n) /* 形式参数采用数组名*/

{int i,temp;

for(i=0;i<=(n-1)/2;i++)

{temp=x[i];x[i]=x[n-1-i];x[n-1-i]=temp; }

}

main( )

{ int a[10]={1,3,5,7,9,11,13,15,17,19}, i;

for(i=0;i<10;i++)

printf(“%5d”,a[i]);

invert(a,10); /* 实际参数为数组名*/

for(i=0;i<10;i++)

printf(“%5d”,a[i]); }

例6:体会指针变量作为函数形参的调用机理将数组a中的n个数逆序存放。方法二:void invert(int *p,int n );

main( )

{int a[10]={1,3,5,7,9,11,13,15,17,19},i;

for(i=0;i<10;i++)

printf(“%5d”,a[i]);

invert(a,10); /* 实际参数为数组名*/

for(i=0;i<10;i++)

printf(“%5d”,a[i]);}

void invert(int *p,int n) /* 形式参数采用指针变量*/

{int i,temp;

for(i=0;i<=(n-1)/2;i++)

{temp=*(p+i); *(p+i)=*(p+n-1-i); *(p+n-1-i)=temp; }

}

例7: 体会指针变戏量作为函数形参的调用机理求一维数组中下标为偶数的元素之和。

main()

{ int a[8]={1,2,3,4,5,6,7,8};

int *p=a,sum;

sum=add(p,8);

printf(“sum=%d\n”,sum);

}

int add(int *p1,int n)

{ int i,total=0;

for(i=0;i

total=total+*p1;

return(total);

}

例8: 体会多维数组的指针变量操控机理

main()

{ int a[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};

int *p;

p=a[0];

pr intf(“%d,%d,%d\n”,*(p+2),*(p+6),*(p+11));}

例9:.用字符指针变量来实现两数组的复制

main( )

{ char a[80],b[80],*pa,*pb;

pa=a;pb=b;

scanf("%s",pa);

while(*pa!= '\0')

{*pb=*pa;pa++;pb++;}

*pb=’\0’;

printf("%s",b);

}

例10:输入一行文字,找出其中大写字母和小写字母,数字,其它字符个数。

#include "stdio.h"

main()

{ int up=0,low=0,space=0,digit=0,other=0,i; char str[60],*p;

gets(str);

for(p=str;*p!='\0';p++)

{ if('A'<=*p&&*p<='Z') up++;

else if('a'<=*p&&*p<='z') low++;

else if(*p==' ') space++;

else if(*p<='9'&&*p>='0') digit++;

else other++; }

printf("up=%d low=%d space=%d",up,low,space); printf(" digit=%d other=%d\n",digit,other);

}

实验十指针(一)

一、目的和要求

1.熟悉指针的正确用法。

二、实验内容和步骤

1、指出下面程序错误的原因。

main( )

{

int x=10,y=5,*px,*py;

px=py;

px=&x;

py=&y;

printf(“*px=%d,*py=%d,*px,*py);

}

#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);

}

分析出错原因。

3.下面的程序能获得上述运行结果吗?

main()

{

char *S=”COMPUTER”;

char c;

printf(“which style you want to \n”);

printf(“capital (c) or uncapital(u);”);

c=getchar();

if(c=’c’)

put(s);

else {

s=”computer”;

puts(s);

}

}

分析出错原因。

4.设计一个C程序,用以测试下列各表达式的运算。

(1)y=*px++

(2)y=*++py

(3)y=(*py)++

(4)y=--*ppx++

三、分析讨论

数组与指针的联系。

实验十一指针(二)

一、目的和要求

1、了解指针参数的特殊性。

2、掌握函数、指针、数组的用法。

二、实验内容与步骤

1、想使指针变量pt1指向a 和b 中的大者,pt2指向小者,以下程序能否实现此目的?swap(int *p1,int *p2)

{

int *p;

p=p1;p1=p2;p2=p;

}

main()

{

int a,b;

scanf(“%d,%d”,&a,&b);

pt1=&a;pt2=&b;

if(a

printf(“%d,%d\n”,*pt1,*pt2);

}

上机调试此程序。如果不能实现题目要求,指出原因,并修改之。

2、下面的程序。注意其中的复杂声明语句;

int (*function[4])();

和各标记符的含义,并记录执行结果。

main()

{

int fun1();

int fun2();

int fun3();

int fun4();

int (*function[4])();

int a=10,b=5,i;

function[0]=fun1;

function[1]=fun2;

function[2]=fun3;

function[3]=fun4;

for(I=0;I<4;i++)

printf(“fun no.%d->%d\n”,i+1,execute(a,b,function[i]));

}

execute(int x,int y,int *fun())

{

return(*fun)(x,y);}

fun1(int x, int y)

{

return(x+y);}

fun2(int x,int y)

{

return(x-y);}

fun3(int x,int y)

{

return(x*y);}

fun4(int x,int y)

return(x/y);}

3、程序

main(int argc,char *argv[])

{

while(argc-->1)

printf(“%s\n”,*++argv);

的文件名为echo.h,编译后可执行程序名为echo.exe(用DOS时),运行时输入下面命令行:echo BASIC FORTRAN COBOL PASCL

分析输出结果。

实验六 指针.

实验六指针 ●实验目的 1、进一步掌握指针的概念,会定义和使用指针变量。 2、能正确使用数组的指针和指向数组的指针变量。 3、能正确使用字符串的指针和指向宇符串的指针变量。 4、了解指向指针的指针的概念及其使用方法。 5、通过实验进一步理解指针和函数的几种关系。 ● 实验内容 1、输入两个整数,按由大到小的顺序输出。 输入以下程序并调试运行。 #include int main() { int a,b; int *p=&a,*q=&b,*t; cout<<"请输入a和b:"; cin>>a>>b; if(a

char *temp; int i,j,n=4; for(i=0;i0) { temp=p[j]; p[j]=p[j+1]; p[j+1]=temp; } //排序 for(i=0;i

基于MATLAB的布丰投针实验仿真

系统建模与仿真题目:Buffon实验的仿真 院系: 电子工程学院 专业:信息对抗技术 班级:021231 姓名:余颖智 学号:02123021 指导老师:刘洋 完成时间:2015年4月 西安电子科技大学

基于MATLAB的投针实验仿真 摘要 在求证圆周率的过程中经过割圆术后,出现的投针试验以求出圆周率,目前利用MATLAB数学建模的仿真实验,运用到计算机中,简化其随机实验的操作量大,运算慢等特点。不同针距相同实验量运算后得出不同的π,其针距与线间距离相等,所得值接近于π。

目录 摘要 (2) 二、实验内容 (4) 三、建模流程图 (5) 四、程序主要代码 (6) 五、运行结果 (6) 六、结论 (7)

一、实验原理 1777年法国科学家布丰提出的一种计算圆周率的方法——随机投针法,即著名的布丰投针问题。该投针实验主要有如下三个步骤:(一)取一张白纸,在上面画许多条间距为a的平行线;(二)取一根长度为l(l

三、建模流程图

四、程序主要代码 str(handles.edit1,'string'); %取得变量,定义变量,变量初始化 n = str2double(str); str = get(handles.edit2,'string'); l = str2double(str); str = get(handles.edit3,'string'); a = str2double(str); counter = 0; %变量初始化 phi = 0; frequency = 0; Pi = 0; x = unifrnd(0,a/2,1,n);%产生n个(0,a/2)之间均匀分布的随机数,这里a/2是投针的中点到最近的平行线的距离 phi = unifrnd(0,pi,1,n);% 产生n个(0,pi)之间均匀分布的随机数,这里pi是投针与最近平行线的角度 for i=1:n if x(i)

沥青针入度实验

沥青针入度试验 一、试验目的:通过针入度的测定确定石油沥青的稠度,划分沥青牌号 二、试验仪器: 针入度仪(针连杆质量为:47.5±0.05g,针和针连杆组合件的总质量为:50±0.05g)、标准针(由硬化回火的不锈钢制成,洛氏硬度54~60)、试样皿(为金属圆柱形平底容器:针入度小于200时,内径为55mm,内部深度35mm;针入度在200~350时,内径70mm,内部深度为45mm)、恒温水浴(容量不小于10L,能保持温度在实验温度的±0.1℃范围内。水中应备有一个带孔的支架,位于水面下不少于100mm,距浴底不少于50mm 处)、平底玻璃保温皿、秒表、温度计、金属皿或瓷柄皿、筛、砂浴或可控制温度的密闭电炉 沥青针入度仪 三、试样制备: 1.将预先除去水分的沥青试样在砂浴或密闭的电炉上小心加热,不断搅拌以防止局部过热,加热温度不得超过试样估计软化点100℃。加热时间不得超过30min,用筛过滤除去杂质。加

热搅拌过程中避免试样中混入空气。 2.将试样倒入预先选好的试样皿中,试样深度应大于预计穿入深度10mm。 3.试样皿在15~30℃的空气中冷却1~1.5h(小试样皿)或1.5~2h(大试样皿),防止灰尘落入试样皿。软化将试样皿移入保持规定实验温度的恒温水浴中。小试样皿恒温1~1.5h,大试样皿恒温1.5~2h。 四、试验步骤: 1.调节针入度仪水平,检查针连杆和导轨,以确认无水和其他外来物,无明显摩擦。用甲苯或其他合适的溶剂清洗标准针,用干净布将其擦干,把针插入针连杆中固定。按试验条件放好砝码。 2.从恒温水浴中取出试样皿,放入水温控制在实验温度的平底玻璃保温皿中的三脚支架上,试样表面以上的水层高度应不小于10mm,将平底玻璃保温皿置入针入度仪的平台上。 3.慢慢放下连杆,使针尖刚好与试样接触。必要时用放置在合适位置的光源反射来观察。拉下活杆,使其与针杆顶端接触,调节针入度仪读数为零。 4.用手紧压按钮,同时启动秒表,使标准针自由下落穿入沥青试样,到规定时间停压按钮,使针停止移动。 5.拉下活杆与针连杆顶端接触,此时的读数即为试样的针入度。 6.同一试样至少重复测定三次,测定点之间及测定点与试

实验二(针入度,延度,软化点)

实验二:接枝增韧SBS改性乳化沥青的针入度、延度和软化点试验 一、沥青针入度试验 1.试验目的 沥青针入度是在规定温度(25℃)和规定时间(5s)内,附加一定重量的标准针(100g)垂直贯入沥青试样中的深度,单位为0.01mm。通过针入度的测定掌握不同沥青的粘稠度以及进行沥青标号的划分。 2.试验仪器设备 (1)针人度仪:凡能保证针和针连杆在无明显摩擦下垂直运动,并能指示针贯人深度准确至0.01mm的仪器均可使用。它的组成部分有拉杆、刻度盘、按钮、针连杆组合件,总质量为100±0.05g,调节试样高度的升降操作机件,调节针入度仪水平的螺旋,可自由转动调节距离的悬臂。 当为自动针入度仪时,其基本要求相同,但应附有对计时装置的校正检验方法,以经常校验。 (2)标准针:由硬化回火的不锈钢制成,洛氏硬度HRC54~60,针及针杆总质量2.5±0.5g,针杆上打印有号码标志,应对针妥善保管,防止碰撞针尖,使用过程中应当经常检验,并附有计量部门的检验单。 (3)盛样皿:金属制的圆柱形平底容器。小盛样皿的内径55mm,深35mm(适用于针人度小于200 );大盛样皿内径70mm ,深45mm (适用于针入度200~350 ) ;对针人度大于350 的试祥需使用特殊盛样皿,其深度不小于60mm ,试样体积不少于125mL 。 (4)恒温水槽:容量不少于10L ,控温精度为±0.1℃。水中应设有一带孔的搁板(台),位于水面下不少于100mm ,距水槽底不得少于50mm 处。 (5)平底玻璃皿:容量不少于1L ,深度不少于80mm。内设有一不锈钢三脚支架,能使盛样皿稳定。 (6)温度计:0℃~50℃,分度0.1℃。 (7)秒表,分度0.1s。 (8)盛样皿盖:平板玻璃,直径不小于盛样皿开口尺寸。 (9)溶剂:三氯乙烯等。 (10)其它:电炉或砂浴、石棉网、金属锅或瓷把坩埚等。 3.试验步骤 (1)将恒温水槽调到要求的温度25℃,保持稳定。 (2)将试样放在放有石棉垫的炉具上缓慢加热,时间不超过30min,用玻璃棒轻轻搅拌,防止局部过热。加热脱水温度,石油沥青不超过软化点以上100℃,煤沥青不超过软化点以上50℃。沥青脱水后通过0.6滤筛过筛。

c语言实验报告6 指针

实验6 指针1.实验目的和要求 (1)掌握指针的概念、指针变量定义格式和引用。 (2)掌握指针的运算方法。 (3)掌握数组的指针和指向数组的指针变量。 (4)掌握指针与函数的关系。 (5)能正确使用字符串的指针和指向字符串的指针变量。(6)了解指向函数的指针。 (7)了解指向指针变量的指针。 2.实验内容:实验指导书中的实验九。 3.实验步骤 9.1 调试程序,找出程序的错误。 改正后的程序代码(贴图): 运行结果(帖图): 9.2 运行程序:

运行结果:; 9.3 修改程序错误,并运行。 改正后程序代码: 运行结果(帖图): 9.4. 程序填空:

运行结果(请帖图):9.5. 程序填空:

程序填空: #include main() { int a[5][5]={0},*p[5],i,j; for(i=0; i<5; i++) p[i]= &a[i][0] ; for(i=0; i<5; i++) { *(p[i]+ i )=1; *(p[i]+5- (i+1) )=1; } for(i=0; i<5; i++) { for(j=0; j<5; j++) printf("%2d", p[i][j]); Printf("\n") ; } } 运行结果(请帖图):

9.6 编程(选作) #include main() { int *p,a[20],i,k,m,n; p=a; printf("请输入人数n:"); scanf("%d",&n); for(i=0;i

布丰投针实验模拟

系统建模与仿真 基于MATLAB的布丰实验模拟 姓名:石星宇 学号: 02123010 指导教师:刘洋 2015年4月9日

目录 基于MATLAB的布丰实验模拟 .................................................................... - 1 - 一、实验原理......................................................................................... - 1 - 二、编程模拟......................................................................................... - 1 - 1、程序流程图............................................................................... - 1 - 2、程序代码................................................................................... - 2 - 三、实验结果......................................................................................... - 2 -

基于MATLAB 的布丰实验模拟 一、实验原理 找一根铁丝弯成一个圆圈,使其直径恰恰等于平行线间的距离a 。可以想象得到,对于这样的圆圈来说,不管怎么扔下,都将和平行线有两个交点。因此,如果圆圈扔下的次数为n 次,那么相交的交点总数必为n 2。现在设想把圆圈拉直,变成一条长为a π的铁丝。显然,这样的铁丝扔下时与平行线相交的情形要比圆圈复杂些,可能有4个交点,3个交点,2个交点,1个交点,甚至于都不相交。由于圆圈和直线的长度同为a π,根据机会均等的原理(即等概率事件),当它们投掷次数较多,且相等时,两者与平行线组交点的总数期望也是一样的。这就是说,当长为a π的铁丝扔下n 次时,与平行线相交的交点总数应大致为n 2。现在转而讨论铁丝长为l 的情形。当投掷次数n 增大的时候,这种铁丝跟平行线相交的交点总数k 应当与长度l 成正比,因而有:l k λ=,式中λ是比例系数。为了求出λ来,只需注意到,对于a l π=的特殊情形,有n k 2=。于是求得a n πλ2=。代入前式就有:a m πln 2≈从而ak nl 2≈π。 二、编程模拟 1、程序流程图 参数初始化 产生位置随机数; 产生角度随机数 判断相交 1+=k k 1+=n n 是 否 判断结束

沥青针入度试验操作规程

沥青针入度试验操作规程1.按试验要求将恒温水槽调解到要求的试验温度,保持稳定。 2.将试样注入盛样皿中,试样高度应超过预计针入度值10mm,并盖上盛样皿,以防落入灰尘。盛有试样的盛样皿在15℃-30℃室温中冷却1-1.5h后移入保持规定试验温度±0.1℃的恒温水槽中1-1.5h. 3.调整针入度仪使之水平。检查针连杆和导轨,以确认无水和其它外来物,无明显摩擦。 4.取出达到恒温的盛样皿,并移入水温控制在试验温度±0.1℃的平底玻璃皿中的三角支架上,试样表面以上的水层深度不少于10mm. 5.将盛有试样的平底玻璃皿置于针入度仪的平台上。慢慢放下针连杆,用适当位置的反光镜或灯光反射观察,使针尖恰好与试样表面接触,调节刻度盘或深度指示器的指针指示为零。

6.开动秒表,在指针正指5s的瞬间,用手紧压按钮,使标准针自动下落贯入试样,经规定时间,停压按钮使针停止移动。7.拉下刻度盘拉杆与针连杆顶端接触,读取刻度盘指针或位移指示器的读数,准确至0.5(0.1mm). 8.同一试样平行试验至少3次,各测试点之间及与盛样皿边缘的距离不应少于10mm.. 9.试验完毕后,切断电源,清理仪器上的污物,填写使用记录。

沥青延度仪试验操作规程 1.将隔离剂拌和均匀,涂于清洁干燥的试模底板和两个侧模的内侧表面,并将试模在试模底板上装妥。 2.按规定的方法准备试样,然后将试样仔细自试模的一端至另一端往返数次缓缓注入试模中,最后略高出试模,灌模时应注意勿使气泡混入。 3.试件在室温中冷确30~40min,然后置于规定试验温度±0.1℃的恒温水槽中,保持30min后取出,用热刮刀刮除高出试模的沥青,使沥青与试模面齐平。然后将试模连同底板再浸入规定试验温度的水槽中1~1.5h。 4.检查延度仪延伸速度是否符合规定要求,然后移动滑板使其指针正对标尺的零点。将延度仪注水,并保温达试验温度±0.5℃。将盛有试样的试模自玻璃板或 5.将保温后的试件连同底板移入延度仪的

C语言实验六实验报告——指针

一、实验项目名称 指针 二、实验目的 1.掌握指针的基本概念和基本用法。包括:变量的地址和变量的值,指针变量的说明、指针变量的初始化、指针的内容与定义格式、指针的基本运算等; 2.掌握数组与指针的关系并能够利用指针解决数组的相关问题; 3.掌握字符串与指针的关系并能够利用指针处理字符串的问题; 4.掌握指针与函数的关系并能够利用指针处理函数问题; 5.了解指向指针的指针的概念及其使用方法; 6.能够使用指针进行程序设计。 三、实验内容 有关指针的程序设计 1.编程实现:任意输入的10个数,求其平均值。 要求: (1)10个数采用scanf语句读入。 (2)利用指针实现对这10个数的访问。 (3)要求平均值的精度为小数后面2位。 2.编程实现:将一个任意整数插入到一个已排序的整数数组中,插入后数组中的数仍然保持有序。 要求: (1)整数数组由初始化方式输入。任意整数由scanf函数输入; (2)实现过程采用指针处理; (3)输出原始数组数据以及插入数据后的数组数据并加以相应说明。 3.编写函数newcopy(char *new,char *old),它的功能是删除old所指向的字符串中的小写字母,并将所得到的新串存入new中。 要求: (1)在主函数中以初始化方式输入一个字符串; (2)调用newcopy()函数; (3)在主函数中输出处理后的结果。 4.编程实现:输入三个整数,按由大到小的顺序输出。

要求: (1)通过scanf函数输入三个数据并存入三个变量中; (2)利用指针实现从大到小输出; (3)修改程序,将三个整型数据改为字符型数据,输入三个字符,按从大到小数顺序输出; (4)修改程序,将三个字符型数据改为字符串数据,输入三个字符串,按从小到大顺序输出; (5)体会指针对不同数据处理的特点。 四、实验步骤及结果 一、 #include <> void main() { int a[10],n,sum=0; float aver;/* 定义平均数为浮点型*/ int *p=a;/*初始化*/ printf("Please input 10 numbers:\n"); for (n=0;n<10;++n) scanf("%d",&a[n]);/*输入十个数*/ for (n=0;n<10;++n) sum=sum+*(p+n);/*使用指针访问数据*/ aver=(float)sum/n; printf("Average is %.2f",aver);/*精确到小数点后两位*/ } 二、 #include <> void arr(int *a,int n);/*定义排序函数*/ void insert(int *a,int num);/*插入并排序函数*/ int n=10;/*定义数据个数,可修改*/ void main()

实验六 指针(题目)

实验六指针 一、实验目的及要求 1.通用实验进一步掌握指针的概念,会定义和使用指针变量; 2.能正确使用数组的指针和指向数组的指针变量; 3.能正确使用字符串的指针和指向字符串的指针变量; 4.能正确使用指向函数的指针变量; 5.了解指向指针的指针的概念及其使用方法。 二、实验学时 4学时 三、实验任务 编程序并上机调试运行程序(都要求用指针处理)。 1.上机验证以下c70101.c程序的运行结果 #include void main() { inti,j,*pi,*pj; pi=&i; pj=&j; i=5; j=7; printf("\n%d\t%d\t%d\t%d",i,j,pi,pj); printf("\n%d\t%d\t%d\t%d",&i,*&i,&j,*&j); } 运行结果: 5 7 -34 -32 -34 5 -32 7 相关知识:指针的值与指针指向的变量值的区别。在VC环境下,以上运行结果中的负数是另一个值。 2.上机验证以下c70102.c程序的运行结果 #include void main() { inti,a[]={1,2,3},*p; p=a;/*将数组a首地址赋给指针p*/ for (i=0;i<3;i++) printf("%d,%d,%d,%d\n",a[i],p[i],*(p+i),*(a+i)); } 运行结果: 1,1,1,1 2,2,2,2

3,3,3,3 相关知识:①指针指向数组的方法;②指针表示数组元素的方法。③数组元素的多种表示方法。 3.调试下列c70103.c程序,使之具有如下功能:用指针法输入12个数,然后按每行4个数输出。写出调试过程。 #include void main() { intj,a[12],*p=a; for(j=0;j<12;j++) scanf("%d",p++); p=a; for(j=1;j<=12;j++) { printf("%4d",*p++); if(j%4 == 0) printf("\n"); } } 相关知识:①调试时指针变量指向哪个目标变量;②区分指针的值和指针指向变量的值; ③通过指针操作数组元素。 4.调试下列c70104.c程序,使之具有如下功能:任意输入2个数,调用两个函数分别求:⑴2个数的和,⑵2个数交换值。 #include void main( ) { inta,b,c,*p=&c; void sum(int ,int ,int *); void swap(int * ,int * ); scanf("%d,%d",&a,&b); sum(a,b,p); swap(&a,&b); printf("sum=%d\n",c); printf("a=%d,b=%d\n",a,b); } void sum(inta,intb,int *c) { *c=a+b; } void swap(int *a,int *b) { int *t; t=a; a=b; b=t; } 相关知识:①调试程序时注意参数传递的是数值还是地址。②指针作为参数;③利用指针得到多个返回值。

沥青针入度试验

沥青针入度试验 1.试验目得 沥青针入度就是在规定温度(25℃)与规定时间(5s)内,附加一定重量得标准针(100g)垂直贯入沥青试样中得深度,单位为0.01mm。通过针入度得测定掌握不同沥青得粘稠度以及进行沥青标号得划分。 2.试验仪器设备 (1)针人度仪:凡能保证针与针连杆在无明显摩擦下垂直运动,并能指示针贯人深度准确至0.01mm得仪器均可使用。它得组成部分有拉杆、刻度盘、按钮、针连杆组合件,总质量为100±0.05g,调节试样高度得升降操作机件,调节针入度仪水平得螺旋,可自由转动调节距离得悬臂。 当为自动针入度仪时,其基本要求相同,但应附有对计时装置得校正检验方法,以经常校验。 (2)标准针:由硬化回火得不锈钢制成,洛氏硬度HRC54~60,针及针杆总质量2、5±0.5g,针杆上打印有号码标志,应对针妥善保管,防止碰撞针尖,使用过程中应当经常检验,并附有计量部门得检验单。 (3)盛样皿:金属制得圆柱形平底容器。小盛样皿得内径55mm,深35mm(适用于针人度小于200);大盛样皿内径70mm ,深45mm (适用于针入度200~350 ) ;对针人度大于350 得试祥需使用特殊盛样皿,其深度不小于60mm ,试样体积不少于125mL。 (4)恒温水槽:容量不少于10L ,控温精度为±0.1℃。水中应设有一带孔得搁板(台),位于水面下不少于100mm ,距水槽底不得少于

50mm处。 (5) 平底玻璃皿:容量不少于1L,深度不少于80mm。内设有一不锈钢三脚支架,能使盛样皿稳定。 (6)温度计:0℃~50℃,分度0.1℃。 (7)秒表,分度0、1s。 (8)盛样皿盖:平板玻璃,直径不小于盛样皿开口尺寸。 (9)溶剂:三氯乙烯等。 (10)其它:电炉或砂浴、石棉网、金属锅或瓷把坩埚等。 3.预习要求 掌握沥青针入度得概念,熟悉测定沥青针入度得试验步骤。 4.试验步骤 (1)将恒温水槽调到要求得温度25℃,保持稳定。 (2)将试样放在放有石棉垫得炉具上缓慢加热,时间不超过30min,用玻璃棒轻轻搅拌,防止局部过热。加热脱水温度,石油沥青不超过软化点以上100℃,煤沥青不超过软化点以上50℃。沥青脱水后通过0、6滤筛过筛。 (3)试样注入盛样皿中,高度应超过预计针入度值10mm,盖上盛样皿盖,防止落入灰尘。在15℃~30℃室温中冷却1~1、5h(小盛样皿)、或者2~2、5h(特殊盛样皿)后,再移入保持规定试验温度±0.1℃得恒温水槽中恒温1~1、5h(小盛样皿)、1、5~2h(大盛样皿)或者2~2、5h(特殊盛样皿)。 (4)调整针人度仪使之水平。检查针连杆与导轨,以确认无水与其它

蒲丰氏投针问题的模拟过程

蒲丰氏投针问题的模拟过程,随机数发生器也是自编的,以供大家参考和提出建议。谢谢。(seed1和seed2最好选择3和5,为了使投针次数达到1000000,CVF进行如下设置Project->settings->link-> output,将stack allocations reserve:设为1000000000) program getpi implicit none real,parameter::a=5,L=4,pi=3.14159 integer::n1,i,counter=0 real,allocatable::R1(:),R2(:) real::theta,x,pi1 write(*,*) 'input the size of the array:' read(*,*) n1 allocate(R1(n1)) allocate(R2(n1)) call random(n1,R1,R2) do i=1,n1 x=a*(2*R1(i)-1) theta=pi*R2(i) if(abs(x)

沥青针入度试验

沥青针入度试验 一、试验目的: 通过针入度的测定确定石油沥青的稠度,划分沥青牌号 二、试验仪器: 针入度仪(针连杆质量为:47.5±0.05g,针和针连杆组合件的总质量为:50±0.05g)、标准针(由硬化回火的不锈钢制成,洛氏硬度54~60)、试样皿(为金属圆柱形平底容器:针入度小于200时,内径为55mm,内部深度35mm;针入度在200~350时,内径70mm,内部深度为45mm)、恒温水浴(容量不小于10L,能保持温度在实验温度的±0.1℃范围内。水中应备有一个带孔的支架,位于水面下不少于100mm,距浴底不少于50mm处)、平底玻璃保温皿、秒表、温度计、金属皿或瓷柄皿、筛、砂浴或可控制温度的密闭电炉 沥青针入度仪 三、试样制备: 1.将预先除去水分的沥青试样在砂浴或密闭的电炉上小心加热,不断搅拌以防止局部过热,加热温度不得超过试样估计软化点100℃。加热时间不得超过30min,用筛过滤除去杂质。加热搅拌过程中避免试样中混入空气。 2.将试样倒入预先选好的试样皿中,试样深度应大于预计穿入深度10mm。 3.试样皿在15~30℃的空气中冷却1~1.5h(小试样皿)或1.5~2h(大试样皿),防止灰尘落入试样皿。软化将试样皿移入保持规定实验温度的恒温水浴中。小试样皿恒温1~ 1.5h,大试样皿恒温1.5~2h。 四、试验步骤: 1.调节针入度仪水平,检查针连杆和导轨,以确认无水和其他外来物,无明显摩擦。用甲苯或其他合适的溶剂清洗标准针,用干净布将其擦干,把针插入针连杆中固定。按试验条件放好砝码。 2.从恒温水浴中取出试样皿,放入水温控制在实验温度的平底玻璃保温皿中的三脚支架上,试样表面以上的水层高度应不小于10mm,将平底玻璃保温皿置入针入度仪的平台上。 3.慢慢放下连杆,使针尖刚好与试样接触。必要时用放置在合适位置的光源反射来观察。拉下活杆,使其与针杆顶端接触,调节针入度仪读数为零。 4.用手紧压按钮,同时启动秒表,使标准针自由下落穿入沥青试样,到规定时间停压按钮,使针停止移动。 5.拉下活杆与针连杆顶端接触,此时的读数即为试样的针入度。 6.同一试样至少重复测定三次,测定点之间及测定点与试样皿之间距离不应小于10mm。每次测定前应将平底玻璃保温皿放入恒温水浴中。每次测定换一根干净的针或取下针用甲苯或其他溶剂擦干净,再用干净布擦干。 7.测定针入度大于200的沥青试样,至少用三根针,每次测定后将针留在试样中,直至三次测定完成后,才能把针从试样中取出。 五、结果评定:

C语言_实验六 指针剖析

实验六指针 一、实验目的 1、掌握指针的概念,定义和使用指针变量; 2、掌握指针与数组的关系,指针与数组有关的算术运算、比较运算。 3、掌握字符串指针作的用法。 二、相关知识点 ●地址和指针的概念; ●数组和指针的关系; ●字符串和指针的关系; 三、实验内容一(验证及程序分析) Eg5-1: 输入两个整数,并使其从大到小输出,用指针变量实现数的比较。 (1)源程序: #include void main() { int *p1,*p2,*p,a,b; scanf("%d,%d",&a,&b); p1=&a; p2=&b; if(a

printf("a=%d,b=%d\n",a,b); printf("max=%d,min=%d\n",*p1,*p2); } (2)程序运行结果: (3)在程序中的定义一个整型变量t,然后将语句段if(a

Eg5-2:运行并改正下面程序中的错误。#include void main() { int a=3,b; int *p; *p=a; b=*p; printf("%d\n",b); a=100; b=*p; printf("%d\n",b); } (1)程序运行结果:

(2)请简要分析程序错误的原因: (3)请将程序中的错误改正后重新运行: Eg5-3:用指针法输入12 个数,然后按每行4 个数输出。 (1)算法分析:定义一个整型数组和一个整型指针,这样通过数组就可以静态分配内存空间,存储数据;然后将指针与数组相关,使指针指向与数组相同

蒲丰投针实验模拟

概率论与数理统计实验 蒲丰投针与蒙特卡罗法 班级应数12级01班 学号2012444086 姓名张旭东

蒲丰投针与蒙特卡罗法 张旭东2012444086 (重庆科技学院数学与应用数学,重庆沙坪坝) 【摘要】通过设计一个投针实验使这个事件的概率和未知量π有关,然后通过重复实验,以频率估计概率,即可求得未知参数π的近似解。这种方法称为随机模拟法,也称为蒙特卡罗法。一般来说,实验次数越多所得的近似值就越接近真值。可以利用MATLAB来大量重复地模拟所设计的随机实验。 【关键词】随机模拟;投针实验;重复实验

1 引言 蒲丰投针问题是由法国科学家蒲丰(Buffon)在1777年提出的,它是概率中非常有代表性的问题,它是第一个用几何形式表达概率问题的例子,其结论具有很强的理论与实际意义。蒲丰针问题的解决不仅较典型的反应了集合概率的特征及处理方法,而且还可以由此领略到从“概率土壤”上开出的一朵瑰丽的鲜花——蒙特卡洛(Monte-Carlo)方法。 蒙特卡罗(Monte Carlo)方法,也称计算机模拟方法,是一种基于“随机数”的计算方法,大数定律为近年来发展迅速的随机计算机和随机模拟方法提供了理论基础。 MATLAB是一个适合多学科,具有多种工作平台的功能强大的大型软件。MATLAB已经成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的进本教学工具,Matlab随机数发生器的种类丰富且用法简便。 本文介绍了利用随机模拟方法和大数定律的相关理论解决蒲丰投针问题计算π的近似值。

2 有关数学实验的有关基础 定理(贝努力大数定律) 设n μ是n 重贝努力实验中事件A 出现的次数,P 是事件A 每次实验中出现的概率,即P(A)=p,则对任意的 ε>0,有 3 实验 蒲丰投针问题 在平面上画有等距离的一些平行线,平行线间的距离为a(a>0),向平面上随机投一长为l(l

沥青针入度试验

沥青针入度试验 1.试验目的 沥青针入度是在规定温度(25℃)和规定时间(5s)内,附加一定重量的标准针(100g)垂直贯入沥青试样中的深度,单位为0.01mm。通过针入度的测定掌握不同沥青的粘稠度以及进行沥青标号的划分。 2.试验仪器设备 (1)针人度仪:凡能保证针和针连杆在无明显摩擦下垂直运动,并能指示针贯人深度准确至0.01mm的仪器均可使用。它的组成部分有拉杆、刻度盘、按钮、针连杆组合件,总质量为100±0.05g,调节试样高度的升降操作机件,调节针入度仪水平的螺旋,可自由转动调节距离的悬臂。 当为自动针入度仪时,其基本要求相同,但应附有对计时装置的校正检验方法,以经常校验。 (2)标准针:由硬化回火的不锈钢制成,洛氏硬度HRC54~60,针及针杆总质量2.5±0.5g,针杆上打印有号码标志,应对针妥善保管,防止碰撞针尖,使用过程中应当经常检验,并附有计量部门的检验单。(3)盛样皿:金属制的圆柱形平底容器。小盛样皿的内径55mm,深35mm(适用于针人度小于200 );大盛样皿内径70mm ,深45mm (适用于针入度200~350 ) ;对针人度大于350 的试祥需使用特殊盛样皿,其深度不小于60mm ,试样体积不少于125mL 。 (4)恒温水槽:容量不少于10L ,控温精度为±0.1℃。水中应设

有一带孔的搁板(台),位于水面下不少于100mm ,距水槽底不得少于50mm 处。 (5)平底玻璃皿:容量不少于1L ,深度不少于80mm。内设有一不锈钢三脚支架,能使盛样皿稳定。 (6)温度计:0℃~50℃,分度0.1℃。 (7)秒表,分度0.1s。 (8)盛样皿盖:平板玻璃,直径不小于盛样皿开口尺寸。 (9)溶剂:三氯乙烯等。 (10)其它:电炉或砂浴、石棉网、金属锅或瓷把坩埚等。 3.预习要求 掌握沥青针入度的概念,熟悉测定沥青针入度的试验步骤。4.试验步骤 (1)将恒温水槽调到要求的温度25℃,保持稳定。 (2)将试样放在放有石棉垫的炉具上缓慢加热,时间不超过30min,用玻璃棒轻轻搅拌,防止局部过热。加热脱水温度,石油沥青不超过软化点以上100℃,煤沥青不超过软化点以上50℃。沥青脱水后通过0.6滤筛过筛。 (3)试样注入盛样皿中,高度应超过预计针入度值10mm,盖上盛样皿盖,防止落入灰尘。在15℃~30℃室温中冷却1~1.5h(小盛样皿)、或者2~2.5h(特殊盛样皿)后,再移入保持规定试验温度±0.1℃的恒温水槽中恒温1~1.5h(小盛样皿)、1.5~2h(大盛样皿)或者2~2.5h(特殊盛样皿)。

实验六 指 针

昆明理工大学(C++面向对象编程)上机报告 实验六指针(一) 一、目的和要求 1. 熟悉指针的正确用法。 2. 掌握指针作为函数参数的使用方式 二、实验内容和步骤 1、指出下面程序错误的原因。 main( ) { int x=10,y=5,*px,*py; px=py; px=&x; py=&y; printf(“*px=%d,*py=%d,*px,*py);

} 答:警告是px,py没有赋初值; 错误时printf语句中缺少了” 正确:printf(“*px=%d,*py=%d”,*px,*py); 2、下面的程序试图有如下运行结果: 请调试下面的程序,使其有如上执行结果。#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); } 分析出错原因。 If(c=’ c’)不应用赋值语句 Strcpy函数中s 不应该为指针!!应定义为数组;正确程序 3.下面的程序能获得上述运行结果吗? main() {

char *S=”COMPUTER”; char c; printf(“which style you want t o \n”); printf(“capital (c) or uncapital(u);”); c=getchar(); if(c=’c’) put(s); else { s=”computer”; puts(s); } } 分析出错原因。 If(c=’ c’)不应用赋值语句 Put函数无法输出 正确程序

蒲丰投针及蒙特卡罗模拟电子教案模拟

概率模型的随机模拟与蒲丰投针实验 第1章模拟 1.1 模拟的概念 每一个现实系统外部环境之间都存在着一定的数学的或者逻辑的关系,这些关系在系统内部的各个组成部分之间也存在。对数学、逻辑关系并不复杂的模型,人们一般都可用解析论证和数值计算求解。但是,许多现实系统的这种数学、逻辑模型十分复杂,例如大多数具有随机因素的复杂系统。这些系统中的随机性因素很多,一些因素很难甚至不可以用准确的数学公式表述,从而无法对整个系统采用数学解析法求解。这类实际问题往往可以用模拟的方法解决。 模拟主要针对随机系统进行。当然,也可以用于确定性系统。本文讨论的重点是其中的随机模拟。采用模拟技术求解随机模型,往往需要处理大批量的数据。因此,为了加速模拟过程,减少模拟误差,通常借助于计算机进行模拟,因此又称为计算机模拟。 计算机模拟就是在已经建立起的数学、逻辑模型的基础之上,通过计算机试验,对一个系统按照一定的决策原则或作业规则,由一个状态变换为另一个状态的行为进行描述和分析。 1.2 模拟的步骤 整个模拟过程可以划分为一定的阶段,分步骤进行。 (1)明确问题,建立模型。 在进行模拟之前,首先必须正确地描述待研究的问题,明确规定模拟的目的和任务。确定衡量系统性能或模拟输出结果的目标函数,然后根据系统的结构及作业规则,分析系统各状态变量之间的关系,以此为基础建立所研究的系统模型。为了能够正确反映实际问题的本质,可先以影响系统状态发生变化的主要因素建立较为简单的模型,以后再逐步补充和完善。 (2)收集和整理数据资料。 模拟技术的正确运用,往往要大量的输入数据。在随机模拟中,随机数据仅靠一些观察值是不够的。应当对具体收集到的随机性数据资料进行认真分析。确定系统中随机性因素的概率分布特性,以此为依据产生模拟过程所必需的抽样数

沥青针入度试验规程

沥青针入度试验 JTG E20-2011准备工作 1 按沥青试样准备方法准备试样。 2 按试验要求将恒温水槽调节到要求的试验温度25℃,或15℃、30℃(5℃)……等,保持稳定。 3 将试样注入盛样皿中,试样高度应超过预计针入度值10mm,并盖上盛样皿,以防落入灰尘。盛有试样的盛样皿在15℃~30℃室温中冷却1h~1.5h(小盛样皿)后移入保持规定试验温度±0.1℃的恒温水槽中1h~1.5h(小盛样皿)。 4 调整针入度仪使之水平。检查针连杆和导轨,以确认无水和其它外来物,无明显摩擦。用三氯乙烯或其它溶剂清洗标准针,并拭干。将标准针插入针连杆,用螺丝固紧。按试验条件,加上附加砝码。 试验步骤 1 取出达到恒温的盛样皿,并移入水温控制在试验温度±0.1℃(可用恒温水槽中的水)的平底玻璃皿中的三脚支架上,试样表面以上的水层深度不少于10mm。 2 将盛有试样的平底玻璃皿置于针入度仪的平台上。慢慢放入针连杆,用适当位置的反光镜或灯光反射观察,使针尖恰好与试样表面接触。拉下刻度盘的拉杆,使与针连杆顶端轻轻接触,调节刻度盘或深度指示器的指针指示为零。 3 采用自动针入度仪时,计时与标准针落下贯入试样同时开始,至5s时自动停止。 4 拉下刻度盘拉杆与针连杆顶端接触,读取刻度盘指针或移指示器的读数,准确至0.5(0.1mm)。 5 同一试样平行试验至少3次,各测试点之间及与盛样皿边缘的距离不应少于10mm。每次试验后应将盛有盛样皿的平底玻璃皿放入恒温水槽,使平底玻璃皿中水温保持试验温度。每次试验应换一根干净标准针或将标准针取下用蘸有三氯乙烯溶剂的棉花或布揩净,再用干棉花或布擦干。 6 测定针入度大于200的沥青试样时,至少用3支标准针,每次试验后将针留在试样中,直至3次平行试验完成后,才能将标准针取出。

相关文档
最新文档