实验8 指针

合集下载

实验八、九 子程序、中断程序实验

实验八、九 子程序、中断程序实验

实验八子程序实验一、实验目的1、掌握全局、局部变量的定义与作用;2、熟悉无参子程序和有参子程序的建立和调用方法3、进一步熟悉常用功能指令(加、减、数据类型转换、循环等(另:自学内容已经布置:数学运算指令和数据转换指令)二、实验设备TKPLC-1实验实训装置一台,装有STEP7软件的计算机一台,西门子编程电缆一根、连接导线若干。

三、实验内容与步骤1、不带参数子程序调用例子:设置存储器位或字节的几种方法(注意符号的定义与使用,其它功能指令的学习包含在子程序和中断程序实验中。

下同)本程序描述了用一定值存入预定的存储器位或字节,以及清除存储区内容的几种方法采用下列指令:FILL 设置一个或几个字FOR...NEXT FOR...NEXT循环R 对一位或几位置0输入以下子程序和主程序,注意体会各指令作用及符号的使用。

子程序0功能:如果输入I0.0=1,则把VW200中值复制到VW204至VW216子程序1功能:当输入I0.1=1时,把几个初始数复制到变量存储区。

循环次数取决于VW10中的首次循环数和VW0中的最后一次循环数。

当前循环次数存储在内存字VW20中,首次计数值(50)存储在累加器AC0中,计数值缓冲区首址(& VB100)存储在累加器AC1中,AC1为计数值缓冲区指针,每循环一次的功能:AC0的计数值存入AC1指针所指向的内存单元,AC1指针加2个字节,指向下一个内存字,AC0的计数值加4,直至最后一次循环。

子程序2的功能,使V100.0开始的176个位复位,V204.0开始的112个位复位。

2、带参数子程序的调用例子:求变量区和。

局部变量设置表:子程序功能:求VW100开始的10个数据字的和。

先将整形数转为双整型数,再加,指针值每次增2,循环10次。

注意体会各指令作用。

提醒:欲间接存取字节,将指针用一递增或递减。

欲间接存取字,将指针用二递增或递减。

欲间接存取双字,将指针用四递增或递减。

实验8-常数据成员、常成员函数

实验8-常数据成员、常成员函数

#include <iostream.h> class Rectangle { public: Rectangle(int a,int b)//2个参数的构造函数Rectangle { width=a; length=b; }//负责对对象的宽和长数据成员初始化 int Area()//求矩形的面积 { return width*length; } int Periment()//求矩形的周长 { return 2*(width+length); } void Changesize(int a,int b)//改变矩形的宽和长 { width=a; length=b; } void Print();//负责打印求的的面积和周长 private: int width,length; }; void Rectangle::Print() { cout<<"AREA="<<Area()<<endl; cout<<"PERIMENT="<<Periment()<<endl; } void main() { Rectangle r(5,8);//定义对象r 初始化 r.Print(); r.Changesize(3,9);//调用对象r的成员函数Changesize改变宽和长 r.Print(); }
《教材》第六章例题(lt): 6.9 (lt6.9.cpp) 6.10 (lt6.5之:
2(xt6.5-2.cpp); 3(xt6.5-3.cpp);
2、编程实现一个简单的计算器。要求从键盘上输入两 个浮点数,计算出它们的加、减、乘、除运算的结 果。
常成员函数常数据成员什么是常数据成员成员函数指针什么是成员函数静态成员函数成员函数类的静态成员函数cstring成员函数static成员函数

实验8 探究阻力对物体运动的影响(解析版)

实验8 探究阻力对物体运动的影响(解析版)

实验8 探究阻力对物体运动的影响基础考点梳理(1)实验装置【分析现象】 水平面越光滑,小车的速度减小得越慢,运动距离越远 ;【实验结论】①运动物体受到的阻力越大,运动的越近,阻力越小,运动得越远。

①若运动的物体不受阻力,物体的运动速度将不会减小,将保持做匀速直线运动。

【实验方法】:①控制变量法:控制小车从斜面上 同一高度处 由静止释放,使小车到斜面底端时具有 相同的初速度 ; ①转换法:通过小车在水平面上 滑行距离的长短 来间接判断小车所受阻力大小;①实验推理法:若小车不受阻力时,小车的速度将 不会减小 ,将永远做 匀速直线运动 ;【交流与讨论】(3)小车到达斜面底端继续前行的原因:小车具有 惯性 ;(4)小车最终会停下来的原因:受到 摩擦阻力(非平衡力) 的作用;(5)牛顿第一定律的内容:一切物体在没有受到外力作用时,总保持静止状态或匀速直线运动状态;(6)牛顿第一定律得到的方法:在大量 经验事实 的基础上,通过科学的 推理 总结归纳出来的, 不能直接 由实验得到。

(7)对牛顿第一定律的理解:力不是 维持 物体运动状态的原因,力是 改变 物体运动状态的原因。

(8)对小车受力情况的判断:小车在水平面上运动时 重力 和 支持力 相互平衡,水平方向上受到阻力的作用,做 减速 直线运动;(9)小车在运动过程中做功与能量转化:从斜面顶端滑动到水平面的过程中,重力势能转化为 动能和内能 ;从水平面运动到静止的过程中,动能转化为内能, 机械能不守恒 ,但能量的总量 不变 ;小车在三种不同的水平面上克服阻力做功的关系:321W W W ==,功率:321P P P >>(依次为毛巾、棉布和木板)。

【评估】(1)本实验选用小车而不选用木块的原因是:相同条件下,小车受到的阻力较小,实验现象较明显.(2)小车到达水平面后最终停下来的原因是:小车在水平面上受摩擦力的作用,力能改变物体的运动状态.典型例题赏析实验结论:(1)在其他条件相同时,平面越光滑,滑块受到的阻力越小,滑块前进的距离越远.(2)假如水平面足够光滑(完全没有摩擦阻力),滑块的速度不会减小,滑块将做匀速直线运动.1.实验小组为探究“阻力对物体运动的影响”,设计了如图所示的斜面实验,让小车从斜面上滑到接触面分别为毛巾、棉布和木板的水平面上,观察小车在水平面上滑行的距离.(1)实验时要固定斜面,分别将小车从斜面上同一位置由静止释放,目的是保证小车到达斜面底端的初速度相同.(2)本实验通过木块在水平面上滑行距离大小来判断阻力对小车运动的影响.(3)分析实验现象可知:水平面越光滑,运动的小车所受的阻力小,速度减小得慢,小车向前滑行的距离远.并进一步推测:若水平面完全光滑且足够长,小车将一直做匀速直线运动,表明物体的运动不需要(选填“需要”或“不需要”)力来维持;(4)(现象分析)(2022武汉)实验中,小车在水平面上最终都会静止下来,说明力可以改变物体的运动状态.(5)从能量转化的角度看,小车在水平面上克服阻力所做的功三次一样多(选填“在毛巾上更多”、“在棉布上更多”、“在木板上更多”或“三次一样多”),小车在水平面上克服阻力做功的功率大小关系在毛巾上最大(选填“在毛巾上最大”、“在棉布上最大”、“在木板上最大”或“三次一样大”);(6)小组的小芋同学思考了一个问题:当自己荡秋千运动到右侧最高点时,假设受到的力全部消失,自己将处于怎样的运动状态呢?你认为下列选项中正确的是D (图中的黑点表示小芋)A.做匀速圆周运动B.做匀速直线运动C.继续来回摆动D.保持静止状态(7)若让同一小车从同一斜面的不同高度由静止开始下滑,则还可以探究小车的②④关系(选填序号).①重力势能与质量;①重力势能与高度;①动能与质量;①动能与速度.(8)小芋想测出小车在毛巾表面运动时所受阻力的大小,请你利用合适的实验器材,帮她写出实验步骤:使用弹簧测力计水平匀速拉动小车,则弹簧测力计的示数就代表物体所受摩擦力大小。

实验8-1 指针

实验8-1 指针

实验8-1 指针(一)1【实验目的】(1)掌握指针的概念和定义和使用指针变量的方法(2)能正确使用数组的指针和指向数组的指针变量(3)能正确使用字符串的指针和指向字符串的指针变量【实验要求】(1)熟练掌握和使用一维数组的指针和指向一维数组的指针变量(2)能正确使用字符串的指针和指向字符串的指针变量【实验环境】(1) Microsoft XP操作系统(2) Microsoft VC++ 6.0【实验内容】1、两个数比较/acmhome/problemdetail.do?&method=showdetail&id=1002题目描述:求2个数中较大者。

输入:第一行为测试的数据组数N,接下来的N行分别是两个待比较的整数输出:输出N行,每一行的值为每组数中较大的整数样例输入21 215 10样例输出2152、三个数排序/JudgeOnline/problem.php?id=1511题目描述:输入三个整数,按由小到大的顺序输出。

输入:三个整数输出:由小到大输出成一行,每个数字后面跟一个空格样例输入:2 3 1样例输出:1 2 33、字符串排序/acmhome/problemdetail.do?&method=showdetail&id=1484描述:输入3个字符串,按字典序从小到大进行排序。

输入:输入数据有一行,分别为3个字符串,用空格分隔。

输出:输出排序后的三个字符串,用空格分隔。

样例输入:abcd cdef bcde样例输出:abcd bcde cdef4、重置最值/JudgeOnline/problem.php?id=1513题目描述:输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

写三个函数;①输入10个数;②进行处理;③输出10个数。

输入:10个整数输出:整理后的十个数,每个数后跟一个空格(注意最后一个数后也有空格)样例输入:2 1 3 4 5 6 7 8 10 9样例输出:1 2 3 4 5 6 7 8 9 105、复制部分字符串/JudgeOnline/problem.php?id=1516题目描述:有一字符串,包含n个字符。

高考物理实验8、电表改装历年高考题

高考物理实验8、电表改装历年高考题

高考物理实验8、电表改装历年高考题1.(2019·新课标全国Ⅰ卷)某同学要将一量程为250 μA的微安表改装为量程为20 mA的电流表。

该同学测得微安表内阻为1 200 Ω,经计算后将一阻值为R的电阻与该微安表连接,进行改装。

然后利用一标准毫安表,根据图(a)所示电路对改装后的电表进行检测(虚线框内是改装后的电表)。

(1)根据图(a)和题给条件,将(b)中的实物连接。

(2)当标准毫安表的示数为16.0 mA时,微安表的指针位置如图(c)所示,由此可以推测出改装的电表量程不是预期值,而是。

(填正确答案标号)A.18 Ma B.21 mA C.25mA D.28 mA(3)产生上述问题的原因可能是。

(填正确答案标号)A.微安表内阻测量错误,实际内阻大于1200Ω B.微安表内阻测量错误,实际内阻小于1200ΩC.R值计算错误,接入的电阻偏小 D.R值计算错误,接入的电阻偏大(4)要达到预期目的,无论测得的内阻值是否正确,都不必重新测量,只需要将阻值为R的电阻换为一个阻值为kR的电阻即可,其中k= 。

解析:(1)电表改装时,微安表应与定值电阻R并联接入虚线框内,则实物电路连接如下图所示:(2)由标准毫安表与该装表的读数可知,改装后的电流表,实际量程被扩大的倍数为:n=16mA=100倍。

故当原微安表表盘达到满偏时,实际量程为:250×10―3×100=25mA,故本小160×10-3mA题选C;(3)根据ab,得:I=1g,改装后的量程偏大的原因可能是,原微安表内阻测量值偏小,即电表实际内阻R g真实值,大于1200Ω;或者因为定值电阻R的计算有误,计算值偏大,实际接入定值电阻R阻值偏小。

故本小题选AC;(4)由于接入电阻R时,改装后的表实际量程为25 mA,故满足I g R g=25―I g R;要想达到预期目的,即将微安表改装为量程为20 mA电流表,应满足I g R g=20―I g kR,其中I g=250μA=0.25mA,。

电路实验8、9、10注意事项

电路实验8、9、10注意事项

交流电源使用注意事项:
2. 调节时切忌动作过大
操作: 操作:在交流电源通电且已经调零的情况下,接好电 路,然后顺时针稍微旋转一下输出旋钮,同时注意观 察交流电源的电压指示表和电流指示表,确定无异常 之后,再继续调节,使电路中的交流电流表的示数达 到指定值,再进行记录。 说明: 说明:若观察到交流电源的电压指示表指针指零,而 交流电源的电流指示表示数很大甚至满偏,说明电路 中有短路现象,应立即逆时针旋转输出旋钮,使交流 电源输出为零,检查电路。排除故障之后,方可继续 操作。
观察到此现象说明 电路中有短路,应 立即调零、检查电 路、排除故障。
交流电源使用注意事项:
3. 通电时间不要长
操作: 操作:在调节好所需电流,记录下电压、相位角或者 功率值之后,应及时将交流电源调零。尤其是在记完 最后一个步骤的数据之后。 说明: 说明:实验中用到的0.8A是比较大的电流,测量用的 R、L、C均会发热,特别是R、L,时间过长,发热过 大,会将元件R的外壳熔变形,而且在用手取元件时, 可能会被烫伤。另外,元件发热也会影响测量数值。
5. 特别是在装置架上的AC0~24V损坏的情况下, 特别是在装置架上的AC0 24V损坏的情况下 AC0~ 损坏的情况下, 要使用台式交流源(如下图所示) 更要注意: 要使用台式交流源(如下图所示)时,更要注意:
(1)它的调节旋钮虽然有指示(短白线),但是它指零时, 未必电源输出就是零,还是要强调:空载+通电确认 (2)它只有电压输出指示表 (3)它的电压输出可以达到50V,一不小心电压加大了,更 容易出问题、发生危险
交、直流稳压电源源的输 出电压指示表 交流电源的输 出电流指示表
挂箱的电 源开关
交流电源的 输出调节旋钮
交流电源使用注意事项:

实验八 实验报告表

实验八  实验报告表
Office办公软件
图形绘制
图形服务器
资料储存
网盘
游戏进度
网络游戏服务器
3400
并行算法寄存器表达式
D1+d0=d0
D2+d3=d2
D4+d5=d4
D6+d7=d6
D2+d0=d0
D6+d4=d4
D4+d0=d0
并行算法中间结果1
5118309091150
并行算法中间结果2
13412059
并行算法最终结果
3400
加速比
7/4
实验报告表8-2分布式实验数据表
要求
任务负荷及分配情况
耗时
任务分配(时长)
178
34
301
157
79
216
117
281
302
顺序计算(机器号)
1
2
3
4
1
2
3
4
1
558
空闲分配(机器号)
1
2
3
4
2
2414源自578静态手动(机器号)
1
2
2
3
4
1
3
3
4
554
动态手动(机器号)
1
2
3
4
2
4
3
1
2
458
实验报告表8-3虚拟计算实验数据表
常用配置
对应虚拟服务
日常办公
实验八实验报告表
实验名称:
学号:姓名:班级:实验时间:
实验报告表8-1并行算法和串行算法实验数据表
要求
内容
10个随机数
22489444386635274477673

C语言上机实验题目(指针)

C语言上机实验题目(指针)

C语言上机实验(指针)目标:1.熟悉指针变量的含义,熟悉简单变量和指针的关系;2.熟悉指针变量做为函数的参数;内容(1)熟悉书中案例,熟悉简单变量和指针的关系,了解指针值的变化;(2)通过指针变量访问整型变量。

解题思路:先定义2个整型变量,再定义2个指针变量,分别指向这两个整型变量,通过访问指针变量,可以找到它们所指向的变量,从而得到这些变量的值。

#include <stdio.h>main(){ int a=100,b=10;int *pointer_1, *pointer_2;pointer_1=&a;pointer_2=&b;printf(“a=%d,b=%d\n”,a,b);printf(“*pointer_1=%d,*pointer_2=%d\n”,*pointer_1,*pointer_2);}(3)输入a和b两个整数,按先大后小的顺序输出a和b。

(模仿p119页3.32)解题思路:用指针方法来处理这个问题。

不交换整型变量的值,而是交换两个指针变量的值。

#include <stdio.h>main(){ int *p1,*p2,*p,a,b;printf(“integer numbers:");scanf(“%d,%d”,&a,&b);p1=&a; p2=&b;if(a<b){ p=p1; p1=p2; p2=p; }printf(“a=%d,b=%d\n”,a,b);printf(“%d,%d\n”,*p1,*p2);}(4)对输入的两个整数按大小顺序输出。

(程序改错) (答案略)现用函数处理,而且用指针类型的数据作函数参数。

解题思路:定义一个函数swap,将指向两个整型变量的指针变量作为实参传递给swap函数的形参指针变量,在函数中通过指针实现交换两个变量的值。

(1)#include <stdio.h>main(){swap(int *p1,int *p2);int a,b; int*pointer_1,*pointer_2; printf("please enter a and b:"); scanf(“%d,%d”,&a,&b);pointer_1=&a;pointer_2=&b;if (a<b) swap(pointer_1,pointer_2); printf(“max=%d,min=%d\n”,a,b);}swap(int *p1,int *p2){ int *temp; (无确定方向)*temp=*p1;*p1=*p2;*p2=*temp;}(2)#include <stdio.h>main(){swap(int *p1,int *p2);int a,b; int*pointer_1,*pointer_2;printf("please enter a and b:");scanf(“%d,%d”,&a,&b);pointer_1=&a;pointer_2=&b;if (a<b) swap(pointer_1,pointer_2);printf(“max=%d,min=%d\n”,a,b);}swap(int *p1,int *p2){ int *temp; (只交换了指针的值)temp=p1;p1=p2;p2=temp;}(5)输入3个整数a,b,c,要求按由大到小的顺序将它们输出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验8 指针一、实验目的1. 熟练掌握指针的定义、赋值的方法2. 掌握间接引用运算符的使用方法3. 掌握通过指针引用数组元素的方法4. 掌握使用指针处理字串的方法二、实验内容实训1 循环输入学生某门课的成绩,将成绩存储到数组中,统计最高分和获得最高分的学生人数,最后输出统计信息。

1)在VS2013中新建项目,在项目中新建C++源文件,输入下面程序。

#include<iostream>// 包含输入输出接口文件using namespace std; // 引用标准命名空间int main() // 主函数{const int n = 5; // 使用常变量定义学生人数int score[n]; // 定义成绩数组,有n个整型元素int maxScore = 0; // 最高分,并初始化为int maxStudent = 0; // 得到最高分的学生人数int i; // 循环变量int *p = 0;p = score; // p指向score[0]for (i = 0; i < n; i++) // 计数循环{ // 开始循环cout << "请输入第" << i << "位学生的成绩:";cin >> p[i]; // 输入第i位学生的成绩,并存储到score[i]if (maxScore < p[i]) // 如果第i位学生的成绩高于原最高分{maxScore = p[i]; // 将最高分修改为第i位学生的成绩}} // 结束循环cout << "本班最高分为" << maxScore << endl;cout << "得到最高分的学生序号为:" << endl;for (i = 0; i < n; i++) // 计数循环{ // 循环开始if (*(p + i) == maxScore) // 如果第i位学生的成绩等于最高分{maxStudent++; // 得最高分的学生人数增1cout << i << endl; // 输出该生序号}} // 循环结束cout << "共有" << maxStudent << "位学生得到最高分" << endl;return 0;} //主函数结束2)出现下列情况。

3)在第20行处设置断点,然后按F5启动调试,当程序在第20行处暂停时,观察i、p[i]、score[i]、&score[i]、p+i、*(p+i)等表达式的值,说明这些表达式中,哪些具有相同的值。

