实验3 数据的输入与输出
C语言程序设计实验3

一、实验目的1. 掌握简单的程序设计,能正确写出顺序结构的源程序。
2. 掌握数据的输入输出方法,能正确使用各种格式转换符。
二、实验内容(程序清单及运行结果)(一)阅读程序1.先读下列程序,写出程序运算结果,再将该程序输入并运行,观察运行结果与你所写的结果是否相同。
①int main(){ int x,y,z;x=y=2;z=3;y=x++-1; printf("%d\t%d\t",x,y);y=++x-1; printf("%d\t%d\t",x,y);y=z--+1; printf("%d\t%d\t",z,y);y=--z+1; printf("%d\t%d\n",z,y);return 0;}②int main(){ char c1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);printf("\tb%c%c",c4,c5);return 0;}2.以下各程序需要输入数据,请写出输入数据的格式和变量的值并上机验证。
①#include <stdio.h>int main(){ int a,b,c;printf("input a,b,c\n");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d",a,b,c);return 0;}②main(){ int i, j;printf("i, j=?\n");scanf("%d, %d", &i, &j);}③scanf(“%d,%*d,%d”,&a,&b);若输入:3,4,5a=? b=?④scanf(“%3d%2d”,&a,&b);若输入:12345a=?b=?⑤按格式要求输入/输出数据#include "stdio.h"int main(){ int a,b;float x,y;char c1,c2;scanf(“a=%d,b=%d”,&a,&b);scanf(“%f, %e”,&x,&y);getchar();scanf(“%c %c”,&c1,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”,a,b,x,y,c1,c2);return 0;}运行该程序,必须按如下方式在键盘上输入数据a=3,b=7 ↙8.5,71.82 ↙a A ↙请同学们写出输出结果(二)完成程序要求:按照给定题目要求,参照出现的语句,填写程序空白处。
实验三组合逻辑电路应用——译码器、数据选择器

实验三组合逻辑电路应用——译码器、数据选择器
译码器和数据选择器是现代数字电子学中常用的两种组合逻辑电路。
它们可以将输入
的二进制信号转换为对应的输出信号,并且在数字电路中具有广泛的应用。
一、译码器
译码器是一种将输入的二进制信号转换成对应输出信号的数字电路。
译码器的作用是
将输入的地址码转换成溢出电路所能识别的控制信号,通常用来将不同的地址码映射到不
同的设备或功能上。
比如在存储器系统中,根据不同地址码,从RAM或者ROM中取出相应
的数据或指令。
除此之外,译码器还可以用于数据压缩、解码、解密等领域。
在一些数字电路中,译
码器还可以充当多路复用器、选择器等电路的功能。
译码器的分类按照其输入和输出的码制不同,可以分为译码器、BCD译码器、灰码译
码器等。
其中,最常见的是2-4译码器、3-8译码器、4-16译码器等。
二、数据选择器
数据选择器是一种多路选择器,根据控制信号选择输入端中的一个数据输出到输出端。
选择器的控制信号通常由一个二进制码输入到它的控制端,二进制码的大小由选择器的通
道数决定。
数据选择器广泛用于控制、多媒体处理、信号处理等方面。
数据选择器与译码器相比,最主要的区别在于其输出可以不仅限于数字信号。
数据选
择器可以处理模拟信号、复合信号等多种形式的信号,因为它可以作用于信号的幅度、相位、频率等方面。
数据选择器按照输入和输出的端口取数的不同,可以分为单路选择器和多路选择器。
常见的有2-1选择器、4-1选择器、8-1选择器、16-1选择器等。
实验三 P3.3口输入,P1口输出

P3.3用导线连至K1开关,P1.0~P1.7导线连至L1~L8,K1拨动一次,L1~L8发光二极管按16进制方式加一点亮。
3、参考程序
四、思考题
1、如果要增加或者减少亮灯时间,应该如何修改程序?
在延时过程中,再加一次循环或减少一次循环,可以增加减少亮灯时间。
2、如果要使发光二极管以左移方式点亮,应该如何修改程序?
(可附页)
【单片机原理及应用】实验报告
班级:计13本2学号:姓名:
实验三P3.3口输入,P1口输出
实验类型
综合
实验日期
实验地点
实验时间(星期节次)
指导教师
实验组成员
一、实验目的及要求:
1、掌握P3口、P1口简单使用。
二、实验仪器:
计算机ቤተ መጻሕፍቲ ባይዱ
三、实验内容、步骤及程序
1、实验内容
P3.3口输入一脉冲,P1口按16进制加一方式点亮发光二极管。
将A寄存器的初值改为100H,将INC加一指令改为减一指令,
分析初值是100H而不是FF:因为DJNZ指令是在减一之后再判断为零,才跳转。
五、实验结果及总结:(你的实验过程用了多少时间?遇到了哪些难题?你是怎么解决的?你的收获有哪些?)刚开始,程序仿真只是不出来,仔细检查程序没问题,但就是出不来效果,最后是重启仿真软件,就好了可能是软件问题。
C语言程序设计实验三答案

