实验二基本运算程序
实验二 MATLAB的数据类型与基本运算
实验二MATLAB的数据类型与基本运算一、实验目的掌握MATLAB中编程语言的表示和运算,了解常用基本数据类型,了解结构、元胞和表等复杂数据类型的基本概念;熟悉矩阵运算,掌握用矩阵求逆法解线性方程组的方法,熟悉多项式运算。
二、实验内容1、一维数组在命令窗口执行下面指令,观察输出结果,体味数组创建和寻访方法,%号后面的为注释,不用输入。
rand('state',0) % 把均匀分布伪随机发生器置为0 状态x=rand(1,5) % 产生(1*5)的均布随机数组x(3) % 寻访数组x 的第三个元素。
x([1 2 5]) % 寻访数组x 的第一、二、五个元素组成的子数组。
x(1:3) % 寻访前三个元素组成的子数组x(3:end) % 寻访除前2 个元素外的全部其他元素。
end 是最后一个元素的下标。
x(3:-1:1) % 由前三个元素倒排构成的子数组x(find(x>0.5)) % 由大于0.5 的元素构成的子数组x([1 2 3 4 4 3 2 1]) % 对元素可以重复寻访,使所得数组长度允许大于原数组。
x(3) = 0 % 把上例中的第三个元素重新赋值为0。
x[3]=[] % 空数组的赋值操作x([1 4])=[1 1] % 把当前x 数组的第一、四个元素都赋值为1。
2、在命令窗口执行下面指令,观察输出结果a=2.7358; b=33/79; % 这两条指令分别给变量 a , b 赋值。
C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i] % 这指令用于创建二维组C M_r=[1,2,3;4,5,6],M_i=[11,12,13;14,15,16] % 创建复数数组的另一种方法CN=M_r+i*M_i % 由实部、虚部数组构成复数数组3. 记录下面题目的程序和运行后的结果。
1⎥⎦⎤⎢⎣⎡=654321a ⎥⎦⎤⎢⎣⎡-=531142b ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=201c ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=063258741d下列运算是否合法,为什么?如合法,结果是多少?(1) result1 = a'=[1 4;2 5;3 6] (2) result2 = a * b 不合法(3) result3 = a + b=[3 6 2;5 8 11](4) result4 = b * d=[31 22 22;40 49 13](5) result5 = [b ; c' ] * d=[31 22 22;40 49 13;-5 -8 7] (6) result6 = a . * b=[2 8 -3;4 15 30](7) result7 = a . / b=[0.5000 0.5000 -3.0000;4.000 1.667 1.2000](8) result8 = a . * c 不合法(9) result9 = a . \ b=[2.0000 2.0000 -0.3333;0.2500 0.6000 0.8333] (10) result10 = a . ^2=[1 4 9;16 25 36] (11) result11 = a ^2不合法(12) result11 = 2 . ^ a=[2 4 8;16 32 64]4、设矩阵A =[311212123],B =[11−12−101−11]求(1)2A+B(2)4A 2-3B 2 (3)AB (4)BA (5)AB-BA5、设三阶矩阵A、B满足A-1BA=6A+BA,其中A=[13000140017],求矩阵B。
实验二实验报告
C语言程序设计报告二数据类型,运算符和简单的输入输出计算机学院软件工程2班王莹0411402011,实验目的(1)掌握C语言数据类型,了解字符型数据和整型数据的内在关系。
(2)掌握对各种数值型数据的正确输入方法。
(3)学会使用C语言的有关算数运算符,移机包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
(4)学会编写和运行简单的应用程序。
(5)进一步熟悉C程序的编辑、编译、连接和运行的过程。
2,实验内容和步骤(1)输入并运行教材第3章第4题给出的程序。
○1运行以上程序,分析为什么会输出这些信息。
因为第6行是将c1,c2按%c的格式输出,97是字符a的AS CⅡ代码,98是字符b的AS CⅡ代码。
第7行是将c1,c2按5d的格式输出,所以输出两个十进制整数。
○2如果将程序第4,5行改为c1=197;c2=198;运行时会输出由于Visual C++6.0字符型数据是作为signed char类型处理,它存字符的有效范围为0~127,超出此范围的处理方法,不痛的系统得到的结果不痛,因而用“%d”格式输出,结果是不可预期的。
用“%d”格式输出时,输出c1=-59,c2=-58.这是按补码形式输出的,内存字节中第1位为1时,作为负数。
59和197之和等于256,58与198之和也等于256.○3如果将程序第3行改为int c1,c2;运行时会输出因为97和98在int类型的有效范围。
(2)输入第3章第5题得程序。
即:用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
运行时分别按一下方式输入数据,观察输出结果,分析原因。
1,a=3,b=7,x=8.5,y=71.82,A,a↙2,a=3 b=7 x=8.5 y=71.82 A a↙3,a=3 b=7 8.5 71.82 A a↙4,a=3 b=7 8.5 71.82Aa↙5,3 7 8.5 71.82Aa↙6,a=3 b=7↙8.571.82↙A↙a↙7,a=3 b=7↙8.571.82↙Aa↙8,a=3 b=7↙8.671.82Aa↙12345678(3)输入以下程序○1编译和运行程序,注意i,j,m,n各变量的值。
实验二-顺序结构程序设计
实验二顺序结构程序设计2.1实验要求与目的1.掌握程序设计的基本思想2.熟悉及掌握C语言基本数据类型(int,long,float,double)的说明3.掌握C语言程序设计中格式输入和输出函数的灵活应用4.算术表达式在实际问题中应用5.掌握算法:两数的交换、一个整数的拆数6.数学头文件的包含7.格式输入/输出函数scanf/printf的正确使用2.2 实验指导程序设计的学习过程也是算法积累的过程。
算法是在有限步内求解某一问题所使用的基本运算及规定的运算顺序所构成的完整的解题步骤。
也就是说是计算机解题的过程。
程序设计的基本思想:1)分析问题,理解题意、提出问题;2)建立模型,确立算法,寻找解决问题的有效算法或直接公式;4)编写程序,根据C语言程序结构编程;5)调试程序,若结果正确,结束。
否则检查程序,修改程序,重新调试程序,依次类推,直到调试结果正确为止。
初次自已动手编程,先要建立程序设计的基本思想,结构化程序设计的基本思想就是模块化。
即构成C语言程序的基本单位是函数,函数也是C程序中模块化程序程序设计的基础。
我们将程序设计比拟成“搭积木”,每个模块或每个算法都看成是一个形状及功能不同的“积木”,然后根据设计要求取材,搭建成完美的成品。
C语言是有且仅有一个主函数和若干个子函数组成。
从一个简单的程序设计开始学习,即先学习主函数(main)模块框架。
主函数(main)模块的基本框架设计。
#include <stdio.h>int main(){ 所有数据的数据类型定义说明;数据输入;算法或公式;数据输出;}首次编程,先来熟记2个编程时常用提示信息。
1) 每条语句之后必须有分号“;”。
若程序语句的某一条漏写了分号,在编译时会报如下的错误:error C2146: syntax error : missing ';' before identifier 'scanf'含义: C2146错误:语法错误: 标识符 “scanf” 之前缺少“;”。
实验二 算术逻辑运算及移位操作
实验二算术逻辑运算及移位操作一.实验任务1.实验程序段及结果表格如表:分析:程序段1:MOV AX, 1018H ;AX←1018HMOV SI, 230AH ;SI←230AHADD AX, SI ;AX=3322H,低8位为00100010B,1的个数;为偶数,PF=1,同时D3向D4有进位发生,AF=1 ADD AL, 30H ;AX=3352H,低8位1个个数为奇数,PF=0 MOV DX, 3FFH ;DX←3FFHADD AX,BX ;AX=3352H,MOV [20H], 1000H ;[20H]←1000HADD [20H], AX ;[20H]=4352HPUSH AX ;POP BX ;BX=3352H程序段2:MOV AX, 0A0AH ;AX←0A0AHADD AX, 0FFFFH ;AX=0A09H,最高位进位CF=1,低8位1的;个数为偶数PF=1;D3向D4进位AF=1 MOV CX, 0FF00H ;CX←0FF00HADC AX, CX ;AX=090AH,最高位进位CF=1,低8位1的个;数为偶数PF=1SUB AX, AX ;AX=0,运算结果为零ZF=1INC AX ;AX=1HOR CX, 0FFH ;CX=0FFFFH,最高位为1,ZF=1,低8位1的;个数为偶数PF=1AND CX, 0F0FH ;CX=0F0FH,低8位1的个数为偶数PF=1MOV [10H], CX ;[10H]←0F0FH程序段3:MOV BL, 25H ;BL←25HMOV BYTE PTR[10H], 4 ;[10H]←04HMOV AL, [10H] ;AL←04HMUL BL ;AL=94H程序段4:MOV WORD PTR[10H],80H ;[10H]←0080HMOV BL, 4 ;BL←04HMOV AX, [10H] ;AX←0080HDIV BL ;AX=0020H程序段5:MOV AX, 0 ;AX←0000HDEC AX ;AX=0FFFFH,最高位为1,SF=1,低8;位1的个数为偶数PF=1,最高位向前、;D3向D4有借位,CF=1,AF=1 ADD AX, 3FFFH ;AX=3FFEH,D3向D4有进位,AF=1 ADD AX, AX ;AX=7FFCH,低8位1的个数为偶数,PF=1;D3向D4有进位,AF=1NOT AX ;AX=8003HSUB AX, 3 ;AX=8000H,低8位1的个数为偶数,PF=1;最高位为1,SF=1OR AX, 0FBFDH ;AX=0FBFDH,最高位为1,SF=1AND AX, 0AFCFH ;AX=0ABCDH,最高位为1,SF=1SHL AX,1 ;AX=579AH,低8位1的个数为偶数,PF=1,;算数结果溢出OF=1,最高位进位CF=1 RCL AX,1 ;AX=0AF35H,低8位1的个数为偶数,;PF=1,算数结果溢出OF=12.用BX寄存器作为地址指针,从BX所指的内存单元(0010H)开始连续存入三个无符号数(10H、04H、30H),接着计算内存单元中的这三个数之和,和放在0013H单元中,再求出这三个数之积,积放0014单元中。
实验二 简单的C程序设计
实验二简单的C程序设计实验目的:1.掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。
2.通过编程进一步理解和掌握运算符的确切含义和功能。
3.理解和掌握运算符与运算对象的关系,优先级和结合方向。
1.通过编程,掌握C语言的几种基本数据类型,int、char、flloat、double,以及由这些基本数据类型构成的常量和变量的使用方法。
2.掌握基本输入/输出函数的使用方法,包括printf()、scanf()、getchar()、putchar()。
3.掌握简单的C程序的查错方法。
实验内容:一、输入程序,观察输出结果,并对输出结果作出合理的解释。
1./* e1.cpp */#include<stdio.h>void main(){ float x;double y;x=213.82631;y=213.82631;printf("%-4.2f,-6.2e\n",x,y);}输出结果:解释:2./* e2.cpp */#include<stdio.h>void main(){ char ch;int k;ch=’a’;k=10;printf(“%d,%x,%o,%c”,ch,ch,ch,ch,k);printf(“k=%%d\n”,k);}输出结果:解释:3./* e3.cpp */#include<stdio.h>void main(){ float a1,a2;double b1,b2;a1=3141.59;a2=0.000001;b1=3141.59;b2=0.000001;printf(“%f,%lf\n”,a1+a2,b1+b2);}输出结果:解释:4./* e4.cpp */#include<stdio.h>void main(){ float x=5/2,y=5.0/2;printf("x=%f,y=%f\n",x,y);}输出结果:解释:二、编写程序。
微机实验二
实验二:汇编语言(三种基本结构程序)设计与调试一、实验目的1.学习汇编语言(三种基本结构程序)设计与调试。
2.掌握多分支结构程序设计的方法。
3.掌握循环结构程序设计的方法。
4.熟悉在PC机上建立、汇编、连接和调试程序的方法。
二、实验内容(顺序结构的程序设计)程序一:设W、X、Y、Z均为16位带符号数。
要求完成计算表达式(W-(X*Y+Z-220))/X。
将表达式的商和余数存入数据区RESULT单元开始的区域中。
编程思路:该题目要求掌握乘除法运算中带符号数和无符号数运算的区别。
为了实现指定功能,应从以下几个方面考虑:(1)带符号数的乘除法运算应选用的指令。
(2)乘、除法运算中操作数的长度问题。
(3)带符号数的扩展问题。
参考程序清单DATA SEGMENTW DW -304X DW 1000Y DW -12Z DW 20RESULT DW 2 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AX,XIMUL YMOV CX,AxMOV BX,DXMOV AX,ZCWDADD CX,AXADC BX,DXSUB CX,220SBB BX,0MOV AX,WCWDSUB AX,CXSBB DX,BXIDIV XMOV RESULT,AXMOV RESULT+2,DXMOV AH,4CHINT 21HCODE ENDSEND START三、实验内容(分支结构的程序设计)程序二:在数据区中定义三个带符号字节变量,编写程序将其中的最大数找出送到MAX单元中。
该题目要求掌握多分支程序设计方法。
编程思路:为了实现指定功能,应从以下几个方面考虑:(1) 确定编程的算法思想。
(2) 确定带符号数比较大小转移应选择哪一组条件转移指令。
参考程序清单:DATA SEGMENTX DB 115Y DB 23Z DB -20MAX DB ?DATA ENDSCODE SEGMENTASSUME DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV AL,XCMP AL,YJG NEXTMOV AL, YCMP AL,ZJG EXITMOV AL,ZJMP EXITNEXT:CMP AL,ZJG EXITMOV AL,ZEXIT:MOV MAX,ALMOV AH,4CHINT 21HCODE ENDSEND START ;返回DOS四、实验内容(循环结构的程序设计)程序三:编写程序实现将数据段STR1单元开始的20个字符移到STR2开始的存储区。
c语言第二部分 实验内容
三、实验内容
1.阅读并输入如下程序,查看运行结果,并分析其功能。 # include "stdio.h" main ( ) { int a, b, c, s ; a = 5; b = 4; c = 6; s = (a+b+c)/ 3; printf (" a = %d, b = %d, c = %d \n, s = %d ", a, b, c, s) ; }
C语言程序设计实验·设计·习题
2.下面是一正方形面积的计算程序,通过输入不同的边长,求 出不同的面积。输入此程序并试运行。 注意:程序中含有输入语句,运行时将会停留在另一窗口中等待 输入数据。 # include"stdio.h" main ( ) { int r, s ; scanf (" %d ",&r) ; s= r*r; printf (" s = %d ", s) ; } 3.在Turbo C中调试并修改以下C程序中的错误。
C语言程序设计实验·设计·习题
三、实验内容
1.改正书中所给的相关程序的错误。 2.程序填空。 (1)按程序中注释的要求填输出语句。 (2)要求运行时必须按如下格式输入数据,请填空。 3.程序编译成功,只是说明没有语法错误,但并不一定能得出 正确结果,因为有可能存在编程逻辑错误。这时,我们需要跟踪变量、 调试程序,找出问题所在。调试的一般方法有: (1)单步跟踪:选择Run菜单下的Step命令,也可以直接按快捷键 F7(可跟踪进函数、过程)或快捷键F8,这样可以每条语句单独运行。 (2)运行至光标处:先将光标移至目标语句,然后选择Run菜单下 的Go to Cursor命令,或按快捷键F4,这样可以连续运行从开始到光 标处的一段程序。
信号的基本运算实验
实验二 信号与系统实验专业:通信工程 学号:2010044543014 姓名:朱燕宁1. 信号的基本运算实验1.1实验目的:(1)了解各基本运算单元的构成。
(2)掌握信号时域运算的运算法则。
1.2实验原理及内容(1)相加:信号在时域中相加时,其横轴(时间轴)的横坐标值不变,仅是将横坐标值所对应的纵坐标值相加。
图如下图01 图02图03 图04 直流输入电压 IN1(V) -2 -3 4 1 IN2(V) 1 -1 -1 2 输出电压OUT 实测(V) -1.15 -4.24 2.94 2.91 估算(V) -1 -4 3 3表2-3-1(2)相减:信号在时域中相减时,其横轴(时间轴)的横坐标不变,仅是将横坐标值所对应的纵坐标值相减。
实验过程中的图和数据如下:图01 图02图03 图04 直流输入电压 IN1(V) -2 -3 4 1 IN2(V) 1 -1 -1 2 输出电压OUT 实测(V) 2.97 1.91 -5.11 1.12 估算(V) 3 2 -5 1表2-3-2(3)数乘:信号在时域中倍乘时,其(时间轴)的横坐标值不变,仅是将横坐标值所对应的纵坐标值扩大n 倍。
图01 图02图03 图04正弦波信号幅值(V) 2 3 4 5频率(Hz) 10 100 200 500放大倍数Rp 40 10 5 2输出信号估算幅值(V) 8 3 2 1频率(Hz) 10 100 200 500输出信号测量幅值(V) 8.38 3.00 2.06 1.52频率(Hz) 10 100 200 5003.实验总结:本次实验的目的是了解各基本运算单元的构成及掌握信号时域运算的运算法则。
主要内容是:信号在时域中的加法运算、减法运算、数乘运算。
在实验中,做数乘运算实验时尤其得注意:用万用表测量电位器值时应当将电位器从电路中断开,并且注意使用万用表时应当将表笔插入电阻\电容测量的表笔座中。
通过本次试验,我再一次明白到:做实验不能盲目进行,一定要预习,搞清楚实验原理及步骤,并注意相关的细节问题。
实验二计算机的数据表示和计算
实验二计算机的数据表示和计算实验二:计算机的数据表示和计算一、实验目的本实验旨在深入理解计算机内部的数据表示、数据类型和计算规则,以及如何运用这些基本知识进行程序设计和问题解决。
通过实际操作,掌握二进制、十进制和十六进制等不同数制之间的转换,理解计算机中数据的表示方法和存储方式。
二、实验内容1.数据表示方法:掌握二进制、十进制和十六进制等不同数制之间的转换,理解计算机中数据的表示方法和存储方式。
2.数据类型:了解和掌握常见的数据类型(如整数、浮点数、字符等)及其在计算机内部的表示方法。
3.计算规则:掌握二进制、十进制和十六进制之间的加减乘除运算规则,并能够进行简单的编程实现。
4.编程实践:通过编程语言(如Python)实现不同数制之间的转换、数据类型的操作以及基本的数学运算。
三、实验步骤1.数据表示方法:首先,我们需要了解二进制、十进制和十六进制等不同数制之间的转换规则。
例如,如何将十进制数转换为二进制或十六进制数,反之亦然。
可以使用计算器或在线工具进行转换,但需要理解转换的原理和方法。
2.数据类型:接下来,我们需要了解计算机中常见的数据类型及其在内存中的表示方法。
例如,整数类型(int)在内存中占用固定大小的存储空间(如4字节),而浮点数类型(float)则表示具有小数部分的数字。
可以通过编写简单的程序来查看不同数据类型在内存中的表示方式。
3.计算规则:掌握二进制、十进制和十六进制之间的加减乘除运算规则。
例如,了解二进制数的加法规则(逢二进一)和乘法规则(左移一位乘2),以及十进制数和十六进制数的加减乘除运算规则。
可以通过编写简单的程序进行验证。
4.编程实践:最后,通过编程语言(如Python)实现不同数制之间的转换、数据类型的操作以及基本的数学运算。
例如,编写一个Python程序,接受用户输入的十进制数,将其转换为二进制和十六进制数并输出结果。
还可以编写一个程序来演示不同数据类型之间的加减乘除运算,并输出结果。
实验二:单链表基本运算实现
{
int data; //存放表结点值
struct node *next; //存放表结点的直接后驱元素的地址
} ListNode,*LinkList;
//头插法创建初始链表
LinkList create_h(int size)
{
;//将工作指针p指向后一个结点
;//计数器累加
}
return i;
}
//打印链表中的现有元素
printList(LinkList head)
{
LinkList p;
;//将工作指针p指向第1个结点
{
p=(LinkList)malloc(sizeof(ListNode));//申请新结点的存储空间
scanf("%d",&p->data);//读入新结点的值到data域中
;//将新增结点插到头结点的后面
;//将新增结点插到头结点的后面
printf("————头插法建立链表(1)\n");
printf("————尾插法建立链表(2)\n");
printf("————按位查找元素(3)\n");
printf("————按值查找元素(4)\n");
printf("————插入元素(5)\n");
printf("————删除元素(6)\n");
printList(h);
break;
case 5:
printf("插入元素,请输入要插入元素的值:\n");
基本算数运算实验报告
一、实验目的1. 理解并掌握基本算数运算(加、减、乘、除)的原理和方法。
2. 提高对基本算数运算的熟练程度和运算速度。
3. 培养严谨的实验态度和科学思维方法。
二、实验原理基本算数运算是指加、减、乘、除四种运算。
加法是指将两个或多个数合并成一个数的运算;减法是指已知两个加数和一个和,求另一个加数的运算;乘法是指将一个数重复加若干次,或者将两个数相加若干次的运算;除法是指已知两个因数的积和其中一个因数,求另一个因数的运算。
三、实验内容1. 加法运算2. 减法运算3. 乘法运算4. 除法运算四、实验步骤1. 加法运算(1)准备实验材料:笔、纸、加法运算表等。
(2)按照加法运算表,进行10组加法运算,记录结果。
(3)对结果进行统计分析,比较运算速度和准确性。
2. 减法运算(1)准备实验材料:笔、纸、减法运算表等。
(2)按照减法运算表,进行10组减法运算,记录结果。
(3)对结果进行统计分析,比较运算速度和准确性。
3. 乘法运算(1)准备实验材料:笔、纸、乘法运算表等。
(2)按照乘法运算表,进行10组乘法运算,记录结果。
(3)对结果进行统计分析,比较运算速度和准确性。
4. 除法运算(1)准备实验材料:笔、纸、除法运算表等。
(2)按照除法运算表,进行10组除法运算,记录结果。
(3)对结果进行统计分析,比较运算速度和准确性。
五、实验结果与分析1. 加法运算实验结果显示,在10组加法运算中,平均运算时间为3秒,准确率为100%。
通过本次实验,可以看出加法运算对提高运算速度和准确性具有积极作用。
2. 减法运算实验结果显示,在10组减法运算中,平均运算时间为4秒,准确率为98%。
与加法运算相比,减法运算的运算速度和准确性略有下降,但仍然保持在较高水平。
3. 乘法运算实验结果显示,在10组乘法运算中,平均运算时间为5秒,准确率为100%。
乘法运算对提高运算速度和准确性同样具有积极作用。
4. 除法运算实验结果显示,在10组除法运算中,平均运算时间为6秒,准确率为95%。
实验二 加减法运算器的设计实验报告
加减法运算器的设计实验报告实验二加减法运算器的设计一、实验目的1、理解加减法运算器的原理图设计方法2、掌握加减法运算器的VERILOG语言描述方法3、理解超前进位算法的基本原理4、掌握基于模块的多位加减运算器的层次化设计方法5、掌握溢出检测方法和标志线的生成技术6、掌握加减运算器的宏模块设计方法二、实验任务1、用VERILOG设计完成一个4位行波进位的加减法运算器,要求有溢出和进位标志,并封装成模块。
模块的端口描述如下:module lab2_RippleCarry 宽度可定制(默认为4位)的行波进位有符号数的加减法器。
#(parameter WIDTH=4)( input signed [WIDTH-1:0] dataa,input signed [WIDTH-1:0] datab,input add_sub, // if this is 1, add; else subtractinput clk,input cclr,input carry_in, //1 表示有进位或借位output overflow,output carry_out,output reg [WIDTH-1:0] result)2、修改上述运算器的进位算法,设计超前进位无符号加法算法器并封装成模块。
模块的端口描述如下:module lab2_LookaheadCarry // 4位超前进位无符号加法器(input [3:0] a,input [3:0] b,input c0, //carry_ininput clk,input cclr,output reg carry_out,output reg [3:0]sum);3、在上述超前进位加法运算器的基础上,用基于模块的层次化设计方法,完成一个32位的加法运算器,组内超前进位,组间行波进位。
4、用宏模块的方法实现一个32位加减运算器。
三、实验内容1、用VERILOG设计完成一个4位行波进位的加减法运算器,要求有溢出和进位标志,并封装成模块。
C语言实验2----基本的程序语句
C语言实验2----基本的程序语句1.1目的和要求(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
(2)学会使用C的有关算术运算符,及包含这些运算符的表达式,(3)自增(++)和自减(--)运算符的使用。
(4)了解字符在计算机中以ASCII码方式表示。
(5)掌握基本的输入输出函数scanf( )、printf( )的基本功能、调用方法、输入/输出格式控制规定等。
(6)巩固学生对于编程概念的理解。
1.2实验内容1.2.1实验练习1:表达式的计算。
实验目的:本实验旨在巩固学生对于编程概念的理解。
在这个实验中将练习:•如何定义浮点型变量•使用scanf输入用户提供的数据•使用printf输出变量问题描述:编写程序sy2_1.c进行温度转换计算,输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。
示例输出:程序主体模板:#include<stdio.h>void main( ){float h, c;printf("请输入华氏温度:");/*接收用户输入的华氏温度*//*将华氏温度转化为摄氏温度*//*输出对应的摄氏温度*/}问题解答提示:1.依据题目,输入和输出数据均为温度,因此用float来表示,其中输入数据为华氏温度,输出数据为摄氏温度;2.提示用户输入华氏温度,并用scanf语句接收此值;3.根据华氏温度和摄氏温度之间的计算公式,将华氏温度转化为摄氏温度,并存储在变量c中;4.用printf语句显示对应的摄氏温度。
1.2.2实验练习2:自增运算符的使用。
实验目的:本实验旨在巩固学生对于编程概念的理解。
在这个实验中,学生将练习:•掌握自增(++)运算符的使用问题描述:编写程序sy2_2.c,观察其执行结果,思考自增运算符放在变量之前和放在变量之后,表达式的值有何不同。
C语言程序设计实验报告——实验2 数据类型、运算符和表达式
凯里学院 C 语言程序设计 实验报告××××× 专业×× 年级×× 班,学号×××××× 姓名××成绩 合作者 实验日期 年 月 日 指导教师 评阅日期 年 月 日实验二 数据类型、运算符和表达式一、实验目的:(1)掌握C 语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。
(2)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。
(3)掌握C 语言的输入和输出函数的使用(4)进一步熟悉C 程序的编辑、编译、连接和运行的过程,学会使用step by step 功能。
(5)认真阅读教材数据类型,算术运算符和表达式,赋值运算符和表达式部分内容。
二、实验内容:(1)输人并运行下面的程序 #include<stdio.h> void main() {char c1,c2; c1='a'; c2='b';printf("%c %c\n",c1,c2); }(2)按习题3. 7的要求编程序并上机运行 该题的要求是:要将“China ”译成密码,密码规律是:用原来字母后面的第4个字母代替原来的字母。
例如,字母“A ”后面第4个字母是“E ”,用“E ”代替“A ”。
因此,“China ”应译为“Glmre" 。
请编一程序,用赋初值的方法使。
cl ,c2,c3,c4,c5五个变量的值分别为‘C ’、‘h ’、‘i ’、‘n ’、‘a ’,经过运算,使cl ,c2,c3,c4,c5分别变为‘G ’、‘l ’、‘m ’、‘r ’、‘e ’,并输出。
三、实验步骤:(1)输人并运行下面的程序 #include<stdio.h> void main() {char c1,c2; c1='a'; c2='b';printf("%c %c\n",c1,c2); }装订线装订线① 运行此程序。
实验二基本运算电路
学习基本运算电路的设计方法
学习使用电路仿真软件进行基本运算 电路的设计。
学习根据实际需求选择合适的运算电 路元件和参数。
了解基本运算电路的应用场景
了解基本运算电路在计算机、通信、 控制等领域的应用。
了解基本运算电路与其他电路的接口 方式和相互影响。
02
CATALOGUE
实验设备与材料
电源
直流电源
减法运算电路
总结词
实现两个输入信号相减的功能
详细描述
减法运算电路通过电阻和运算放大器实现两个输入信号的 相减,输出信号是两个输入信号的差。
电路组成
由电阻和运算放大器组成,输入信号通过电阻分别加到运 算放大器的两个输入端,输出信号通过电阻反馈到运算放 大器的反向输入端。
工作原理
当一个输入信号作用于运算放大器的正相输入端,另一个 输入信号作用于运算放大器的反向输入端时,输出信号等 于两个输入信号的差。
THANKS
感谢观看
实验二基本运算电 路
目录
• 实验目的 • 实验设备与材料 • 基本运算电路的种类与原理 • 基本运算电路的设计与搭建 • 基本运算电路的测试与验证
01
CATALOGUE
实验目的
掌握基本运算电路的工作原理
01
掌握加法器、减法器、乘法器和 除法器等基本运算电路的工作原 理。
02
理解输入信号和反馈信号在运算 电路中的作用。
微分运算电路的设计与搭建
总结词
微分运算电路是实现输入信号微分功能的电 路,通常由微分器、输入和输出三个部分组 成。
详细描述
微分运算电路的核心元件是微分器,其工作 原理是将输入信号进行时间微分,从而得到 输出信号。在搭建微分运算电路时,需要选 择合适的微分器,并确保电路的稳定性,以
C语言实验报告-实验二 数据类型、运算符和表达式
请编程序:当给出f时,求其相应摄氏温度和绝对温度。
测试数据:①f=34 f=100
答:①的程序为
#include <stdio.h>
main()
{
float f,c;
double k;
f=34;
c=5/9*(f-32);
k=273.16+c;
printf("c=%f,k=%lf\n",c,k);
x=r.cosθ
y=r.sinθ
测试数据:①r=10 θ=45° r=20 θ=90°
答:①的程序为
#include<stdio.h>
#include <math.h>
main()
{
float r,b,x,y;
r=10;
b=45;
x=r*cos(b/180*3.14);
y=r*sin(b/180*3.14);
答:该程序为
#include<stdio.h>
#define PI 3.14
main()
{
float r;
double s,c;
r=1.5;
s=PI*r*r;
c=2*PI*r;
printf("s=%.2lf,c=%.2lf",s,c);
}
(2)将华氏温度转换为摄氏温度和绝对温度的公式分别为:
(摄氏温度)
main( )
{int i=8,j=10,m=0,n=0;
m+=i++;n-=--j;
printf(“i=%d,j=%d,m=%d,n=%d\n”,i,j,m,n);
C语言实验报告-实验2 顺序结构程序设计
实验2 顺序结构程序设计一、实验目的1. 学会使用自然语言或伪代码描述算法2. 掌握变量、运算符、表达式的使用3. 熟悉顺序结构程序中语句的执行过程4. 掌握标准输入流对象cin及标准输出流对象二、实验内容编写程序在屏幕上显示如图2-1所示的菜单。
图2-1 学生选课管理系统主界面实验步骤:范例:1)在VS2008中新建项目,在项目中新建C++源文件,输入下面程序,并且编译、连接。
//***************************************************************//* 程序名:实训2_1.cp *//* 主要功能: *//* 显示主菜单,并获取用户输入的模块编号 *//***************************************************************#include <iostream> // 包含输入输出接口文件using namespace std; // 引用标准命名空间void mainMenu();int main() // 定义主函数{ // 主函数开始mainMenu();return 0;}void mainMenu(){system("cls");cout<<"\n\n\n\n\n";cout<<"\t\t|---------------学生选课系统(学生版)------------|\n";cout<<"\t\t|\t 0. 退出 |\n";cout<<"\t\t|\t 1. 学生信息管理 |\n";cout<<"\t\t|\t 2. 教师信息管理 |\n";cout<<"\t\t|\t 3. 课程信息管理 |\n";cout<<"\t\t|\t 4. 学生选课管理 |\n";cout<<"\t\t|\t 5. 学生成绩管理 |\n";cout<<"\t\t|\t 6. 信息统计模块 |\n";cout<<"\t\t|-----------------------------------------------|\n\n";cout<<"\t\t\t请输入模块编号(0-6):";}2)运行范例所示程序,观察输出结果实训1要求编写程序在屏幕上显示如图2-2所示的菜单。
序列的基本运算时域变换离散信号的卷积和实验二
序列的基本运算时域变换离散信号的卷积和实验一、实验目的1、熟悉用MATLAB描绘二维图像的方法。
2、掌握用MATLAB对序列进行基本的运算和时域变换的方法。
二、实验器材MATLAB软件。
三、实验原理1、加法:x1(n)+x2(n)序列的加法运算为对应位置处量值的相加,在MATLAB中可用运算符“+”实现,但要求参与运算的序列的长度必须相等。
如果长度不等或者长度相等但采样位置不同,则不能直接应用该运算符,此时需要先给定参数使序列具有相同的位置向量和长度。
2、乘法:x1(n)·x2(n)序列的乘法运算为对应位置处量值的相乘,在MATLAB中由数组运算符“.*”实现,也受到“+”运算符同样的限制。
3、反折:x(n)→x(-n)序列的反折指序列的每个量值都对n=0做一个对称操作,从而得到一个新序列。
在MATLAB中可由fliplr(x)函数实现,此时序列位置的反折则由-fliplr(n)实现。
4、平移:x(n)→x(n-m)平移操作是将序列的每个量值都移动m个位置,在得到的新序列中,量值和原序列相同,只是位置向量n发生变化,当m>0时,表示序列向右平移,此时新序列的位置向量为n+m;当m<0时,表示序列向左平移,此时新序列的位置向量为n-m。
四、实验内容对x(n)={2,1,2,1,1}和x(n)={1,1,1,1,1}两个序列进行加法、乘法、卷积的运算。
1. 序列1()[2,1,2,1,1],22x n n =-≤≤ 与序列2()[1,1,1,1,1],04x n n =≤≤ 相加,并绘制出图形。
程序代码:主程序:clearclcx1=[2 1 2 1 1];n1=[-2:2];x2=[1 1 1 1 1];n2=[0:4];[y,n] = sigadd(x1,n1,x2,n2);stem(n,y);axis([-3,5,-1,4]);xlabel('时间序列n');ylabel('y(n)');title('y=x1(n)+x2(n)');调用程序:function [y,n] = sigadd(x1,n1,x2,n2)n = min(min(n1),min(n2)):max(max(n1),max(n2));y1 = zeros(1,length(n)); y2 = y1;y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;y = y1+y2;仿真结果:图2.1 序列12x x + 仿真图2. 序列1()[2,1,2,1,1],22x n n =-≤≤ 与序列2()[1,1,1,1,1],04x n n =≤≤ 相乘法,并绘制出图形。
微机实验二算术逻辑运算及移位操作
实验二算术逻辑运算及移位操作一、实验目的1.熟悉算术逻辑运算指令和移位指令的功能。
2.了解标志寄存器各标志位的意义和指令执行对它的影响。
二、实验要求1.复习8086指令系统中的算术逻辑类指令和移位指令。
2.按照题目要求在实验前编写好实验中的程序段。
三、实验内容与步骤1. 实验程序段及结果表格如下2.用BX寄存器作为地址指针,从BX所指的内存单元(0010H)开始连续存入三个无符号数(10H、04H、30H),接着计算内存单元中的这三个数之和,和放在0013H单元中,再求出这三个数之积,积放0014单元中。
写出完成此功能的程序段并上机验证结果。
MOV BX,0010HMOV [BX],10HMOV [0001H][BX],04HMOV [0002H][BX],30HMOV AL,[BX]ADD AL,[0001H][BX]ADD AL,[0002H][BX]MOV [0003H][BX],ALMOV AL,BLMUL [0001H][BX]MUL [0002H][BX]MOV [0004H][BX],AX3.写出完成下述功能的程序段。
上机验证你写出的程序段,程序运行的最后结果(AX)=0372(1) 传送15H到AL寄存器; MOV AL,15H(2) 再将AL的内容乘以2;(3) 接着传送15H到BL寄存器; MOV BL,15H(4) 最后把AL的内容乘以BL的内容。
MUL BL(AX)=03724.写出完成下述功能的程序段。
上机验证你写出的程序段,程序运行后的商=73(1) 传送数据2058H到DS:1000H单元中,数据12H到DS:1002H单元中;(2) 把DS:1000H单元中的数据传送到AX寄存器;(3) 把AX寄存器的内容算术右移二位;(4) 再把AX寄存器的内容除以DS:1002H字节单元中的数;(5) 最后把商存入字节单元DS:1003H中。
MOV [1000H],2058HMOV [1002H],12HMOV AX,[1000H]MOV CL,2SAR AX,CLDIV [1002H]MOV [1003H],ALRET四、实验心得与体会在上节课实验的基础上,这次的实验比较顺利,感觉到了微机实验的魅力,对实验产生了浓厚的兴趣。
2信号的基本运算单元
实1验二信号的基本运算单元一实验目的:1、了解以运算放大器为核心元件组成的基本运算单元的构成2、熟悉各基本运算单元功能3、掌握基本运算单元特性的测试方法二实验原理:实验中采用的基本运算单元均由以运算放大器作为核心元件组成。
1、运算放大器运算放大器实际就是高增益直流放大器。
在实际电路中,通常结合反馈网络共同组成某种功能模块。
比如配以反馈网络后可实现对信号的求和、积分、微分、比例放大等多种数学运算,由此构建信号各基本运算单元。
运算放大器具有两个输入端和一个输出端:从“-”端输入时,输出信号与输入信号反相,故“-”端称为反相输入端;从“+’端输入时,输出信号与输入信号同相,故称“+”端为同相输入端,实际的运算放大器另有许多辅助引出线,用它们连接电源、偏置、调零、相位补偿等。
运算放大器的主要特性是:开环增益高,输入阻抗高,输出阻抗小。
2、基本运算单元这里仅介绍在系统模拟中所必需的三种基本运算器,即加法器、标量乘法器和积分器。
以下给出个运算单元的原理图以及相关的参数。
请同学按照电路原理图推算出各运算单元的功能特点,并用进行试验后所得的数据加以验证和对比。
(1)加法器加法器原理图如图3-1所示。
在本实验箱中,R F=R。
图3-1加法器(2)标量乘法器标量乘法器分为两种,即反相标量乘法器和同相标量乘法器。
其原理图如图3-2和图3-3所示。
在本实验箱中,R F=20KΩ,R f=10KΩ。
图3-2 反相标量乘法器图3-3 同相标量乘法器(3)积分器基本积分器具有反相结构,原理如图3-4所示。
实验箱中R f=5.1KΩ,C F=4700pF。
图3-4 积分器三预习练习:1、预习运算放大器的原理。
2、预习基本运算单元的电路组成和原理。
四实验内容及步骤:1、加法器u1接信号源,调整输出f=100Hz、峰值为1V的正弦波;u2接单片机信号发生器,选择02信号为方波;u3接地。
加法器输出为u0,用示波器观察u0、u1、u2、分析三者之间的关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.1:多字节加法运算
2.1.1:实验目的
了解运算类指令以及运算类程序的设计方法
2.1.2:试验设备
PC机一台,TD-NMC+教学实验系统、或“TD-PIT++教学实验系统+TD-51系统平台”、或“TD-PITE教学实验系统+TD-51系统平台”。
2.1.3:实验内容
多字节十进制加法程序,被加数存放于20H起始的RAM空间,加数存放于2AH起始的RAM空间,将两数相加,结果存放于20H 起始的RAM空间;
2.1.4:实验步骤
1、编写实验程序,编译、链接无误后,进入调试状态;
2、为被加数赋值,即4574和6728,低位在低字节,修改字节数R7为2;
3、在语句行SJMP MAIN设置断点,然后运行试验程序;
4、当程序停止运行时,查看20H单元起始的内容。
5、修改被加数,加数及字节数R7的值,重新运算,验证程序的功能。
ORG 0000H
LJMP MAIN
ORG 0100H MAIN: M OV R0, #20H
MOV R1, #2AH
Mov r7,#02h
CLR C
LP1: MOV A, @R0
ADDC A, @R1
DA A
MOV @R0, A
INC R0
INC R1
DJNZ R7, LP1
CLR A
MOV ACC.0, C
MOV @R0, A
NOP
SJMP $
END
2.2双字节无符号数乘法
2.1.1:实验目的
了解运算类指令以及运算类程序的设计方法
2.1.2:试验设备
PC机一台,TD-NMC+教学实验系统、或“TD-PIT++教学实验系统+TD-51系统平台”、或“TD-PITE教学实验系统+TD-51系统平台”。
2.1.3:实验内容
双字节无符号数乘法程序,被乘数在R2R3中,乘数在R4R5中,将相乘的结果保存在20H~23H中。
2.1.4:实验步骤
1、编写实验程序,编译、链接无误后,进入调试状态;
2、改变被乘数R2R3及乘数R4R5的值,如0X03,0X50,0X04和0X60;
3、在语句行SJMP MAIN设置断点,然后运行试验程序;
4、当程序停止运行时,查看20H,21H,22H,23H的内容。
5、重新改变被乘数R2R3及乘数R4R5的值,运行程序,验证程序的正确性。
ORG 0000H
LJMP MAIN
ORG 0100H MAIN: MOV R0, #23H
MOV A, R0
PUSH ACC
CLR A
MOV R7, #4
LP1: MOV @R0, A
DEC R0
DJNZ R7, LP1
POP ACC
MOV R0, A
MOV A, R3
MOV B, R5
MUL AB
MOV @R0, A
MOV A, B
DEC R0
MOV @R0, A
MOV A, R2
MOV B, R5
MUL AB
ADD A, @R0
MOV @R0, A
DEC R0
MOV A, B ADDC A, #00H
MOV @R0, A
INC R0
MOV A, R3
MOV B, R4
MUL AB
ADD A, @R0
MOV @R0, A
MOV A, B
DEC R0
ADDC A, @R0
MOV @R0, A
DEC R0
CLR A
ADDC A, #00H
MOV A, @R0
MOV A, R2
MOV B, R4
MUL AB
INC R0
ADD A, @R0
MOV @R0, A
MOV A, B
DEC R0
ADDC A, @R0
MOV @R0, A
NOP
LJMP MAIN
END
作业:试编写单字节无符号数乘法,被乘数在R2单元,乘数在R3单元,乘积写入30H中。