可以看出p[i]、score[i]、*(p+i)值相同。

而&score[i]、p+i值相同。

实训2学生成绩存储在数组中,查询得到某一分数的学生的序号。

我们对第4章例4.1程序稍作修改即可完成。

1)在VS2013中新建项目,在项目中新建C++源文件,输入下面程序。

#include<iostream>// 包含输入输出接口文件using namespace std; // 引用标准命名空间int main() // 主函数{const int n = 10; // 使用常变量定义学生人数// 定义成绩数组,有n+1个整型元素,其中下标处未存放学生成绩int score[n + 1] = { 0, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98 };int x; // 待查找的学生成绩int *p = 0; // 指向数组元素的指针变量cout << "请输入待查找的学生成绩:";cin >> x;score[0] = x; // 在下标处设置监视哨for (p = score + n; *p != x; p--); // 顺序查找,从后到前循环比较当前元素if (p == score){cout << "在成绩册中查找不到该分数!" << endl;}else{cout << "查找到该分数所在的位置为:" << p - score << endl;}return 0;} //主函数结束2)出现下列情况。

3)在第21行处设置断点,然后按F5启动调试,当程序在第20行处暂停时,观察p、*p、score、p-score等表达式的值。

按F10单步执行,观察上述表达式的值。

4)第20行、21行的循环变量是指针变量p,如果将循环变量改为score,即将第20行改为:for(p = score + n; score < p && *score != x; score++),程序能得到正确的结果吗?说明理由。