实验三 选择结构程序设计一、实验目的与要求1. 理解C 语言表示逻辑量的方法,学会正确使用逻辑运算符和逻辑表达式。
2. 掌握利用if 结构实现选择结构的方法。
3. 掌握利用switch 结构实现多分支选择结构。
4. 结合程序掌握一些简单的算法,学习调试程序5. 实验4学时二、实验内容1.程序改错题改正下面程序中的错误。
输入实数x ,计算并输出下列分段函数f(x)的值(保留1位小数)。
)100(1=x x==)(x f y)100(≠x x输入输出示例1(改正后程序的运行结果)Enter x :100f )=输入输出示例2(改正后程序的运行结果)Enter x :23f )=源程序(有错误的程序)#include<>#include<>void main(void){double x;printf("Enter x: \n");scanf("=%f", x);if (x = 100) {y = 1/sqrt(x)}else (x != 100) {y = x;}printf("f(%.2f) = %.1f\n",x,y);}答:#include<>#include<>void main(void){double x,y;printf("Enter x:\n");scanf("%lf",&x);if (x=100)y = 1/sqrt(x);elsey= x;printf("f(%.2lf)=%.1lf\n",x,y);}2.一般编程题编程题1输入任意三个整数a,b,c ,求3个数中的最大值和最小值。
答:#include <>void main(){int a,b,c;printf("请输入三个整数:");scanf("%d %d %d",&a,&b,&c);if (a>=b)t=a,a=b,b=t;if (a>=c)t=a,a=c,c=t;if (b>=c)t=b,b=c,c=t;printf("最小值为:%d\n",a);printf("最大值为:%d\n",c);}编程题2输入x ,计算并输出下面分段函数f(x)的值(保留2位小数)。
实验3 数据库 数据操作

选择导入目的对话框
选择源表、目的表
实验3
数据操作
2.在企业管理器中录入数据至数据表T中 在企业管理器中录入数据至数据表T 把左下表中的内容录入数据至表T。
待录入到表 T的数据 待插入表C的数据 语句插入数据至数据表C 3.使用INSERT INTO语句插入数据至数据表C中 使用INSERT INTO语句插入数据至数据表 把右上表中的数据插入课程表C。 在查询分析器中输入下面SQL语句,把表中第一行数据插入表C: 在查询分析器中输入下面SQL语句,把表中第一行数据插入表C: SQL语句 USE jxsk VALUES( C1 C1’, 程序设计 程序设计’, 60 60’) INSERT INTO C VALUES(‘C1 ,‘程序设计 ,‘60 )
格式的S_EXCEL.xls Excel 格式的S_EXCEL.xls 数据文件内容
实验3
【实验步骤】 实验步骤】
数据操作
1.利用导入导出向导把Excel文件S_EXCEL.xls中的数据导入数据表S中 ቤተ መጻሕፍቲ ባይዱ用导入导出向导把Excel文件S_EXCEL.xls中的数据导入数据表S Excel文件S_EXCEL.xls中的数据导入数据表
实验3
数据操作
"TNO" "T1" "T1" "T2" "T3" "T3" "T4" "T4" "T5" "T5"
"CNO" "C1" "C4" "C5" "C1" "C1" "C2" "C3" "C5" "C7"
实验三、四创建表及输入数据及完整性约束

实验三、四 创建表及输入数据及完整性约束本实验需要4学时。
一、实验目的要求学生熟练掌握和使用Transact-SQL、SQL Server企业管理器创建表、索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。
学生熟练掌握使用 SQL、Transact-SQL和SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。
二、实验内容1 创建表、确定表的主码和约束条件。
为主码建索引。
2 查看和修改表结构。
3 输入数据、修改数据和删除数据三、实验步骤(1)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为;图书(书号,类别,出版社,作者,书名,定价,作者).读者(编号,姓名,单位,性别,电话).借阅(书号,读者编号,借阅日期)要求为属性选择合适的数据类型,定义每个表的主码.是否允许空值和默认值等列级数据约束。
(2)在企业管理器中建立图书、读者和借阅3个表的表级约束.每个表的主码约束.借阅表与图书表间、借阅表与读者表之间的外码约束,要求按语义先确定外码约束表达式.再通过操作予以实现.实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。
(3)通过企业管理器,在图书借阅数据库的图书、读者和借阅3个表中各输入10条记录。
要求记录不仅满足数据约束要求.还要有表间关联的记录。
(4)通过企业管理器实现对图书借阅数据库的图书、读者和借阅3个表中数据的插入。
删除和修改操作。
(5)通过企业管理器实现对学生选课库的数据增加、数据删除和数据修改操作、要求学生、课程和选课表中各有10条以上的记录。
四、实验方法1 新建表在 SQL Serve 2000的数据库中,文件夹是按数据库对象的类型建立的.文件夹名是该数据库对象名。
当在企业管理器中选择服务器和数据库文件夹,并打开已定义好的图书.读者数据库后,会发现它自动设置了关系图、表、视图、存储过程、用户、角色、规则、默认等文件夹。
实验三、matlab输入输出的应用(1-7章的内容)

