实验八认识模块(2)
一、实验目的
1.通过以下实验掌握模块的基本概念,了解类模块与标准模块的
设计过程。
2.了解VBE窗口的使用
二、实验内容
1.如窗体所示,输入半径,计算园面积,要求取其整数。
2.P198例8-4,使用DoCmd对象调用相应对象
3.在VBE环境中,打开立即窗口。在立即窗口试验P201—203中的函数。通过试验理解和掌握函数的应用
4.编写程序,输入总头数和总脚数,计算和输出鸡和兔子的个数
5.任意输入两个数,输出最大数
6.设计一窗体,输入0—6中任一数字,输出对的星期。如1对应星期一……(用if 和select case各编写程序)
7.完善鸡兔同笼问题
8. 求1—100中所有能被3整除的数的和
9.求1+2+22+23+…+263
10.任意输入10个数,输出大于平均数的值(提示:需用数组)11.P219 例8-18
实验1 模拟信号源实验 一、实验目的 1.了解本模块中函数信号产生芯片的技术参数; 2.了解本模块在后续实验系统中的作用; 3.熟悉本模块产生的几种模拟信号的波形和参数调节方法。 二、实验仪器 1.时钟与基带数据发生模块,位号:G 2.频率计1 台 3.20M 双踪示波器1 台 4.小电话单机1 部 三、实验原理 本模块主要功能是产生频率、幅度连续可调的正弦波、三角波、方波等函数信号(非同步函数信号),另外还提供与系统主时钟同源的2KHZ 正弦波信号(同步正弦波信号)和模拟电话接口。在实验系统中,可利用它定性地观察通信话路的频率特性,同时用做PAM、PCM、ADPCM、CVSD(Δ M)等实验的音频信号源。本模块位于底板的左边。 1.非同步函数信号 它由集成函数发生器XR2206 和一些外围电路组成,XR2206 芯片的技术资料可到网上搜索得到。函数信号类型由三档开关K01 选择,类型分别为三角波、正弦波、方波等;峰峰值幅度范围0~10V,可由W03调节;频率范围约500HZ~5KHZ,可由W02 调节;直流电平可由W01 调节(一般左旋到底)。非同步函数信号源结构示意图,见图2-1。 2.同步正弦波信号 它由2KHz 方波信号源、低通滤波器和输出放大电路三部分组成。2KHz 方波信号由“时钟与基带数据发生模块”分频产生。U03 及周边的阻容网络组成一个截止频率为2KHZ 的低通滤波器,用以滤除各次谐波,只输出一个2KHz 正弦波,在P04 可测试其波形。用其作为PAM、PCM、ADPCM、CVSD(Δ M)等模块的音频信号源,其编码数据可在普通模拟示波器上形成稳定的波形,便于实验者观测。W04 用来改变输出同步正弦波的幅度。同步信号源结构示意图,见图2-2。
实验八公式、序列及函数的使用 一、实验目的 1.熟练掌握序列填充及公式复制的方法; 2.掌握常用函数的功能及使用方法,并能用它们来解决一些实际问题。 二、实验内容与操作步骤 在Excel环境下完成以下各操作: (一)序列填充及公式的使用 1.在Excel中创建一个空白工作簿 2.利用Excel提供的数据填充功能,在Sheet1工作表中输入以下数据: ⑴在区域A1:A9中从上到下填入:2,4,6,8,10,12,14,16,18 ⑵在区域B1:B9中从上到下填入:1,2,4,8,16,32,64,128,256 ⑶在区域C1:C12中从上到下填入:JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC ⑷在区域D1:D7中从上到下填入:星期日,星期一,星期二,星期三,星期四,星期五,星期六 3.在Sheet2工作表中,利用公式计算二次函数ax2+bx+c的值,其中a=2,b=3,c=5,x从-3到4变化,每隔0.5取一个函数值。操作方法写出如下: 4.把工作簿以E81.XLS为文件名存入D:\EX8中。 (二)函数的使用 在Excel环境下打开D:\EX8\E82.XLS文件,依次完成以下各操作后按E83.XLS为文件名存入D:\EX8中。 1、统计函数的使用 ⑴单击“统计函数”工作表;
⑵在区域F3:G8中用“统计函数”计算出各分店的统计值。 操作方法是:先在F3单元及G3单元输入的计算公式,然后选定区域F3:G3后双击其填充柄。其中F3单元的公式为,G3单元的公式为。 ⑶在区域B9:E12用“统计函数”计算出各季度的统计值。 2、条件函数的使用 ⑴单击“条件函数”工作表。 ⑵计算出各学生的平均分; ⑶给定各学生的成绩等级,规则如下:平均分≥90为“A”,80≤平均分<90为“B,70≤平均分<80为“C”,60≤平均分<70为“D”,平均分<60为“E”。以此规则在区域F3:F62用IF函数确定各学生的等级。 ⑷用FREQUENCY函数在区域I2:I5中统计出平均分0~59,60~79,80~99,100各分数段的学生人数。 3、文本函数的使用 ⑴单击“文本函数”工作表; ⑵在区域A2:F32给出的数据清单中,编号的前3位为系别信息,101为数学系,102为物理系,103为化学系,据此在区域B3:B32用函数求出每位教师的系别。其中B3单元使用的公式为。 ⑶已知身份证号的第7至第10位数为出生年份,据此在区域F3:F32用函数求出每位教师的出生年份。其中F3单元使用的公式为。 4、日期函数的使用 ⑴单击“日期函数”工作表; ⑵在区域A2:F32给出的数据清单中,在区域E3:E32用日期函数求出每位职工的工龄。其中E3单元使用的公式为。 ⑶在区域F3:F32用日期函数求出每位职工的工作天数(即自参加工作以来已经过的总天数。其中F3单元使用的公式为。 5、财务函数的使用 使用 PMT 函数完成以下有关的操作: ⑴单击“财务函数”工作表; ⑵某企业向银行贷款5 万元,准备4年还清,假定当前年利率为 4 % ,在 B5 单元 计算每个月应向银行偿还贷款的数额,根据条件在 B2 : B4 补充所需内容。其中单元格B5 使用的公式为。 ⑶假定当前年利率为 5 %,为使 5 年后得到 10 万元的存款,在 D5 单元计算现在开
光学模块复习题 10、以下不属于分光计调节完毕的标准的是:() A、望远镜能接收平行光; B、平行光管能发出平行光;、 C、望远镜的主光轴和平行光管的主光轴达到同轴等高并与载物台的法线方向垂直; D、载物台达到水平。 20、为使望远镜能接收平行光,需要用()调节望远镜。 A、自准法; B、各半调节法; C、调节望远镜水平度调节螺钉; D、调节目镜调节手柄。 30、为能清晰观察到两横一竖的背景叉丝,应调节() A、目镜调节手柄; B、前后移动叉丝套筒; C、望远镜水平度调节螺钉; D、双面反射镜的位置。 40、为能清晰观察到“十”字光斑的像,需调节() A、目镜调节手柄; B、前后移动叉丝套筒; C、望远镜水平度调节螺钉; D、双面反射镜的位置。 50、为能清晰观察到狭缝像,需调节() A、目镜调节手柄; B、前后移动叉丝套筒; C、平行光管水平度调节螺钉; D、前后移动狭缝。 60、为使得望远镜主轴垂直于分光计主轴,需采用()消除高差。 A、自准法; B、各半调节法; C、调节望远镜水平度调节螺钉; D、调节载物台水平度调节螺钉。 70、分光计读书盘上设两个副标尺的作用为:() A、一次可以读两个读书; B、相互校验估读数; C、厂家设计,没什么作用; D、方便读数。 80、在调节分光计望远镜光轴与载物台转轴垂直时,若从望远镜视场中看到自准直反射镜正 反二面反射回来的自准直像如下图()所示,则说明望远镜光轴与载物台转轴垂直(多选)。
10、分光计调节完毕的标准是那些? 20、为使得望远镜主轴垂直于分光计主轴,主要运用什么方法来消除高差?判断望远镜主轴与分光计主轴垂直的标志是什么? 30、例举两种测三棱镜测折射率的方法,并写出每种方法需要测量的物理量。
实验三常用模块电路的设计 一、实验目的: 1、掌握QuartusII宏功能模块的设计方法。 2、掌握VHDL设计ROM和RAM的方法。 3、掌握数控分频器的设计方法。 4、掌握4×4键盘扫描模块设计方法。 5、掌握PS2接口电路设计方法。 6、了解640×480VGA显示控制电路的原理和设计方法。 二、实验的硬件要求: 1、EDA/SOPC实验箱。 2、计算机。 三、实验原理 见各实验内容。 四、实验内容: 1、数控分频器的设计。 要求:将10KHz时钟信号分频,分别输出10Hz、1kHz、1250Hz时钟信号。 分频的原理与计数器差不多,需要定义一个信号量来控制计数范围为分频数,另外控制在一个计数周期内输出一段低电平“0”和另一段高电平“1”。 分频器部分源码如图3.1a、图3.1b所示:
图3.1a 数控分频器VHDL代码 如果用于计数的信号量定义为“std_logic_vector”类型的。如“Count10”,也可以将其最高位作为分频后的时钟输出:即使用语句“Clk_1kHz<=Count10(3);”,如图2.11b所示,此时输出时钟信号占空比是多少?是否可以改变?。 图3.1b 十分频的VHDL代码 如果分频数为2n,“n为整数”,如8分频,Count8定义为“std_logic_vector”类型,使用下图的语句序列实现,更加简洁: 图3.1c 分频数为2n时,代码可以更为简洁 同理,“Count8(1)”是几分频输出?“Count8(0)”是几分频输出? 2、4×4键盘扫描模块设计 ①图3.2是4×4键盘阵列电路原理图。行字符ROW[3..0]表示一行的状态,COL[3..0] 表
实验8 函数(一)实验目的: 1、理解自定义函数过程的定义与调用方法; 2、掌握自定义函数的定义与调用方法; 3、理解函数中的参数的作用; 实验内容: 1、编写一函数Fabonacci(n),其中参数n代表第n 次的迭代。While循环 def fib(n): if n==1 or n==2: return 1 a=1 b=1 i=2 while True: c=a+b a=b b=c i+=1 #第i次迭代,也就就是第i个数 if i==n: return c break def main(): n=input("Enter a number of generation:") print fib(n) main() 或者用for循环 def fib(n): a=1 b=1 c=0 if n==1 or n==2: return 1 else: for i in range(3,n+1): c=a+b a=b b=c return c def main(): n=input("enter n:") print fib(n) main() 2、编写一函数Prime(n),对于已知正整数n,判断该数就是否为素数,如果就是素数,返回True,否则返回 False。 def prime(n): if n<2: return False a=0 for i in range(1,n+1): if n%i==0: a+=1 if a>2: return False else: return True def main(): n=input("Enter a number:") print prime(n) main() Or: def prime(n): if n<2: return False if n==2: return True for i in range(2,n): if n%i==0: return False return True def main(): n=input("Enter a number:") print prime(n) main()
实验1 cin、cout及面向过程的编程实验2 引用与函数重载 实验3 类与对象 实验4 静态成员与对象参数 实验5 拷贝构造函数与内存分配 实验6 对象数组与子对象 实验7 含有数组成员的对象与深拷贝实验8 运算符重载(1) 实验9 运算符重载(2) 实验10 继承与派生 实验11 虚函数与类族 实验12 STL
实验1 cin 、cout 及面向过程的编程 1A :显示某个日期是星期几 (1) 输入、输出要求: 输入:3个正整数,依次为年、月、日,比如2049 10 1 输出:按类似“[2049-10-5] is Friday.”的形式输出 示例: (2) 处理方法 历史上的某一天是星期几?未来的某一天是星期几?关于这个问题,有很多计算公式,其中最著名的是蔡勒(Zeller)公式。即 7)%110)1(26244(-+? ?? ???++-??????+??????+=d m c c y y w 公式中的符号含义: w ——星期几 c ——年份的前两位 y ——年份的后两位 m ——月,3≤m ≤14,某年的1、2月视为上一年的13、14月,比如2003年1月1日要看作2002年的13月1日 d ——日 ??——代表取整,即只要整数部分 %——除法求余数 例如:对于2049年10月1日,计算过程如下: 5 7%547)%284051249(7)%1110)110(2620242044949(==+-++=-+??? ???++?-??????+??????+=w 即2049年10月1日是星期5。如果计算结果是负数,则加7。 1B :格式化输出实数 从键盘读取本金和年利率,求20年中每年末本息合计有多少钱。 输入:用空格分隔的两个数,都可以带小数点 输出:以“钱数(?年后)”的方式显示,以“2格、右对齐”的方式显示年,以“共10格、小数点后取2位、右对齐”的方式显示本息合计的钱数,见示例 示例:本金973.45元、年利率2%的显示结果如下
实验八函数 【目的与要求】 1.掌握C语言函数的定义方法、函数的声明及函数的调用方法。 2.了解主调函数和被调函数之间的参数传递方式。 【上机内容】 【一般示例】 【例1】将打印18个"*"组成星形线定义为一个返回值和形参列表都为空的函数,通过主函数调用它。 #include
#include
专题实验模块:没有牙齿的大老虎 活动目标 1、遇事要多动脑筋,养成勤于思考的好习惯。 2、发展思维,提高语言表达能力和表现力。 3、理解故事内容,把握不同角色的性格特点,能用连贯的语言清楚表达自己的想法。 活动准备 1、课件-声音:老虎叫声 2、图片:老虎、狮子、狐狸 活动过程 一、导入 1、播放老虎的叫声,用声音引出“林中之王”,引导幼儿形容描绘老虎给人的感觉。 2、出示瘪嘴老虎 教师:有一只老虎以前可厉害了,可是它现在一点都不厉害了。 请幼儿观察:它怎么了?老师用肢体语言表现瘪嘴的样子。 丰富词汇:瘪嘴——因没牙而口形不饱满。 教师:那这只凶猛的大老虎为什么会变成一只瘪嘴的老虎呢? 二、展开 1、教师有表情地讲述故事第一部分,初步认识大老虎厉害的牙齿。(1)大老虎的牙齿厉害吗?有多厉害?小兔子和小猴子是怎么说
的? (2)出示小狐狸的手偶,教师模仿小狐狸:你们怕大老虎的牙齿,我就不信,我还要把它的牙齿全部拔掉呢! 问题:那小狐狸到底想到了什么办法呢? 老虎又是怎么做的呢? 谁又去劝的老虎呢? 狐狸又是怎么骗的呢? 老师把这四个问题抛给小朋友,大家可以利用手中各种途径去寻找答案。 2、通过提问,进一步理解故事内容。 (1)狐狸想到了什么办法?它是怎么说的? (2)老虎吃过糖吗?它是怎样做的? (3)这时候,谁来劝老虎了?出示狮子的手偶,它是怎样说的?(4)大老虎听了吗?为什么没听狮子的话?狐狸这次又是怎么骗的? (5)表演故事的精彩片段: 一名幼儿扮演老虎,一半幼儿扮演狐狸,一半幼儿扮演狮子,全班进行故事表演。 教师:大老虎的牙是不是真的不怕糖呢?请幼儿继续听故事录音。 3、播放故事第三部分 通过讨论,把握故事中不同角色的性格特点,并引导幼儿能用连贯的语言清楚表达自己的想法。
实验八 函 数(二) 参考答案 /*1.(sy8-1.c ) 请编写函数 fun ,其功能是:计算并输出给定数组(长度为 9)中每相邻两个元素之平均值的平方根之和。 例如,给定数组中的 9 个元素依次为 12.0、34.0、4.0、23.0、34.0、45.0、18.0、3.0、11.0,输出应为:s=35.951014。 【解题思路】 在给出的参考程序中,由于函数要求的返回值为双精度型,所以先将变量 avg 、sum 定义为双精度型,初值为 0.0,然后通过 for 循环分别求出相邻两个元素的平均值放入变量 avg 中,再使用求平方根函数sqrt()对各平均值开方求和,最终结果输出到变量 sum 中并返回。 【参考答案】*/ double fun(double x[9]) { int i ; double avg=0.0,sum=0.0; //将变量avg 、sum 定义为双精度型,并给其赋初值为0.0 for (i=0;i< 8;i++) { avg=(x[i]+x[i+1])/2; //通过for 循环分别求出相邻两个元素的平均值放入变量avg 中 sum+=sqrt(avg); //使用求平方根函数sqrt()对各平均值开方求和,最终结果输出到变量 sum } return sum; /*返回计算结果*/ } 2.(sy8-2.c ) 编写函数fun ,实现矩阵(3行3列)的转置(即行列互换)。例如,输入下 面的矩阵:????? ??900800700600500400300200100,程序输出: ???? ? ??900600300800500200700400100。 【解题思路】 方阵转置,只需要将左下半三角元素和右上半三角元素对换即可。 【参考答案】 int fun(int array[3][3]) { int i,j,t ; for(i = 0 ; i < 3 ; i++) for(j = 0 ; j < i ; j++) {t=array[i][j]; array[i][j]=arrar[j][i]; array[j][i]=t ; } } 3.(sy8-3.c ) 请编写函数 fun ,函数的功能是:统计一行字符串中单词的个数作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。 【解题思路】I am a student! 在给出的参考程序中,若判断出当前字符为非空格,而它前面的字符是空格,则单词数累加 1;若当前字符为非空格,而其前面的字符也为非空格,则单词数不累加 1,程序细节可以参考程序的注释部分。 【参考答案1】 int fun( char s[])
实验五指令部件模块实验 一、实验目的 ⒈掌握指令部件IU(PC,IR,ID)的组成方式。 ⒉熟悉指令操作码产生微程序入口地址的工作过程。 二、实验要求 按照实验步骤完成实验项目,完成将数据打入IR寄存器的数据打入PC指针式寄存器,PC指针自动加1。 三、指令部件模块的构成 ⑴如图4-1所示,2片74LS163连接成8位PC程序计数器,其输出端经三态门(245)与8位输入端共用8芯扁平线与BUS总线接口相连接。 图4-1程序计数器PC(IP)单元 2片74LS163组成了PC程序计数器,它有LDPC、LOAD信号,脉冲T3来控制PC 指针的装载和加1操作。在“L”状态下,由8位置数开关装入起始地址,当LOAD=1、LDPC=1时,按【单步】命令键,在T3上升沿把数据开关的内容装入PC。当CBA=001、LOAD=0、LDPC=1、LDAR=1时,按【单步】命令键,在单周期四节拍时序的T2时刻打开PC-B三态门,在T3时刻PC值通过总线打入地址寄存器、同时PC值加1。 ⑵如图4-2所示,1片74LS273作为指令寄存器单元,其8位输入端与BUS总线之间实验装置已作连接,其输出端用一8芯扁平线与SE5~SE0接口连接。
图4-2指令寄存器单元 指令数据寄存器IR(74LS273)的LDIR为电平正跳变时,把来自数据总线的数据打入寄存器IR,IR的输出就作为本系统内的8位指令I7~I0。在本系统内由这8位指令(可最多译码256条不同的指令),通过编码可对应这些指令在微程序存储器中的入口地址,并且输出相应的微控制指令。 ⑶1片74LS74用来实现多种条件的跳转指令(JZ、JC等跳转指令)。 图4-3A CY、零标志锁存原理图 74LS74芯片是双D触发器,其中一组是锁存进位位CY标志,另一组是锁存零标志(Z)可通过AR来控制JC和JZ建立,以实现条件跳转的指令。 ⑷1片74LS74用来实现开中断、关中断、中断服务。 图4-3B中断控制电路图 74LS74芯片是双D触发器,其中一组锁存开中断标志,另一组锁存中断服务标志,通过LOAD来控制EA、ED的建立,以实现中断响应与中断服务。 四、实验连接
实验十函数应用 一?实验目的 1.掌握函数的定义和调用; 2.理解形参和实参的使用和传值调用; 3.理解函数声明的使用; 4.掌握函数的嵌套调用; 5.了解函数的嵌套与递归调用,掌握递归函数的编写规律; 6.了解数组元素、数组名作函数参数。 二?实验学时数 2学时 三?实验步骤 (一)阅读程序 1.#include
x=x-y; printf("%d,%d\n",x,y); 3.#include
AT89S51单片机实验板各个功能模块连线使用说明 上图为整个试验板的供电接口,可以外接5V直流电源或者通过电脑USB接口供电; 上图为74HC164串行显示电路,串行显示电路只要用到单片机的TXD,RXD接口,可以节省大量I/O;硬件连接为:164的CLK连接到单片机的TXD口,DATA连接到单片机的RXD 口,使用时只要将相应的插针用跳线帽连接上即可。 上图为单片机串口预留插针,位于实验板左下角,由于实验板上的串行显示控制电路只有一位数码管在实际应用中时不够的,一般会有一个独立的8为串口显示板,这样将显示板的VCC、GND、TXD、RXD对应插到预留插针上就可以使用了。 上图为动态数码管显示电路,在使用该部分电路时将左边的拨码开关全部拨到ON位置(右
边拨码开关最好全部拨下来),电路硬件连接为:A……H笔端依次接到单片机的P00……P07口,S1……S8 八个数码管的位选依次接到P20……P27口,最右边数码管为第一位。注意在做动态显示等实验时要将液晶电路部分的PSB跳线帽去掉,因为PSB与P24口相连。 上图右部为8*8点阵电路,使用该模块时将点阵正上方的八位拨码开关全部拨到ON位置(右边拨码开关全部拨下来),电路硬件连接为:点阵的行控制依次连接到P20……P27口,列控制依次连接到P00……P07口。 上图为8路LED电路,电路的硬件连接为:P20……P27分别对应控制LED8……LED1,低电平时LED灯亮,使用时只要将相应的插针用跳线帽连接上即可。注意在做流水灯等实验时要将液晶电路部分的PSB跳线帽去掉,因为PSB与P24口相连。 上图为DS1302时钟电路,使用该部分电路时显示方式只能在LCD和动态数码管两种方式中任选其一,两者不能同时使用。电路的硬件连接为:DS1302的RST I/O SCLK分别与
淮海工学院计算机科学系实验报告书 课程名:《C语言程序设计A 》 题目:实验8 函数 ——递归函数 班级:软嵌151 学号:2015123349 姓名:陈正宁
1、实验内容或题目 (1)用递归编写n!的函数,并在main主函数中调用此函数。 (2)有n个大小不同的盘片从大到小放在A柱上,另有B和C两个空柱,要求将这n个盘片从A柱搬到C柱上,在搬动过程中,每次只能搬一个盘片,而且小的不能放在大的之下。编写hanio函数实现搬迁过程。 (3)编写一个程序,求解皇后问题:在n×n的方格棋盘上,放置n个皇后,要求每个皇后不同行、不同列、不同左右对角线。 2、实验目的与要求 (1)要求熟练掌握函数的定义和调用,熟悉函数返回值的使用。 (2)熟悉函数调用的方式和过程。 (3)重点掌握递归函数的使用。 (4)要求实验的第2题采用递归函数编写,盘片的数目在main主函数中输入。提示:函数的参数定义如hanio(n,A,C,B),表示将n个盘片从A柱通过C柱搬到B柱。 (5)要求实验的第3题采用递归函数编写皇后的个数n由用户输入,其值不能超过20;采用整数数组q[N]求解结果,因为每列只能放一个皇后,q[i]的值表示第i个皇后所在的行号,即该皇后放在(q[i],i)的位置上。求解皇后问题的递归模型如下:place(i,n):若i=n,则n个皇后放置完毕,输出解(输出q数组元素) place(k,n):在第k列找一个合适位置i,放置一个皇后(即q[k]=i);place(k+1,n);其中,place(k,n)表示前面的第1,…,k-1个皇后放置好后,现在用于放置k,…,n的皇后。 3、实验步骤与源程序 ⑴实验步骤 ⑵源代码 (1)、 #include
实验5 函数 姓名:学号:实验日期: 1.实验目的和要求:参见实验指导书实验八 2.实验内容和步骤: 实验内容:实验指导书中的实验八 实验步骤: 2.1.实验内容的第1题,通过本题,了解到要在单步调试时能够观察自定义的函数内部变量变化情况,单步调试如何操作: 1.在“菜单栏”中单击“组建”,然后在弹出的下划栏中选择“开始调试”,然后选择“Step Into”;或者按“F11”。 2.然后开始单步调试,按F10 提问 修改前运行结果画面: (1),请在下面粘贴运行结果画面: #include
实参a是否为同一变量?不是 提问(2),请请在下面粘贴运行结果画面:#include
int a=3,b=5; 通过本题,可以得出什么结论?若没给未知量赋予初值,那未知量将被随意赋值,赋值一主函数的赋值为先。 2.2 实验内容部分第2题源程序代码,请贴图: 程序运行结果画面,请贴图: 2.3 实验内容部分第3题源程序代码,请贴图:
实验一 CPTH模型机感性认识及模块实验感性认识: 一计算机组成原理实验课概述 二 CPTH硬件系统基本组成 三 CPTH软件系统基本组成 四 CPTH指令系统 五 CPTH实验系统特点 模块实验: 1. 寄存器实验 2. 运算器实验 3. 存储器实验
一计算机组成原理实验课概述 计算机组成原理实验课程,是专门为计算机学院相关专业高年级开设的一门专业骨干课程,它主要研究计算机的基本组成与运行原理,它深入到CPU的内部,查看,测试各主要信号与部件的工作状态,即将CPU解剖开,观察一条指令在执行过程中数据的走向、各控制信号的状态及相关寄存器的值。而CPTH模型机是专为计算机组成原理实验课设计的,它是一台硬件,软件相对完整,独立的小型计算机系统,即是一台简单的计算机,它包括了一台计算机常有部分CPU,主存,I/O接口等。 二 CPTH硬件系统基本组成 运算器:运算器ALU用一片lattice公司的LC4256V-100在线可编程逻辑芯片实现的,出厂时,已下载了用VHDL语言编写的运算功能(8种)。 寄存器:累加器寄存器A、工作寄存器W:(1片74HC574/每); 左移门L、直通门D、右移门R:(2片74LS245同相器/每); 寄存器组:R0-R3:(2片74HC574/每); 地址寄存器MAR、堆栈寄存器ST:(2片74HC574/每); 中断向量寄存器IA、输入端口寄存器IN、输出端口寄存器OUT等。控制器:程序计数器PC、微程序计数器uPC:(2片74LS161四位加1计数器/每); 微程序存储器uM:(3片6116),事先存入24位微指令,电路设置为: 只能读,不能写; 指令寄存器IR:(1片74HC574)、中断控制电路、跳转控制电路等;
实验8 参考答案 二、实验内容与操作步骤 (二) 函数的使用 1、统计函数的使用 其中F3单元的公式为=SUM(B3:E3) ,G3单元的公式为=A VERAGE(B3:E3)。 2、条件函数的使用 ⑶其中F3单元使用的公式为: =IF(E3>=90,”A”,IF(E3>=80,”B”,IF(E3>=70,”C”,IF(E3>=60,”D”,”E”))))。 然后双击F3单元的填充柄。 ⑷具体的操作步骤及计算公式如下: (1)在区域H2:H4输入统计间距数据59.9,79.9,99.9; (2)选定作为统计结果数据的输出区域:I2:I5; (3)输入频度分析统计函数的公式:=FREQUENCY(E3:E62,H2:H4); (4)按[Ctrl]+[Shift]+[Enter] 3、文本函数的使用 ⑵其中B3单元使用的公式为 =IF(LEFT(A3,3)=”101”,”数学系”,IF(LEFT(A3,3)=”102”,”物理系”,”化学系”))。 ⑶其中F3单元使用的公式为 =MID(E3,7,4) 。 4、日期函数的使用 ⑵其中E3单元使用的公式为 =YEAR(TODAY())-YEAR(D3)+1 。 ⑶其中F3单元使用的公式为 =TODAY()-D3 。 5、财务函数的使用 ⑵其中B5单元使用的公式为 =PMT(B2/12,B3*12,B4)。 ⑶其中E5单元使用的公式为 =PMT(E2/12,E3*12,,E4)。 6、排位函数的使用 ⑵其中G2单元使用的公式为 =F2-$B$10 。 ⑶其中H2单元使用的公式为 =RANK(F2,$F$2:$F$8,1) 或 =RANK(G2,$G$2:$G$8,1) 。 三、思考与练习 1、具体的操作步骤及计算公式如下: (1) 在区域F10:F13输入统计间距数据99,199,299,399; (2) 选定作为统计结果数据的输出区域:G10:G14; (3) 输入频度分析统计函数的公式:=FREQUENCY(C3:C23,F10:F13); (4) 按[Ctrl]+[Shift]+[Enter] 2、操作步骤及计算公式:
实验六模块化设计 实验目的 (1)体验结构化程序设计方法要点,理解模块化设计的思想,划分子模块的原则 (2)掌握is函数的定义和调用 实验内容 任务一改错求PI值error02_02.cpp 打开程序文件error02_02.cpp改正程序中的错误。根据下式求PI值,直到某一项小于10-6 PI/2=1+1!/3 +2!/(3*5)+…… +n!/(3*5*…*(2n-1)) 正确运行结果 PI=3.14159 #include
res = 1; for(i = 1; i <= n; i++) { res = res * i; } return res; /* 调试时设置断点*/ } double multi(int n) { int i; double res; res = 1; for(i = 3; i <= n; i = i+2) { res = res * i; } return res; /* 调试时设置断点*/ }
实验八 函 数(二) 参考答案 1.(sy8-1.c ) 请编写函数 fun ,其功能是:计算并输出给定数组(长度为 9)中每相邻两个元素之平均值的平方根之和。 例如,给定数组中的 9 个元素依次为 1 2.0、34.0、4.0、2 3.0、3 4.0、4 5.0、18.0、3.0、11.0,输出应为:s=35.951014。 【解题思路】 在给出的参考程序中,由于函数要求的返回值为双精度型,所以先将变量 avg 、sum 定义为双精度型,初值为 0.0,然后通过 for 循环分别求出相邻两个元素的平均值放入变量 avg 中,再使用求平方根函数sqrt()对各平均值开方求和,最终结果输出到变量 sum 中并返回。 【参考答案】 double fun(double x[9]) { int i ; double avg=0.0,sum=0.0; //将变量avg 、sum 定义为双精度型,并给其赋初值为0.0 for (i=0;i< 8;i++) { avg=(x[i]+x[i+1])/2; //通过for 循环分别求出相邻两个元素的平均值放入变量avg 中 sum+=sqrt(avg); //使用求平方根函数sqrt()对各平均值开方求和,最终结果输出到变量 sum } return sum; /*返回计算结果*/ } 2.(sy8-2.c ) 编写函数fun ,实现矩阵(3行3列)的转置(即行列互换)。例如,输入下 面的矩阵:????? ??900800700600500400300200100,程序输出: ???? ? ??900600300800500200700400100。 【解题思路】 方阵转置,只需要将左下半三角元素和右上半三角元素对换即可。 【参考答案】 int fun(int array[3][3]) { int i,j,t ; for(i = 0 ; i < 3 ; i++) for(j = 0 ; j < i ; j++) t=array[i][j], array[i][j]=arrar[j][i], array[j][i]=t ; } 3.(sy8-3.c ) 请编写函数 fun ,函数的功能是:统计一行字符串中单词的个数作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。 【解题思路】 在给出的参考程序中,若判断出当前字符为非空格,而它前面的字符是空格,则单词数累加 1;若当前字符为非空格,而其前面的字符也为非空格,则单词数不累加 1,程序细节可以参考程序的注释部分。 【参考答案】 int fun( char s[]) { int i,word=0,num=0;/*word 标志是否是单词,num 用来记录单词数*/ for(i=0;s[i]!=?\0?;i++)
一、选择题 1.甲、乙两车分别从A 地出发匀速行驶到B 地,在整个行驶过程中,甲、乙两车离开A 城的距离(km)y 与甲车行驶的时间(h)t 之间的关系如图所示,则下列结论中正确的个数为( ) ①,A B 两地相距480km ; ②乙车比甲车晚出发1小时,却比甲车早到1小时; ③乙车出发后4小时时追上甲车; ④甲,乙两车相距50km 时, 3.5t =或4.5. A .1 B .2 C .3 D .4 2.若正比例函数y =(m ﹣2)x 的图象经过点A(x 1,y 1)和点B(x 2,y 2),当x 1<x 2时,y 1>y 2,则m 的取值范围是( ) A .m >0 B .m <0 C .m >2 D .m <2 3.已知函数y kx b =+的图象如图所示,则函数y bx k =-的图象大致是( ) A . B . C . D . 4.如图,一次函数y kx b =+(,k b 为常数,且0k ≠)的图像经过点(3,2)-,则关于x 的不等式2kx b +<的解集为( ) A .3x >- B .3x <- C .2x > D .2x < 5.甲,乙两车分别从A , B 两地同时出发,相向而行.乙车出发2h 后休息,当两车相遇时,两车立即按原速度继续向目的地行驶.设甲车行驶的时间为x (h ), 甲,乙两车到B 地
的距离分别为y 1(km ), y 2(km ), y 1, y 2关于x 的函数图象如图.下列结论:①甲车的速度是 45a km /h ;②乙车休息了0.5h ;③两车相距a km 时,甲车行驶了5 3 h .正确的是( ) A .①② B .①③ C .②③ D .①②③ 6.如图,在平面直角坐标系中,点()2,A m 在第一象限,若点A 关于x 轴的对称点B 在直线1y x =-+上,则m 的值为( ) A .-1 B .1 C .2 D .3 7.科学家就蟋蟀鸣叫的次数与室外温度的数量关系做了如下记录: 蟋蟀每分钟鸣叫的次数 温度/°F 144 76 152 78 160 80 168 82 176 84 ) A .178 B .184 C .192 D .200 8.火车匀速通过隧道时,火车在隧道内的长度y (米)与火车行驶时间x (秒)之间的关
太原师范学院 实验报告 Experimentation Report of Taiyuan teachers College 报告内容 一、实验目的四、实验方法 二、实验原理五、实验记录及数据处理 三、实验仪器及材料六、误差分析及讨论 系部计算机系年级 0903 课程组成原理 姓名XXX 同组者无日期 2011/6/8 项目指令部件模块实验 一、实验目的 1. 掌握指令部件的组成方式; 2. 熟悉指令寄存器的打入操作,PC计数器的设置和加1操作,理解跳转指令的实现过程。 二、实验要求 按照实验步骤完成实验项目,掌握数据打入指令寄存器IR1,PC计数器的重置,PC计数器自动加1和实现跳转指令的方法。 三、实验内容 1. 控制信号说明 信号名称作用有效电平 IR1CK IR1的工作脉冲上升沿有效 IR2CK IR2的工作脉冲上升沿有效 PCCK PC计数器的工作脉冲上升沿有效
EIR1 选通指令寄存器IR1 低电平有效 EIR2 选通指令寄存器IR2低电平有效 IR2-O IR2输出允许低电平有效 PC-O PC计数器内容输出允许低电平有效 ELP 74LS161控制信号高电平可重置PC值,低电平时PC值自动加1 JS0-JS1选择开关见下表 JZ 条件跳转为零跳转 JS1 JS0 功能 0 0 选择JZ,当通用寄存器为0时跳转 0 1 选择JC,当进位寄存器为0时跳转 1 0 选择JN,提供给用户自定义,JN=0跳转 1 1 重新设置当前PC指针,实现JMP指令 2. 实验准备 按启停单元中的运行按钮,使实验平台为运行状态。 把EIR1,EIR2,PC-O,IR2-O,ELP,JS0,JS1接入二进制拨位开关中。把IR1CK和IR2CK 接入脉冲单元PLS1,PCCK接入PLS2中。用长8位扁平电缆把PC-IN与CPT-B板上的二进制开关单元中J03相连(对应二进制开关H0~H7),PC-OUT用短8位扁平电缆连接地址总线AJ1,其他控制信号请按下表所示接线。 信号定义接入开关位号信号定义接入开关位号 IR1CK PLS1孔PC-O H17孔 IR2CK PLS1孔ELP H16孔 PCCK PLS2孔JS0 H15孔 EIR1 H20孔JS1H14孔 EIR2H19孔JZ H13孔 IR2-O H18孔 3. 实验一:PC计数器置数 二进制开关H0~H7作为数据输入,置为05H,对应开关如下表所示。 H7H6H5H4H3H2H1H0数据总线值 A7A6A5A4A3A2A1A08位数据 0 0 0 0 0 1 0 1 05H