实验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 ↙请同学们写出输出结果(二)完成程序要求:按照给定题目要求,参照出现的语句,填写程序空白处。
实验三 8255_1_输入_输出实验报告
实验三开关量输入与显示
一、实验要求
编写程序,通过8255的A口读取开关的状态,并在C口所连接的LED灯上显示出来。
二、实验目的
通过使8255读取开关量,进一步掌握8255的编程方法。
三、连接图
图1
四、实验程序框图
五实验过程及步骤
1 按实验要求连接线,将K1~K8连PA0~PA7,PC0~PC7连DL1~DL8,CS连200~207H。
连线结果如上图1所示。
2 对8255进行初始化:方式控制字为90h
3 读入A口状态:
mov dx,200h
in al,dx
4 写入C口
not al
mov dx,202h
out dx,al
5延迟代码段
mov cx,0fffh
lop:loop lop ;延迟,便于观察实验现象
6 运行程序,观察实验结果。
并改变开关的状态,再运行,观察不同开关状态下,LED灯的亮灭情况。
六实验结果
开关打开,相应的LED灯会亮;开关关闭,相应的LED会熄灭。
实验源代码
code segment
assume cs:code
start:
mov dx,203h;对8255进行初始化
mov al,90h
out dx,al
gg:
mov dx,200h ;写入A口
in al,dx
not al
mov dx,202h ;从C口输出
out dx,al
mov cx,0fffh
lop:loop lop ;延迟,便于观察实验现象
jmp gg
code ends
end start。
字符及字符串输入输出与顺序程序设计实验报告
字符及字符串输入输出与顺序程序设计实验实验报告2.2.1 实验目的1、学习和掌握字符及字符串的输入输出方法。
2、掌握顺序程序的设计方法。
3、进一步掌握调试工具的使用方法。
2.2.2 实验预习要求1、复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。
2、复习BCD码运算调整指令。
3、根据“2.2.3 实验内容”中给出的源程序框架编写完整的源程序,以便实验时调试。
4、从“2.2.4 实验习题”中任选一道题目,编写源程序,以便上机调试。
2.2.3实验内容从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。
1、问题分析比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII码值38H和36H。
由于数字0 9的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表示的十进制数08H和06H,使用ADD指令对它们进行相加后结果为0EH(00001110B),显然需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个非压缩型BCD数01H和04H,将它们分别加上30H后变为其对应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H用于单个字符输出的DOS功能调用将它们显示出来。
综上所述,需要考虑以下问题。
(1)从键盘输入一个一位十进制数的方法通过功能号为1的DOS功能调用实现从键盘输入一个字符,格式如下:MOV AH, 01HINT 21H ;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUB AL, 30H ;减去30H后得到键入数字所代表的数值(2)提示信息字符串的显示通过功能号为9的DOS功能调用实现字符串显示,注意字符串的最后一个字符必需为’$’。
单片机实验 IO口的输入输出实验
实验二 I/O口输入、输出实验一、实验目的1. 学习I/O口的使用方法。
2. 学习延时子程序、查表程序的编写和使用。
二、参考程序框图三、程序设计1、P0口循环点亮程序ORG 0030HSTART : MOV P2,#00H; O口初始化MOV P1,#0FFH; //P1口赋FFH初值MOV P0,#00H;START : MOV P2,#00H; //P2清0;MOV P0,#00H; //P0清0;MOV R1 ,P1;MOV A,R1; //读P1口CJNE A,#0FFH,L1; //是否有数据输入AJMP START; //无输入则跳转,继续查询LCALL DELAY;L1 : MOV R1,P1; //消除按键抖动MOV A,R1;CJNE A, #0FFH,LL1;AJMP START;LL1 : CJNE A,#0FEH,LL2; //是否按键1输入MOV P2,#06H; //是则P2输出相应的按键号码 CPL A; //A取反MOV P0,A; //输出到P0口LCALL DELAY; //延迟AJMP LP; //跳转到LPLL2 : CJNE A,#0FDH,LL3; //是否按键2输入MOV P2,#5BH; //以下同上CPL A;MOV P0,A;LCALL DELAY;AJMP LP;LL3 : CJNE A,#0FBH,LL4; //判断按键3是否按下 MOV P2,#4FH;CPL A;MOV P0,A;LCALL DELAY;AJMP LP;LL4 : CJNE A,#0F7H,LL5; //判断按键4是否按下MOV P2,#66H;CPL A;MOV P0,A;LCALL DELAY;AJMP LP;LL5 : CJNE A,#0EFH,LL6; //判断按键5是否按下 MOV P2,#6DH;CPL A;MOV P0,A;LCALL DELAY;AJMP LP;LL6 : CJNE A,#0DFH,LL7; //判断按键6是否按下 MOV P2,#7DH;CPL A;MOV P0,A;LCALL DELAY;AJMP LP;LL7 : CJNE A,#0BFH,LL8; //判断按键7是否按下 MOV P2,#07H;CPL A;MOV P0,A;LCALL DELAY;AJMP LP;LL8 : CJNE A,#7FH,LP; //判断按键8是否按下MOV P2,#7FH;CPL A;MOV P0,A;LCALL DELAY;LP : AJMP START; //跳转回程序开头DELAY : MOV R7,#01H; //延时程序DE1 : MOV R6,#28H;DE2 : MOV R5,#5AH;DJNZ R5,$;DJNZ R6,DE2;DJNZ R7,DE1;RETEND四、思考题1、LED循环方向更改:RL A; 改成 RR A;1S的延时程序: DELAY : MOV R7,#20; //延时程序DE1 : MOV R6,#200;DE2 : MOV R5,#123;DJNZ R5,$;DJNZ R6,DE2;DJNZ R7,DE1;RET2、提高电阻阻值3、一般为5V或者。
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位小数)。
p1口输入输出实验报告
p1口输入输出实验报告p1口输入输出实验报告引言:计算机科学领域的发展使得我们能够使用各种各样的设备与计算机进行交互。
而在这个过程中,输入输出接口的设计和实现显得尤为重要。
本篇文章将围绕p1口输入输出接口展开讨论,介绍其原理、实验过程以及实验结果。
一、p1口输入输出接口的原理p1口是一种通用输入输出接口,它可以连接各种外部设备,如键盘、鼠标、打印机等。
p1口的原理是通过电信号的传输来实现与外部设备的交互。
具体来说,p1口通过发送和接收电压信号来进行通信,从而实现输入输出的功能。
二、实验过程1. 准备工作在进行实验前,我们需要准备一台计算机和一些外部设备,如键盘、鼠标和打印机。
将这些设备连接到计算机的p1口上。
2. 输入实验首先,我们进行输入实验。
在连接好设备后,我们可以通过键盘向计算机输入一些字符。
计算机会将这些字符接收并进行处理。
我们可以通过编写一个简单的程序来实现字符的显示和处理。
在程序中,我们可以使用相应的函数来获取键盘输入,并将其显示在屏幕上。
通过这个实验,我们可以验证p1口的输入功能是否正常工作。
3. 输出实验接下来,我们进行输出实验。
在程序中,我们可以使用相应的函数来控制打印机输出指定的内容。
通过这个实验,我们可以验证p1口的输出功能是否正常工作。
4. 实验结果通过实验,我们可以得出以下结论:- p1口的输入功能正常工作,可以准确地接收键盘输入的字符。
- p1口的输出功能正常工作,可以控制打印机输出指定的内容。
三、实验总结p1口作为一种通用输入输出接口,具有广泛的应用。
通过本次实验,我们对p1口的原理和功能有了更深入的了解。
p1口的输入功能可以使计算机接收外部设备的输入信号,从而实现与用户的交互。
p1口的输出功能可以使计算机控制外部设备进行相应的操作,从而实现对外部环境的影响。
在今后的学习和工作中,我们可以进一步探索p1口的应用,提高计算机与外部设备的交互效率。
结语:通过本次实验,我们对p1口输入输出接口有了更深入的理解。
实验三、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,输入一个整数,要求将该整数上各位数字是偶数的数取出,并按原来从高位到低位的顺序组成一个新数。
实验三组合逻辑电路的功能测试
实验三组合逻辑电路的功能测试基本逻辑门测试:1.与门测试:在输入端口分别接入两个输入信号A、B,并将输出端口接入示波器。
通过输入不同的逻辑电平(0或1),观察输出信号。
当输入信号都为1时,输出信号应为1;其他情况下,输出信号应为0。
2.或门测试:与与门测试类似,在输入端口分别接入两个输入信号A、B,并将输出端口接入示波器。
通过输入不同的逻辑电平(0或1),观察输出信号。
当输入信号都为0时,输出信号应为0;其他情况下,输出信号应为13.非门测试:在输入端口接入输入信号A,并将输出端口接入示波器。
通过输入不同的逻辑电平(0或1),观察输出信号。
当输入信号为0时,输出信号应为1;当输入信号为1时,输出信号应为0。
4.异或门测试:在输入端口分别接入两个输入信号A、B,并将输出端口接入示波器。
通过输入不同的逻辑电平(0或1),观察输出信号。
当输入信号相同(均为0或均为1)时,输出信号应为0;当输入信号不同(一个为0,一个为1)时,输出信号应为1组合逻辑电路测试:1.与门与非门的组合测试:在输入端口分别接入两个输入信号A、B,并将输出端口接入示波器。
通过输入不同的逻辑电平(0或1),观察输出信号。
当输入信号都为1时,输出信号应为0;其他情况下,输出信号应为12.或门与非门的组合测试:与与门与非门的组合测试类似,只需将与门替换为或门,测试结果应与与门与非门的组合测试相反。
3.封装后的组合逻辑电路测试:使用封装后的组合逻辑电路实现具体的逻辑功能,如加法器、选择器等。
通过输入不同的逻辑电平(0或1),观察输出信号,验证实现的逻辑功能是否正确。
在进行功能测试时,需要注意输入信号的切换时间、输出信号的稳定时间,确保电路能够正常工作。
此外,还可以通过逻辑表或真值表对测试结果进行验证,确保组合逻辑电路的正确性。
总结:实验三组合逻辑电路的功能测试是通过对基本逻辑门和组合逻辑电路进行输入输出信号的观察和测试,验证其功能正确性。
C语言输入输出程序设计教案
VF 实训(实验)报告授课时间:月日___ 授课班级:_______学生姓名:_________________ 一、实训(实验)目的:通过举例和自主练习,掌握input , accept , wait三个输入语句和?等输出语句的使用二、实训所涉及的知识点:1、三个输入语句和输出语句的语法。
2、程序的编辑和运行。
三、实训课时:2个课时四、实训内容(含项目、任务、图案及步骤)任务一:学习输入输出专用命令命令格式:@<行,列>[say<表达式1>][get<变量名>][default<表达式2>]read要点:1、<行,列>:数据在窗口中的显示位置,自上向下编号。
2、say : 输出显示信息到屏幕3、get : 从键盘输入一个值,赋值给后面的变量。
例1:任意输入一个数,求其平方根。
claer@12,20 say “请输入一个值:” get x?sqrt(x)例2:从键盘输入记录号,找到该记录号,修改某设备的价格和部门。
Clear Array Use sbJlh=1@2,10 say “请输入记录号:”get jlhReadGo jlhUse例3:设计一个计算圆面积的输入输出程序。
@5,10 say”请输入半径:”get rRead?”s=”;s例4:从键盘输入三角形的三边长,输出面积。
@10,20 say”请输入三角形的边长a:”get a@10,20 say”请输入三角形的边长b:”get b@10,20 say”请输入三角形的边长c:”get creads=?”三角形的面积=”,sUse任务二学生练习1、在职工表中输入职工号,修改该职工的职称和基本工资2、在设备表中输入设备号,修改该设备的价格和名称。
3、输入任意两个自然数,求它们的平方和。
五、实训(实验)心得、体会、收获(由学生填写):六、实训(实验)成绩及教师评语:指导教师:_____年____月____日。
微机原理与接口技术输入输出实验
实验一:输入输出实验实验环境PC机+Win 2010+emu8086 实验日期2016.6.3 一.实验内容1.熟悉emu8086仿真系统,清楚调试环境,能熟练的查看8086仿真系统的寄存器、内存、堆栈等相关内容。
2.设计并单步调试实现一位十进制数的加法运算。
例如:屏幕显示效果为3+2=5,其中,加数和被加数为键盘输入,其他为屏幕自动输出。
3.在实现了一位十进制数加法运算的基础上,尝试实现两位十进制加法运算、一位十进制数的四则运算以及十进制多位数运算等扩展要求。
二.理论分析或算法分析1、Emu8086的使用(1)打开桌面上的云端软件,选择微机原理分类,点击Emu8086的图标,,选择【新建】。
(2)选择COM模板,点击【确定】,软件出现源代码编辑器的界面在源代码编辑器的空白区域,编写如下一段小程序:代码编写结束,点击菜单【文件】【另存为……】,将源代码换名保存。
本例将源代码保存为.asm。
:(3)如果源程序无错误,则编译通过单击【单步运行】可以单步调试,程序将每执行一条指令便产生一次中断(建议使用)。
单击【后退一步】可以返回到上一条指令(这个功能也是一般调试器没有的)。
单击【运行】,程序将从第一句直接运行到最后一句。
2、设计并单步调试实现一位十进制数的加法运算。
(1)选择新建一个.COM类型的文件。
(2)在编辑界面中,键入代码。
(3)点击工具栏的【模拟】按钮,进入调试窗口,单步调试并观察寄存器的变化情况。
3、进一步完善上述程序,实现一位十进制数的加法运算。
4、在实现了一位十进制数加法运算的基础上,选择完成如下题目:两位十进制加法运算、一位十进制数的四则运算、十进制多位数运算等。
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)一位加法:org 100hmov ah, 1int 21hmov bl, al mov ah, 2 mov dl, '+' int 21hmov ah, 1int 21hand bl, 0fh and ax, 0fh add al, bl aaaor ax, 3030h mov bx, ax mov ah, 2 mov dl, '=' int 21h cmp bh, 30hje j1mov ah, 2 mov dl, bhint 21hj1:mov ah, 2 mov dl, blint 21hret 多位加法:org 100hmov ah, 1int 21hmov bh, al int 21hmov bl, al mov ah, 2mov dl, '+'int 21hmov ah, 1int 21hmov ch, al int 21hmov cl, aland bx, 0f0fh and cx, 0f0fh mov ax, cxadd ax, bxaaaor ax, 3030h mov bx, ax mov ah, 2mov dl, '='int 21h cmp bh, 30hje j1mov ah, 2mov dl, bhint 21hj1:mov ah, 2mov dl, blint 21hret一位减、乘、除:mov ah, 1int 21hand al, 0fhmov bl, al mov ah, 1int 21hmov dl, alint 21hand al, 0fhxor ah, ahcmp dl, '+'jne jp1add al, blaaajmp short jp4jp1:cmp dl, '-'jne jp2xchg al, blsub al, blaasjmp short jp4jp2:cmp dl, '*'jne jp3mul blaamjmp short jp4jp3:xchg al, bldiv blaam jp4:mov bx, axmov ah, 2mov dl, '='int 21hor bx, 3030h cmp bh, '1'jc j1mov dl, bhint 21hj1:mov dl, blint 21h四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)一位数加法:多位数加法:一位数减、乘、除法五.结论通过这次实验,我对EMU8086实验模拟环境有相应的了解,熟悉了基本的EMU8086的使用方法,同时也对mov这个指令有了深入的理解,并且知道了各个存储器里面的值得存储过程,为以后的的学习打下了坚实的基础。
实验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`,用于计算数字的因数个数,并输出结果。
跟我学Linux编程-3-输入输出
Linux编程中的输入输出,如果只从C语言角度来看,可以说也没有什么特殊之处,本章节也并不打算花笔墨来介绍printf,scanf的用法。
但如果从Linux系统角度去看,又有不少有意思有东西,如输入输出重定向,管道,彩色字符显示等等,值得玩耍一翻,这才是接下来要我要介绍的重点。
Linux程序,运行后,通常会打开三个文件,其编号分别为0,1,2(我们称之为句柄号)。
其中0是标准输入,1是标准输出,2为错误输出。
我们来看个例子:程序什么也不做,一直sleep循环,以便于我们能够有时间查看它运行时的输入输出文件句柄。
执行:gcc inout.c -o io1编译完成后,我们执行程序:./io1再开一个新终端,执行:ps -a| grep io1会得到如下的信息:26065 pts/25 00:00:00 io1第一个整数是我们程序的进程编号(每次运行均有可能不一样),我们接下来的命令中需要用到它:ls /proc/26065/fd –l会显示这样的信息:lrwx------ 1 dxl dxl 64 3月30 09:58 0 -> /dev/pts/25lrwx------ 1 dxl dxl 64 3月30 09:58 1 -> /dev/pts/25lrwx------ 1 dxl dxl 64 3月30 09:55 2 -> /dev/pts/25显示的正是进程26065当前打开的文件句柄,共有3行,正是我上面所说的3个文件。
终端运行过程及结果Linux系统,程序打开的文件通常用一个整数句柄来表式。
我们可以调用close()函数来关闭它。
语法为:int close(int fd)其中,fd为文件句柄。
程序默认打开的标准输入输出文件句柄,也可以通过close来关闭。
我们接下来实验一下关闭0号文件会有什么现像发生:编译并执行:gcc inout.c -o io2./io2我们会意外发现,”Hello, world!”并没有在屏幕上输出!我们通过之前所说的方法,来查看io2的文件句柄打开情况:发现,1号文件确实是不存在了。
单片机《输入输出口》实验报告
实验一I/O口输入输出实验一、实验目的1. 掌握单片机的并行I/O口的接口结构、驱动能力特点和应用处理方法;2. 掌握单片机I/O引脚作为输出引脚的使用方法;3. 掌握单片机I/O口配置方法4. 掌握利用单片机I/O口设计单片机应用程序用输入控制输出的方法;5. 掌握单片机控制程序的结构。
二、实验原理及实验内容实验要求:利用单片机并行口做不规则花样流水灯,流水花样不低于16个。
实验原理:1.LED原理图2.STC15的IO口原理P6m0为0时,P6m1为0时,IO口模式为准双向口(传统8051 I/O口模式,弱上拉)灌电流可达20mA,拉电流为270微安,由于制造误差,实际为270~150微安* P6m0为0时,P6m1为1时,为推挽输出(强上拉输出,可达20mA,要加限流电阻)* P6m0为1时,P6m1为0时,(为高阻输出电流既不能流入也不能流出)P6m0为1时,P6m1为1时,为开漏(Open Drain),内部上拉电阻断开。
开漏模式即可读取外部状态也可以对外输出(高低电平)。
按照表格寄存器内容,我们对8个LED1,也就是P6口进行配置,当P6输出低电平时LED被点亮。
所以配置如下:P6M1 &= 0x00;P6M0 &= 0x00; //作为普通IO口,为弱上拉sbit KEY1=P2^0;sbit KEY2=P2^1;//定义两个按键由于STC15F2K60S2寄存器初始化时默认是:P6M1=0x00;P6M0 = 0x00;3.程序流程图主循环程序流程图三、实验程序#include <STC15.h>#include <intrins.h>#define Uchar unsigned char#define Uint unsigned intint LED[]={0xfc,0xf3,0xcf,0x3f,0xe7,0xdb,0xbd,0x7e,0x7e,0xbd,0xdb,0xe7, 0xfe,0xfb,0xef,0xbf,0xfd,0xf7,0xdf,0x7f};void P6Init()//IO口初始化函数{P6M0=0X00;P6M1=0X00;}void delay3s(void) //误差0us{unsigned char a,b,c;for(c=189;c>0;c--)for(b=230;b>0;b--)for(a=33;a>0;a--);}void main(){Uchar i=0;P0Init();while(1){for(i=0;i<20;i++){P6=LED[i];delay3s();}}}四、实验仪器和设备4.使用了keil软件Proteus 8 Professional软件。
java输入输出实验报告
java输入输出实验报告Java输入输出实验报告引言:Java是一种广泛应用的编程语言,其输入输出(Input/Output,简称I/O)功能对于程序的交互和数据处理至关重要。
本实验旨在通过实际操作,探索Java中的输入输出机制,并深入了解其原理和应用。
一、实验目的通过本次实验,我们的目标是:1. 理解Java中的输入输出概念和基本原理;2. 掌握Java中的标准输入输出流(System.in和System.out)的使用;3. 学会使用Java中的文件输入输出流,实现对文件的读写操作;4. 熟悉Java中的异常处理机制,处理输入输出过程中的异常情况。
二、实验环境本次实验所需的环境和工具如下:1. Java开发工具(如Eclipse、IntelliJ IDEA等);2. 一台配置良好的计算机。
三、实验过程1. 标准输入输出流的使用在Java中,标准输入流(System.in)用于接收用户的输入,标准输出流(System.out)用于向屏幕输出信息。
我们可以通过Scanner类来实现对标准输入流的读取,通过System.out.println()方法实现对标准输出流的输出。
下面是一个示例代码:```javaimport java.util.Scanner;public class StandardIOExample {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入您的姓名:");String name = scanner.nextLine();System.out.println("您好," + name + "!欢迎使用Java输入输出功能。
"); }}```2. 文件输入输出流的使用除了标准输入输出流,Java还提供了FileInputStream和FileOutputStream类,用于实现对文件的读写操作。
c++输入输出流实验报告
实验四输入输出流实验课程名:面向对象程序设计(C++)专业班级:学号:姓名:实验时间:实验地点:指导教师:代码分析:1)在输入时调用getline()以换行符作为输入姓名时的结束标志,已达到输入空格的目的2)输出时采用resetiosflags(ios::right)实现结束向左对齐,用setw(8)实现输出域宽为8,使用一系列的格式控制字符来实现输出格式的控制。
2. 重载运算符“<<”和“>>”,使其能够输入一件商品的信息和输出这件商品的信息。
商品的信息由编号、商品名和价格。
假如商品类Merchandise的框架如下:class merchandise{public:Merchandiss();~Merchandiss();friend istream& operator>>(istream& in,Merchandiss& s);friend ostream&operator<<(ostream& out,Merchandiss& s);private:int no;char *name;double price;};要求实现该类,并编写以下的main函数对该类进行操作。
int main(){ Merchandise mer;cin>>mer;cout<<mer;return 0;}实验代码:#include<iostream>using namespace std;class merchandise{out<<s.no<<' '<<<<' '<<s.price<<endl;return out;}int main(){merchandise mer;cin>>mer;cout<<mer;return 0;}实验结果:实验分析:先定义一个商品的类,构造函数定义为无参函数在函数体中将name置为空,其他为0.在重载>>时使用getline函数,输入name以’\n’作为结束标记重载<<时直接输出。
【实验指导书】实验3:分支结构程序设计
实验三:分支结构程序设计一、实验目的:1. 熟练掌握关系表达式和逻辑表达式的使用;2. 熟练掌握用嵌套的if语句和switch语句实现多分支结构程序设计;3. 熟练掌握switch语句中break语句的作用;4. 掌握简单的调试程序方法,包括:单步调试和运行到光标。
二、实验要求:1.编写程序,计算分支函数。
要求:输入为任意实数,输出结果保留小数点后2位。
输入输出示例:Enter x:227.00提示:实现x n可以标准库函数pow(x,n),此数学函数已在头文件math.h中说明。
2.编写程序。
根据一个年份,判断是否是闰年。
要求:输入为一个整数,表示一个年份;输出:如果是闰年,输出"Y es",否则输出"No"。
输出单独占一行。
输入输出示例:Enter year:2012Yes3. 编写程序。
给你三个正整数,判断用这三个整数做边长是否能构成一个三角形。
要求:输入为三个正整数,中间有一个空格隔开;输出:如果能构成三角形,输出"Yes",否则输出"No"。
提示:在一个三角形中,任意两边之和大于第三边。
输入输出示例:3 4 5Yes4.输入五级制成绩(A~E),输出相应的百分制(0~100)区间。
要求用switch语句。
五级制对应的百分制成绩区间为:A(90~100)、B(80~89)、C(70~79)、D((60~69))、E(0~59)。
输入输出示例:Input Grade:BB对应的百分制成绩区间是80~895.编写程序,输入月薪salary,输出应交的个人所得税tax(保留2位小数)。
按照2011年开始实行的新的个人所得税法,计算公式为:tax=rate*(salary - 3500)- deduction当salary ≤3500时,rate = 0、deduction = 0;当3500 <salary ≤5000时,rate = 3%、deduction = 0;当5000 <salary ≤8000时,rate = 10%、deduction = 105;当8000 <salary ≤12500时,rate = 20%、deduction = 555;当12500 <salary ≤38500时,rate = 25%、deduction = 1005;当38500 <salary ≤58500时,rate = 30%、deduction = 2755;当58500 <salary ≤83500时,rate = 35%、deduction = 5505;当83500 <salary时,rate = 45%、deduction = 13505。
实验三 74LS00逻辑功能的测试
实验三74LS00逻辑功能的测试一、实验准备(老师指导)1.学会正确放置和取出74LS00如果74LS00使用不正确,很容易损坏,还容易误伤人,特别是管脚,所以使用过程中必须按老师要求。
使用前要将管脚用镊子捏一下,竖向、横向都要对齐,插入电路板时要将其中一排管脚先插入,随后再插入另外一排,如果插入很容易,则说明插入方法正确,否则错误;取出时不能用手直接取,那样容易伤到手指,必须用镊子取出。
插入和取出方法正确后将坏的74LS00放入实验盒中,向老师要新的74LS00,便可以进行实验了,实验后要将未损坏的归还给老师。
2.认识74LS00的管脚记住74LS00的管脚分配情况,便于实验进行:1、2输入,3输出;4、5输入,6输出;7接地;9、10输入,8输出;11、12输入,13输出;14接电源。
3.扇出数的定义如下面电路图中所示4.示波器中信号的合并一般示波器中波形的显示为信号与实间的关系,即为X—T(Y—T)关系图,如果要将示波器上两信号合并,则将显示选项改为X—Y。
二、实验内容1.测试74LS00的逻辑功能并测输入输出电压;2.测试74LS00的传输特性,接入5V电源,用电位器改变输入电压,测试多组输入输出电压,并画出特性曲线;3.其一输入端接入函数发生器的三角波(最小值为0V,最大值为5V),将输入输出信号显示在示波器上,并将两信号合并;4.测扇出数。
三、实验电路1.测7400的逻辑功能并测输入输出电压2.测7400的传输特性(测输入输出电压)3.信号合成4.测扇出数此图测输入端接地的短路电流I1,另一输入端悬空调节电位器使电压表电压为0.4V不动电位器的位置,测此时电路中电流I2则扇出数为n=I2/I1四、实验结果1.7400的逻辑功能测试输入端接逻辑信号,按下灯亮表示输入信号为高电平1,未按下灯不亮表示输入信号为低电平0,输出接在发光二级管上,发光为黄色表示输出信号为低电平,为红色表示输出信号为高电平输入的逻辑信号为11,输出信号灯不亮(实验中为发光二极管,显示为黄色),表示输出为低电平,即为0。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第四周作业
1. 若有以下变量声明:
char ch=’e’;
int a=3,b=12345;
unsigned c=65534;
long d=123456;
float e=3.12;
double f=5.6789;
如果想要得到以下的输出结果,请写出相应的程序。
(凵表示空格,程序保存为3b_1.c)
ch=’e’凵or凵101(ASCII)
a=凵凵凵凵凵3凵b=012345
c=65534;c=fffe;c=FFFE
%d=123456%
e=3.120000\f=5.678900
e=3.1凵凵凵凵凵f=5.7凵凵凵凵凵
2. 使用下面程序来输入数据,要使x=5,u=40000,t=65537,ch1=’m’,ch2=’n’,a=-12
3.456,b=123456.789。
请写出正确的键盘输入形式,并自行添加输出语句验证。
(凵表示空格,将程序正确运行时键盘需要输入的所有内容保存为3b_2.txt)#include <stdio.h>
int main(void)
{
int x;
unsigned u;
long t;
char ch1,ch2;
float a;
double b;
scanf(“%d%u”,&x,&u);
scanf(“凵t=%lx”,&t);
scanf(“凵%c%c”,&ch1,&ch2); /* 第一个%前有一个空格*/
scanf(“凵a=%e,b=%lf”,&a,&b);
}
3. 假设现有的变量类型与上题一样,所有的变量也想获得同样的值。
实际的键盘输入形式如下,请写出相应的scanf语句。
(凵表示空格, ↵表示Enter键,程序保存为3b_3.c)5凵凵凵40000↵
65537↵
m凵n↵
-123.456,b=123456.789↵
4.编写求梯形面积的程序,数据由键盘输入(程序保存为3b_4.c)。
5.输入两个复数,输出其和(程序保存为3b_5.c)
假设有两个复数a+bi 和c+di,则他们的和为(a+c)+(b+d)i。
要求程序的输入输出格式如下所示:
Please input complex number one /* 提示输入第一个复数*/
realpart: 2 /* 输入实部*/
imagpart: -3 /* 输入虚部*/
Please input complex number two /* 提示输入第一个复数*/
realpart: 1 /* 输入实部*/
imagpart: 5 /* 输入虚部*/
(2-3i)+(1+5i) = 3+2i /* 最终结果输出*/
6.从键盘输入一个大写字母,要求改用小写字母输出(程序保存为3b_6.c)。