实验3、输入输出的应用目的与要求:掌握自定义函数的使用掌握matlab 输入和输出的应用实验内容:1、产生一个1x10的均匀随机矩阵,大小范围为[-5 5],并且按照从大到小的顺序排列。
2、设 y=cos[0.5+((3sinx)/(1+x^2))]把x=[0,2π]间分为101点,画出以x 为横坐标,y 为纵坐标的曲线;线条颜色为红色,线型为虚线。
3、创建M 文件,提示用户输入下面的矩阵,用函数max 计算矩阵中的最大值。
提示用户输入的矩阵为:[1 5 3 8 9 22]4、将一个屏幕分4幅,选择合适的步长在右上幅与左下幅绘制出下列函数的图形。
①y=]22[)cos(ππ,,-∈x x (曲线图); ②4)y 2,-4x (-242),(2222≤≤≤≤+=;y x y x f (三维曲面图)。
5、请自己定义函数,函数名为qj (注意保持时候函数名和文件名一致)y=1*2*3*…*n (注意函数文件不可以直接运行,只能被调用)(1)求前n 项积,n 为自然数。
(2)给出调用命令,如n=100时的结果。
6、根据当前美元和人民币的汇率,提示用户输入美元的起始值和终止值,步长为1,将美元人和民币的兑换输出结果绘制成表格,要求用disp 在表格中添加标题和表头。
(参考p181例7.2)7、首先阅读程序,理解程序的作用,然后修改下面的程序,让他们没有循环语句!修改后的程序与源程序得到相当的结果。
A=[1 2 3; 4 5 6; 7 8 9];[r,c]=size(A);for i=1:1:rfor j=1:1:cif (A(i,j)>8 | A(i,j)<2)A(i,j)=0;endendendA。
C语言实验报告 实验三 参考答案

实验三循环结构程序设计(参考答案)1、设计程序sy3-1.c,计算并输出n(包括n)以内所有能被5或9整除的自然数的倒数之和。
例如输入n 的值为20时,输出0.583333。
算法分析:穷举1~n(含n)之间的每一个整数,能否被5或者9整除。
如果能,则把它的倒数累加到累加器里去。
因为能被5整除的自然数,应该至少从5才可能,所以循环控制变量i可以5开始。
参考答案:#include<stdio.h>void main(){int n,i;double s=0; //累加器要赋初值为0,结果为小数,所以定义为实数类型printf("请输入n的值:");scanf("%d",&n);for(i=5;i<=n;i++) //穷举小于等于n的自然数if(i%5==0||i%9==0)s=s+1.0/i;// 因为i是整数类型,所以1/i的值为0printf("s=%f\n",s);}运行结果:2、设计程序sy3-2.c,计算并输出给定整数n的所有因子(不包括1与自身)之和。
例如,输入n的值是856时,应输出763。
算法分析:因子,就是能整除n的值。
所以从2到n-1穷举每个数是不是它的因子,是就累加到s中。
参考答案:#include<stdio.h>void main(){int s=0,n,i;printf("请输入n:");scanf("%d",&n);for(i=2;i<n;i++) //穷举所有可能为因子的整数if(n%i==0) //因子即是能整除n的数s=s+i;printf("%d的所有因子之和是:%d\n",n,s);}运行结果:3、设计程序sy3-3.c,输入一个整数,要求将该整数上各位数字是偶数的数取出,并按原来从高位到低位的顺序组成一个新数。
C语言实验三1

输出 将最后的多项式的值输出,结果保留两个有效数字。
#include<stdio.h> #include<math.h> int main() {
double x,eps,a1,s; int i; i=1; s=1; scanf("%lf %lf",&x,&eps); a1=-x/i; while(fabs(a1)>eps) {
a++; else if(x==0)
b++; else if(x>0)
c++; } printf("%d %d %d\n",a,b,c); }
}
阶乘输出
问题描述
请输出如下所示的阶乘公式 3!+4!+5!+6!+7! 这个公式表示从 3 到 7 的阶乘之和。现在给定两个整数 a 和 b(0<a<b),请 输出 a 到 b 的阶乘之和。 输入
#include<stdio.h> int main() {
int a,b,c,n,i,j; float x;
while(1) {
scanf("%d",&n); if(n==0)
break; else a=b=c=0; for(i=1;i<=n;i++) { scanf("%f",&x); if(x<0)
楼梯 问题描述
大家肯定都玩过小朋友下楼梯,小鱼我也很喜欢玩小朋友下楼梯的游戏, 不过总是下不了几阶。我们这次不玩小朋友下楼梯,而是帮小鱼画一个楼 梯,如下图是 4 阶的楼梯。 * ** *** **** 现在给定楼梯的阶数 n,请输出 n 阶的楼梯。 输入 输入为一个整数 n。 输出 输出 n 阶的楼梯。n 阶楼梯总共 n 行,每行后面都有一个换行符。
C语言实验报告 实验三 参考答案

实验十 参考答案(指针)三、实验内容( 按要求完善或设计以下程序,并调试分析运行结果)1. 程序填空题 给定程序BLACK10-1.C 中,函数fun 的功能是:将形参n 所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n 传回所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
【解题思路】第一处:t 是通过取模的方式来得到*n 的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n 来返回新数x ,所以应填:x 。
2. 程序改错题 给定程序MODI10-1.C 中函数fun 的功能是: 计算n 的5次方的值(规定n 的值大于2、小于8),通过形参指针传回主函数;并计算该值的个位、十位、百位上数字之和作为函数值返回。
例如,7的5次方是16807, 其低3位数的和值是15。
【解题思路】第一处:变量d 的初始值应为1。
第二处:整除的符号是 /。
3. 程序设计题 请编写函数fun ,它的功能是:求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。
例如,若 x 中的值为: 35,则有 4 个数符合要求,它们是: 1, 5, 7, 35。
【解题思路】本题是求出能整除形参x 且不是偶数的各整数,并按从小到大的顺序放在pp 所指的数组中,这些除数的个数通过形参n 返回。
【参考答案】void fun ( int x, int pp[], int *n ){ int i; *n=0;for(i=1; i <= x; i++)if((x % i== 0) && (i % 2)) pp[(*n)++]=i;}4. 程序填空题 给定程序中,函数fun 的功能是:找出N ×N 矩阵中每列元素中的最大值,并按顺序依次存放于形参b 所指的一维数组中。
c语言顺序结构实验报告

c语言顺序结构实验报告篇一:实验三顺序结构程序设计实验报告实验三顺序结构程序设计实验报告一、实验目的1. 掌握掌握赋值语句的使用方法。
2. 各种类型数据的输入输出的方法,能正确使用各种格式转换符。
3. 进一步掌握编写程序和调试程序的方法。
二、实验内容(源代码)1. sy3-(1) ①#includeint main() { int a,b;//基本整型float d,e; //单精度浮点型 char c1,c2;//字符型 double f,g;//双精度浮点型long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型a=61,b=62; c1='a';c2='b';//'a''b'的"'"不能掉了d=3.56;e=-6.87; //d,e之间用";"隔开f=3157.890121;g=0.9; m=50000;n=-60000; p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a,b,c1,c2,d,e);//"""与"a"之间的","不能掉了,"\"不能写成"/" printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\ n",f,g,m,n,p,q); //f后的q改为g}③#includeint main() {int a,b;//基本整型 float d,e; //单精度浮点型char c1,c2;//字符型double f,g;//双精度浮点型 long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型 a=61,b=62;c1=a;c2=b; //c1,c2之间用";"隔开 f=3157.890121;g=0.9; d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a,b,c1,c2,d,e);//"""与"a"之间的","不能掉了,"\"不能写成"/"printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\ n",f,g,m,n,p,q); //f后的q改为g④#includeint main() {int a,b;//基本整型 float d,e; //单精度浮点型char c1,c2;//字符型double f,g;//双精度浮点型 long m,n; //长整型unsigned int p,q;//"unsiguld"改成"unsigned" 无符号整型 a=61,b=62;c1=a;c2=b; //c1,c2之间用";"隔开f=3157.890121;g=0.9; d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%d,c2=%d\nd=%d,e=%d\n",sizeof (a),sizeof(b),sizeof(c1),sizeof(c2),sizeof(d),sizeo f(e));printf("f=%d,g=%d\nm=%d,n=%d\np=%d,q=%d\n",sizeof(f ),sizeof(g),sizeof(m),sizeof(n),sizeof(p),sizeof(q) );}2. sy3-(2)#include int main() {float h,r,c,s1,s2,v1,v2; //定义float pi=3.1415926; //赋值printf("圆半径r=,圆柱高h=:");//提示scanf("%f,%f",&r,&h); //输入c=2*pi*r; //计算s1=pi*r*r;//"*"不可省略s2=4*s1;v1=4.0/3.0*s1*r; v2=s1*h;printf("圆周长:c=%6.2f\n",c); //输出 printf("圆面积:s1=%6.2f\n",s1);printf("圆球表面积:s2=%6.2f\n",s2); printf("圆球体积:v1=%6.2f\n",v1); printf("圆柱体积:v2=%6.2f\n",v2); return 0;}3. sy3-(3)#include#include //不要忘了数学函数 int main() {float p,r5,r3,r2,r1,r0,p1,p2,p3,p4,p5; //定义p=1000;//赋值printf("r5=,r3=,r2=,r1=,r0=:");//提示 scanf("%f,%f,%f,%f,%f",&r5,&r3,&r2,&r1,&r0); //输入 p1=p*r5*5; //计算}p2=p*(1+2*r2)*(1+3*r3)-p; p3=p*(1+3*r3)*(1+2*r2)-p; p4=p*pow(1+r1,5)-p; p5=p*pow(1+r0/4,20)-p;printf("方案1的利息:p1=%f\n",p1); //输出printf("方案2的利息:p2=%f\n",p2); printf("方案3的利息:p3=%f\n",p3); printf("方案4的利息:p4=%f\n",p4); printf("方案5的利息:p5=%f\n",p5); return 0;4. sy3-(4)① #include int main() {char c1='C',c2='h',c3='i',c4='n',c5='a';//定义与赋值 c1=c1+4;//计算 c2=c2+4; c3=c3+4; c4=c4+4; c5=c5+4;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;}② #include int main(){ }char c1='T',c2='o',c3='d',c4='a',c5='y';//定义与赋值 c1=c1-22;//计算 c2=c2-22; c3=c3-22; c4=c4-22; c5=c5-22;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;③ #include int main(){char c1='T',c2='o',c3='d',c4='a',c5='y';//定义与赋值 c1=c1-4;//计算 c2=c2-4; c3=c3-4; c4=c4-4; c5=c5-4;printf("用printf语句输出结果为:");//提示printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);//输出c1,c2之间的","不可省略 printf("用putchar语句输出结果为:");//提示putchar(c1);//输出putchar(c2); putchar(c3); putchar(c4); putchar(c5);printf("\n");//换行不要省略 return 0;}篇二:C语言实验二程序、总结顺序结构与输入、输出方法实验二顺序结构与输入/输出方法1 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自增减运算符的使用。
《数据结构》实验3链表

三、源代码以及实验结果为
四、源代码以及实验结果为
五、源代码以及实验结果为
六、源代码以及实验结果为
七、附加题以及实验体会:
{
NODE *s; /*定义指向结点类型的指针*/
s=(NODE *)malloc(sizeof(NODE));
/*生成新结点*/
3
4
5
return 1;
}
/*删除P所指向的结点的后继结点*/
void DelLinkList(NODE *p)
{ NODE *q;
if(p->next!=0)
{ q=p->next; /* q指向p的后继结点*/
ch=getchar();
while(ch!='$')
{ p=(NODE *)malloc(sizeof(NODE));
p->data=ch;
1
2
ch=getchar();
}
return (head);
}
/*在链表的P指定结点之后插入值为x的结点*/
int InsLinkList(NODE *p, char x)
四、设有两个单链表A、B,其中元素递增有序,编写算法将A、B归并成一个按元素值递减(允许有相同值)有序的链表C,要求用A、B中的原结点形成,不能重新申请结点。
五、已知单链表表示的线性表中含有两类的数据元素(字母字符,数字字符)。试设计算法,按结点的值将单链表拆分成两个循环链表,分别只含有数字或字母。要求:利用原表中的结点空间作为这两个表的结点空间,头结点可另开辟空间。
附加题:如果换成循环单链表该如何实现?
即题目变成:已知单循环链表表示的线性表中含有两类的数据元素(字母字符,数字字符)。试设计算法,按结点的值将单链表拆分成两个循环链表,分别只含有数字或字母。
单片机实验P3.3输入、P1口输出和步进电机控制实验

单⽚机实验P3.3输⼊、P1⼝输出和步进电机控制实验南昌航空⼤学实验报告⼆0⼀⼀年⼗⽉⼀⼗七⽇课程名称:单⽚微型机实验名称:P3.3输⼊、P1⼝输出和步进电机控制实验班级: 080611 学⽣姓名:学号: 08061108 指导教师评定:签名:⼀、实验⽬的1、掌握P3⼝、P1⼝简单使⽤;2、学习延时程序的编写和使⽤;3、了解步进电机控制的基本原理;4、掌握步进电机转动编程⽅法。
⼆、实验内容及要求1、P3.3输⼊、P1⼝输出实验1)P3.3⼝做输⼊⼝,外接⼀脉冲,每输⼊⼀个脉冲,P1⼝按⼗六进制加⼀。
P1⼝做输出⼝,编写程序,使P1⼝接的8个发光⼆极管L1—L8按16进制加⼀⽅式点亮发光⼆极管。
2)P1⼝是准双向⼝,它作为输出⼝时与⼀般的双向⼝使⽤⽅法相同,由准双向⼝结构可知:当P1⼝作为输⼊⼝时,必须先对它置⾼电平,使内部MOS管截⽌,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输⼊产⽣影响。
若不先对它置⾼,且原来是低电平,则MOS管导通,读⼊的数据是不正确的。
3)延时⼦程序的延时计算问题。
对于延时程序:DELAY :MOV R6, #00HDELAY1:MOV R7, #80HDJNZ R7, $DJNZ R6, DELAY1查指令表可知MOV、DJNZ指令均需⽤两个机器周期,⽽⼀个机器周期时间长度为12/ 6.0MHZ,所以该段指令执⾏时间为:((80+1)×256+1)×2×(12÷6000000)=132.1ms。
图1 P3.3输⼊、P1图2 实验电路原理图2、步进电机控制实验1)从键盘上输⼊正、反转命令,转速参数和转动步数显⽰在显⽰器上,CPU再读取显⽰器上显⽰的正、反转命令,转速级数(16级)和转动步数后执⾏。
转动步数减为零时停⽌转动。
2)步进电机驱动原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。
驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速,微电脑控制步进电机最适合。
实验三 数据选择器及其应用