能得到正确结果实训3输入一个字符串,要求按相反的顺序输出各个字符。

例如,输入为AbcD,则输出为DcbA。

则NS图如下:1)在VS2013中新建项目,在项目中新建C++源文件,输入下面程序。

#include<iostream>using namespace std;int main(){char str[100] = "";char *p = NULL;cout << "请输入字符串:";gets_s(str);for (p = str; *p != '\0'; p++);cout << "逆序输出的字符串:";for (p = p - 1; p >= str; p--);{cout << *p;}cout << endl;return 0;}2)出现下列情况。

实训4定义课程结构类型,从键盘输入多门课程的信息,然后将其按课程号从小到大排序后输出。

要求课程的门数由键盘输入。

假设课程信息包含以下属性:课程编号:字符串,不超过20字符,不包含空格,如“303177020”课程名称:字符串,不超过100字符,可包含空格,如“The C Programming”学分:数值,可为小数,如1.5学时:整数,如32周学时:数值,可为小数,如1.5学期:整数,如5则NS图如下:#include <iostream>using namespace std;struct classInfo{int classno;char classna[20];float grade;int classtime;int weektime;int term;};int main(){classInfo kzxx[100] = { 0 };classInfo *p = 0;int n = 0;int i = 0, j = 0, changed = 0;cout << "请输入课程门数:";cin >> n;p = kzxx + 1;for (; p <= kzxx + n; p++){cout << "请输入课程编号:";cin >> (*p).classno;cout << "请输入课程名称:";cin >> (*p).classna;cout << "请输入学分:";cin >> (*p).grade;cout << "请输入学时:";cin >> (*p).classtime;cout << "请输入周学时:";cin >> (*p).weektime;cout << "请输入学期数:";cin >> (*p).term;}p = kzxx;for (i = 1; i < n; i++){changed = 0;for (j = 1; j <= n - i; j++){if (p[j].classno >p[j + 1].classno){kzxx[0] = p[j];p[j] = p[j + 1];p[j + 1] = kzxx[0];changed = 1;}}if (changed == 0){break;}}for (p++; p <= kzxx + n; p++){cout << "课程编号:" << (*p).classno << endl;cout << "课程名称:" << (*p).classna << endl;cout << "学分:" << (*p).grade << endl;cout << "学时:" << (*p).classtime << endl;cout << "周学时:" << (*p).weektime << endl;cout << "学期数:" << (*p).term << endl;}return 0;}2)出现下列情况。

实验心得1.通过此次实验我学会了数组的简单应用。

在C语言的学习上又迈出了一大步。

2.我也终于明白指针的作用:程序的数据结构从原子级别的数据结构:整型、浮点型、字符型、枚举型,到分子级别的数组、结构体(又称为“记录”),再到数据结构中的队列、栈、链表、树等,无论如何复杂,数据结构总是位于计算机的内存中,因此必有地址。

利用指针就可以使用地址作为一个完整值的速记符号,因为一个内存地址在内部表示为一个整数。

当数据结构本身很大时,这种策略能节约大量内存空间。

相关文档
最新文档