实验三数据选择器及其应用一、实验目的(1)通过实验的方法学习数据选择器的电路结构和特点。
(2)掌握数据选择器的逻辑功能及其基本应用。
二、实验设备(1)数字电路实验箱(2)74LS00、74LS153三、实验原理数据选择器(Multiplexer)又称为多路开关, 是一种重要的组合逻辑部件, 它可以实现从多路数据中选择任何一路数据输出, 选择的控制由专门的端口编码决定, 称为地址码, 数据选择器可以完成很多的逻辑功能, 例如函数发生器、桶形移位器、并串转换器、波形产生器等。
本次实验使用的是双四选一数据选择器。
常见的双四选一数据选择器为TTL双极型数字集成逻辑电路74LS153, 它有两个4选1, 外形为双列直插, 引脚排列如图2.7.1所示, 逻辑符号如图2.7.2所示。
其中D0、D1、D2、D3为数据输入端, A0、A1为数据选择器的控制端(地址码), 同时控制两个选择器的数据输出, 为工作状态控制端(使能端), 74LS153的功能表见表2.7.1。
其中:图2.7.1 图2.7.2输入输出A1A01Q2Q 1X X000001D02D00011D12D10101D22D20111D32D3表 2.7.1(1)设计实验以A.B代表正、副指挥, C.D代表两名操作员, “1”代表通过, “0”代表没有通过。
F代表产生点火信号, “1”代表产生点火信号, “0”代表没有产生点火信号。
只有当A.B 同时为“1”, 且C和D中至少有一个为“1”时, 输出F才为“1”, 及连接在电路中的指示灯亮起, 否则, 指示灯不亮。
据此, 画出真值表如图:A B C D F00000000100010000110010000101001100011101000010010101001011011000110111110111111画出卡诺图:ABCD00 01 11 1000 01 11 100000 0010 0010 0010降维:ABC00 01 11 100 100D0 0010再降维:AB 0 10 100 0C+D因为, 所以可以用74LS00实现C和D的与, 然后将C+D输入数据选择器, 配合地址端的A.B, 即可实现预设功能。
实验3 MATLAB程序设计

实验3 MATLAB程序设计实验3 MATLAB程序设计实验目的1. 学习使用MATLAB进行程序的设计与实现;2. 掌握MATLAB函数的编写与调用方法;3. 掌握MATLAB的编程基础知识。
实验内容编写一个MATLAB程序,实现以下功能:1. 输入一个正整数n;2. 判断该正整数是否为素数;3. 如果是素数,输出该数;4. 如果不是素数,输出该数的所有质因数;输出该数的最大质因数;输出该数的因数个数。
实验步骤3. 编写一个函数`isPrime`,用于判断一个数字是否为素数。
函数定义如下:matlabfunction result = isPrime(n)result = 1; % 假设n是素数if n <= 1result = 0; % 排除小于等于1的数字return;endfor i = 2:sqrt(n)if mod(n, i) == 0result = 0; % n可以被i整除,所以n不是素数break;endendend4. 在主函数中,调用`isPrime`函数判断输入的数字是否为素数,并输出结果;5. 如果输入的数字不是素数,编写一个函数`primeFactors`,用于计算数字的所有质因数,并输出结果。
函数定义如下:matlabfunction primeFactors(n)factors = ; % 存储质因数的数组for i = 2:nwhile mod(n, i) == 0factors = [factors i]; % i是n的质因数n = n / i;endendfprintf('该数的质因数为:');disp(factors);end6. 继续在主函数中,如果输入的数字不是素数,调用`primeFactors`函数计算所有质因数并输出;7. 在主函数中,编写一个函数`maxPrimeFactors`,用于计算数字的最大质因数,并输出结果。
函数定义如下:matlabfunction maxFactor = maxPrimeFactors(n)factors = ; % 存储质因数的数组for i = 2:nwhile mod(n, i) == 0factors = [factors i]; % i是n的质因数n = n / i;endendmaxFactor = max(factors); % 计算最大质因数end8. 继续在主函数中,调用`maxPrimeFactors`函数计算数字的最大质因数并输出;9. 在主函数中,编写一个函数`factorCount`,用于计算数字的因数个数,并输出结果。
实验3 最简单的C程序设计——顺序程序设计

实验3 最简单的C程序设计——顺序程序设计1.实验目的⑴掌握C语言中使用最多的一种语句——赋值语句的使用方法。
⑵掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
⑶进一步掌握编写程序和调试程序的方法。
2.实验内容和步骤⑴通过下面的程序掌握各种格式转化符的正确使用方法。
①输入以下程序:#include <stdio.h>int main(){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61;b=62;c1='a';c2='b';d=3.56;e=-6.87;f=3157.890121;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%1.56f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n",f,g,m,n,p,q); }②运行此程序并分析结果。
解:运行时输出:③在此基础上,将程序第10—14行改为:c1=a;c2=b;f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;运行程序,分析结果。
解:运行时输出:④用sizeof运算符分别检测程序中各类型的数据占多少字节。
例如,int型变量a的字节数为sizeof(a)或sizeof(int),用printf函数语句输出各类型变量的长度(字节数)。
解:sizeof(int) = 4sizeof(float) = 4;sizeof(double) = 8;sizeof(char) = 1;char *p;sizeof(p) = 4;sizeof(long) = 4;sizeof(unsigned int) = 4;⑵设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
计算机组成原理实验报告3-数据输出实验移位门实验

2.3 数据输出实验/移位门实验一.实验要求:利用CPTH 实验仪的开关做为控制信号,实验仪的开关做为控制信号,将指定寄存器的内容读到数据总线将指定寄存器的内容读到数据总线DBUS 上。
上。
二.实验目的:1、了解模型机中多寄存器接数据总线的实现原理。
、了解模型机中多寄存器接数据总线的实现原理。
2、 了解运算器中移位功能的实现方法。
了解运算器中移位功能的实现方法。
三.实验电路:CPTH 中有7 个寄存器可以向数据总线输出数据,个寄存器可以向数据总线输出数据,但在某一特定时刻只能有但在某一特定时刻只能有一个寄存器输出数据,由X2,X1,X0决定那一个寄存器输出数据。
决定那一个寄存器输出数据。
数据输出选择器原理图数据输出选择器原理图连接线表连接线表四.实验数据及步骤:实验1:数据输出实验置下表的控制信号,检验输出结果置下表的控制信号,检验输出结果实验2:移位实验ALU 直接输出和零标志位产生原理图直接输出和零标志位产生原理图ALU 左移输出原理图左移输出原理图ALU 右移输出原理图右移输出原理图直通门将运算器的结果不移位送总线。
当X2X1X0=100 时运算器结果通过直通门送到数据总线。
同时,直通门上还有判0 电路,当运算器的结果为全0 时,Z=1,右移门将运算器的结果右移一位送总线。
当X2X1X0=101 时运算器结果通过右通门送到数据总线。
时运算器结果通过右通门送到数据总线。
具体内部连接具体内部连接是:是: Cy 与 CN →DBUS7ALU7→DBUS6ALU6→DBUS5ALU5→DBUS4ALU4 → DBUS3ALU3 →DBUS2 ALU2 →DBUS1 ALU1 →DBUS0 Cy 与 CN → DBUS7当不带进位移位时(CN=0):0 →DBUS7 当带进位移位时(CN=1):Cy →DBUS7左移门将运算器的结果左移一位送总线。
当X2X1X0=110 时运算器结果通过左通门送到数据总线。
实验3 存储器 实验报告

实验3 存储器实验报告一、实验目的:1、了解RAM、ROM存储器的基本原理和工作特点;3、锻炼学生实验动手操作能力;4、培养学生动手实践能力和综合实践能力。
二、实验器材:1、实验箱一台2、万用表一只3、示波器一台4、电源一台5、电缆若干。
三、实验步骤:1、RAM存储器的读写实验(1) 在实验箱面板上取下RAM存储器的锁孔垫片。
(2) 把读输出线、写输出线、地址线和读写控制信号线依次通过实验箱面板相应的接口引出。
(3) 接通电源,调整数据总线和地址总线的电位为0。
(4) 将读写控制信号线设置为0,地址信号线设置为读取需要存储的地址,读输出线高电平表示RAM存储器中对应地址的数据。
(3) 输入ROM存储器的地址信号线。
(5) 将读输出线接入示波器,观察输出波形,并记录读取数据的值。
四、实验原理在RAM存储器中,每个存储单元都有独立的地址(A)和数据(D)输入输出端,以及读/写控制端(R/W)。
地址(A)对应每个存储单元的物理位置,是用来选中存储单元的。
地址线上的二进制状态就表示选中哪个存储单元。
数据线输入/输出的数据信号(D)就是存储在RAM单元中的数据。
读/写控制信号(R/W)控制读/写操作进行的时刻。
当R/W为高(写状态)时,数据D将被装入被选择的RAM单元;当R/W为低(读状态)时,被选RAM单元中的数据将被送到数据输出线上。
RAM存储器仅有一组共用地址线和数据线,但相邻地址所在RAM单元不仅具有物理上的相邻,相邻单元的地址与其中一个单元的地址只有最后一位不同,故相邻单元的装入和取出数据时间相等。
ROM存储器是一种只读存储器。
在ROM芯片中,存储的数据是在生产过程中被制成常数并固定在芯片中的。
一般情况下,ROM内单元的存储内容不能被修改。
ROM存储器主要的工作就是读取存储在ROM内的信息内容。
ROM存储器的读取输入信息只有地址信号,它的电信号SON每个ROM单元接受地址信号时(即选中时),ROM单元需要将存储在其中的信息送到ROM芯片上的输出线上。
大学计算机实验3-实验报告

大学计算机实验3-实验报告大学计算机实验 3 实验报告一、实验目的本次实验旨在通过实际操作,加深对计算机相关知识的理解和掌握,提高我们的计算机应用能力和问题解决能力。
具体目标包括:1、熟悉特定计算机软件或工具的使用方法和功能。
2、培养我们的实践操作能力,能够独立完成相关任务。
3、增强对计算机系统和程序运行原理的认识。
二、实验环境本次实验在学校的计算机实验室进行,实验室配备了高性能的计算机设备,安装了所需的操作系统和软件工具,具体如下:1、操作系统:Windows 10 专业版。
2、应用软件:具体软件名称 1、具体软件名称 2等。
三、实验内容及步骤(一)实验任务一:任务一的具体描述1、启动相关软件,熟悉其操作界面和基本功能。
2、按照给定的要求,进行数据的输入和处理。
首先,打开具体文件或项目,在相应的位置输入数据。
然后,运用软件提供的功能对数据进行整理和分析。
3、观察数据处理的结果,检查是否符合预期。
(二)实验任务二:任务二的具体描述1、切换到另一个软件工具,了解其特点和使用规则。
2、依据给定的案例,进行模拟操作。
设定相关参数,如列举参数名称和取值。
运行程序,观察输出结果。
(三)实验任务三:任务三的具体描述1、综合运用之前所学的知识和技能,解决一个较为复杂的实际问题。
2、制定解决方案,明确操作流程。
3、逐步实施解决方案,在过程中不断调整和优化。
四、实验中遇到的问题及解决方法在实验过程中,遇到了一些问题,通过以下方法得以解决:1、问题一:在进行具体操作时,出现了错误描述的错误提示。
解决方法:查阅相关的帮助文档和在线资料,发现是由于原因分析导致的。
通过具体的解决步骤,成功解决了该问题。
2、问题二:对于某个概念或功能理解不够清晰,导致操作失误。
解决方法:向老师和同学请教,经过他们的耐心讲解和示范,加深了对该内容的理解,从而能够正确完成操作。
五、实验结果与分析(一)实验任务一的结果经过数据处理,得到了具体的结果描述。
实验3-数据选择器功能测试及应用-实验报告

Guangxi University of Science and Technology实验报告实验课程:数字电子技术基础实验内容:数据选择器功能测试及应用院(系):计算机科学与通信工程学院专业:通信工程班级:141班学生姓名:柏松学号:201400402037指导教师:段淑玉2016年6月29 日一、实验目的:1、进一步熟悉用实验来分析组合逻辑电路功能的方法。
2、了解数据选择器(多路开关MUX )的逻辑功能及常用集成数选器。
3、了解组合逻辑电路由小规模集成电路设计和由中规模集成电路设计的不同特点。
二、实验原理:本实验使用的集成数据选择器74LS151为8选1数据选择器,数据选择端3个地址输入A 2A 1A 0用于选择8个数据输入通道D 7~D 0中对应下标的一个数据输入通道,并实现将该通道输入数据传送到输出端Y (或互补输出端Y )。
74LS151还有一个低电平有效的使能端EN ,以便实现扩展应用。
74LS151引脚功能如图5-4和附表所示。
在使能条件下(EN =0),74LS151的输出可以表示为∑==70D Y i i i m ,其中m i 为地址变量A 2、A 1、A 0的最小项。
只要确定输入数据就能实现相应的逻辑函数,成为逻辑函数发生器。
实验线路图图5-41 2 3 4 5 6 7 8910 11 12 13 14 74LS151D 3 D 2 Y GNDD 0 CC D 1 15 16 Y EN 21 0 7 6 5 4 EN A2 A 1 A 0 Y 1 X X X 0 1 0 0 0 0 D 0 0 0 0 1 D 1 0 0 1 0 D 2 0 0 1 1 D3 0 1 0 0 D4 0 1 0 1 D5 0 1 1 0 D6 0 1 1 1 D 774151功能表三、实验内容及步骤:实验内容:1、利用实验装置测试74LS151八选一数据选择器的逻辑功能,按图5-1接线,将实验结果记录在下表中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三数据的输入与输出
一、实验目的
1.掌握Print方法的使用,尤其是各种输出格式的设置。
2.掌握InputBox函数的使用。
3.掌握MsgBox函数和MsgBox语句的使用。
二、实验内容
1.实验准备
在练习文件夹中建立vb3-1、vb3-2、vb3-3、vb3-4、vb3-5、vb3-6、vb3-7文件夹。
2.Print方法实验
例1:设计一个简单的VB程序。
程序运行时,单击窗体,分别用紧凑格式、标准格式和自定义格式,在窗体上输出打印项。
界面如下:
图3.1 打印格式实验窗体界面设计
(1)创建工程。
(2)建立用户界面在窗体下方画5个命令按钮,自左至右,名称依次为Command1 ~ Command5,如图3.1所示。
(3)设置各对象的属性。
各控件主要属性的设置参见表3.1。
表3.1 属性设置
(4)编写命令按钮的事件代码。
双击“紧凑格式”按钮,进入代码编写窗口,编写如下代码:
在输入以上代码时要注意区分中英文双引号。
中文标点只能作为字符串的一部分或出现在注释文字之中。
(5)调试运行程序。
单击菜单[运行]—[启动],或者单击工具栏的“启动”按钮,单击各个按钮,查看效
果。
如单击“标准格式”和“自定义格式”按钮后,效果如图3.2所示。
图3.2 Print输出效果
保存结果到练习文件夹中的vb3-1文件夹。
3.InputBox函数实验
例2:设计一个简单的VB程序,界面如下:
图3.3 InputBox函数实验界面设计
(1)创建工程。
(2)建立用户界面。
各控件主要属性的设置参见表3.2。
表3.2 属性设置
(3)双击按钮控件,切换到代码设计窗口,添加程序代码如下:
(4)调试运行程序。
单击“计算输出”按钮,弹出InputBox对话框,输入数据,如图3.4所示,然后单击“确定”按钮或者直接回车。
两个数据都输入之后,返回到窗体,在两个文本框中可见到串相加和数相加的结果,如图3.5所示。
图3.4 InputBox函数实验数据输入
图3.5 InputBox函数实验运行结果
保存结果到练习文件夹中的vb3-2文件夹。
4.MsgBox实验
例3:设计一个简单的VB程序。
输入一个字符,判断它是大写字母、小写字母、数字,还是其他符号。
程序代码如下:
(1)创建工程。
(2)双击窗体控件,切换到代码设计窗口,输入代码:
(3)调试运行程序。
运行调试:单击窗体,在输入对话框中输入一个字符,程
序将根据输入字符的类型,例如输入“H”后,MsgBox弹出如
图3.6所示的对话框。
保存结果到练习文件夹中的vb3-3文件夹。
图3.6 测试字符值对话框三、思考题
1.设计一个程序。
利用Tab函数和Print方法在窗体上显示表达式的值。
在代码窗口中输入以下程序代码段,运行程序,单击窗体,观察在窗体上显示的结果。
请写出程序运行的结果。
保存结果到练习文件夹中的vb3-4文件夹。
2.设计一个程序。
要求:设有变量a=2,b=5,c=4,d=3,e=6(变量的值通过InputBox函数输入),计算表达式a+b>c and d*a=e的值,然后将结果在窗体上输出。
保存结果到练习文件夹中的vb3-5文件夹。
3.设计一个程序。
要求:单击一次按钮可以产生一个[60,90]之间的随机整数并显示在标签上。
保存结果到练习文件夹中的vb3-6文件夹。
4.设计一个程序。
要求:在窗体上显示如下图案。
保存结果到练习文件夹中的vb3-7文件夹。