实验一 程序流程设计
- 格式:ppt
- 大小:1.17 MB
- 文档页数:29
实验一Visual C++6.0的使用及顺序结构程序设计一、实验目的1、掌握启动和退出VC6 的方法。
2、熟悉 VC6 开发环境。
3、初步掌握简单程序的上机操作基本步骤,熟悉 C 单文件程序的输入、编译、链接和运行过程。
4、初步掌握程序的编辑修改和调试。
5、熟练使用赋值运算、算术运算等表达式。
6、熟练使用标准输入、输出函数及各种数据类型的格式说明符。
二、实验内容1、下面C语言程序,其功能是显示字符串“欢迎同学们来到华北水院计算中心!”。
请同学们按照下面的实验指导学习VisualC++6.0的使用。
1 .启动 VisualC++6 .0 开发环境(1)单击开“始”按钮,选择程“序”——〉“Microsoft Visual Studio6.0菜单项,单击“MicrosoftVisualC++6.0”,屏幕出现标题为“当时的提示”的窗口。
(2)单击“结束”按钮,关闭窗口,进入VC6.0 开发环境的主窗口。
2 .使用 Visual C++6.0 对一个 C 程序进行编辑、编译、连接和运行。
⑴分析Visual C++6.0 中程序的开发过程与其它高级语言的开发过程相仿,都要经过编辑、编译、连接和运行四个步骤。
⑵步骤①编辑图 1-1 New 对话框编辑是将 C 源程序输入计算机的过程。
在Visual C++6.0 主界面下,点击File 菜单,选择Ne w 菜单项,即可出现New 对话框,如图1-1 所示。
在弹出窗口中的Files 标签页下,选择C++ Sour ce File。
在选项卡右面的File 编辑框里输入文件名如“Exa.c”,在 Location 编辑框里输入文件路径,2如 : \test”。
点击 OK 按钮。
将出现编辑窗口 ,如图 1-2 所示。
在图 1-2 所示的右端编辑窗口里输 入以下 C 源程序并保存文件。
图 1-2 编辑窗口②编译编译是使用系统提供的编译器将文本文件 Exa.c 生成机器语言的过程 ,结果为 Exa.obj ,由于没有 得到系统分配的绝对地址,还不能直接运行,如图 1-3 所示。
软件实验一:汇编编程一、实验目的掌握用汇编语言设计、编写、调试和运行程序的的方法。
二、实验内容1、学生实验:分别编程实现两个16位无符号数相加,结果存放在40H41H中;两个16位的无符号数相减,结果存放在30H31H中。
相加程序思路:①输入加数高8位,加数低8位,被加数高8位,被加数低8位;②将加数低8位和被加数低8位相加,结果存入41H;③将加数高8位、被加数高8位和进位相加,结果存入40H。
相减程序思路:①输入减数高8位,减数低8位,被减数高8位,被减数低8位;②将减数低8位和被减数低8位相减,结果存入31H;③将减数高8位、被减数高8位相减,结果存入30H。
2、学生实验:编程实现X (X≥40)Y= 2X (20<X<40)0(X≤20)实验程序如下:ORG 0000HLJMP MAINORG 0030HMAIN:CMP40: CJNE R2,#40,NEXT0 ;X与40比较,结果由CY读出NEXT0: JNC BIGGER40 ;判断C的值,C为0时则X大于或者等于40,跳到BIGGER40 JC CMP20 ;判断C的值,C不为0时则X小于40,跳到CMP20CMP20: CJNE R2,#21,NEXT1 ;X与21比较,结果由CY读出NEXT1: JNC BIGGER20 ;判断C的值,C为0时则X大于或者等于21(即X大于20),跳到BIGGER20JC SMALLER20 ;判断C的值,C不为0时则X小于20,跳到SMALLER20 BIGGER40: MOV A,R2 ;X>=40时,将X的值赋给存放Y的值的R3MOV R3,ASJMP $BIGGER20: MOV A,R2 ;20<X<40时,将X的值乘以2再赋给存放Y的R3 MOV B,#02MUL ABMOV R3,ASJMP $SMALLER20: CLR A ;X<20时,将0赋给YMOV R3,ASJMP $3、学生实验:编写80个数相加,结果存放在30H31H中。
实验一:简单程序设计实验(1)编写一个32 位无符号数除法的程序,要求将存放在NUM1 中的32 位无符号数与存放在NUM2 中的16 位无符号数相除,结果存放在程序流程图略。
参考源程序:NUM1 DD 2A8B7654HNUM2 DW 5ABCHNUM3 DW ?NUM4 DW ?ASSUME DS:DATA, CS:CODE;数据段寄存器初始化MOV AX, WORD PTR NUM1MOV DX, WORD PTR NUM1+2DIV NUM2MOV NUM3,AXMOV NUM4,DXEND START(2)编写一个拆字程序。
要求将存放在ARY 单元的2 位十六进制数X1X2 拆为X1 和X2 两部分,并以0X1 和0X2 的形式分别存入ARY+1 和ARY+2 单元中。
程序流程图略。
参考源程序:DATA SEGMENTARY DB 2AH,?,?DATA ENDSCODE SEGMENTASSUME DS:DATA, CS:CODESTART:MOV AX,DATAMOV DS,AXMOV SI,OFFSET ARY MOV AL,[SI] ;取ARY 的偏移地址;取16进制数至ALNUM3 和NUM4 中。
DATA SEGMENTDATA ENDS CODE SEGMENTSTART: MOV AX,DATAMOV DS,AXCODE MOV AH,4CHINT 21HENDS;正常返回DOS 系统MOV BL,ALAND AL,0F0H;取16进制数的高四位,即X1SHR AL,4MOV [SI+1],AL ;存0X1 MOV AL,BLAND AL,0FH; 取16 进制数的低四位,即X2MOV [SI+2],AL ;存0X2MOV AH,4CHINT 21HENDSEND STARTCODE实验二:分支程序设计实验(1)编写一个字符比较程序,比较 3 个无符号字节数 A ,B ,C 的大小,并根据比较结果 对变量 K 赋值:如果 3 个数不相等,则 K=0 ; 如果 3 个数中有两个相等,则 K=1 ; 如果 3 个数都相等,则 K=2 。
实验一 Java实验环境的建立一、实验目的1.掌握Java编程环境的搭建过程;2.掌握Jcreator pro软件的使用方法;3.能使用Java doc文档。
二、实验内容1.下载并安装JDK1.6,配置JDK环境变量;2.下载Javadoc压缩包并解压在JDK安装路径下;3.下载Jcreator pro 4.0并安装和配置使用环境;4.使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。
①Java application程序代码如下:public class HelloJava{public static void main(String args[]){System.out.println("Hello Java!");}}②Java applet程序代码如下:import java.awt.*;public class Hello extends java.applet.Applet{public void paint(Graphics g){g.drawString("Hello!",30,30);}}三、试验要求1、预习试验内容并写出上机报告。
2、实验中出现的问题及实验体会。
实验二 Java语言程序设计训练一、实验目的:1.输入、输出操作实现原理和方法2.掌握程序流程控制的实现方法3.掌握数组的定义和操作方法二、实验内容1.计算 Result=1!+2!+3!+ (10)public class TestJieC{public static void main(String arg[]){long result=1;for(int i=1;i<=10;i++){ result=i*result;result+=result;}System.out.println(" "+result);}}2.计算1---50之间所有素数的和。
《计算机硬件基础》课程实验指导书辽宁工程技术大学软件学院2010年2月目录实验上机操作范例实验一汇编语言程序的调试与运行实验二简单程序设计实验三循环程序设计实验四综合程序设计(一)实验五综合程序设计(二)实验六高级汇编技术实验上机操作范例【范例】完成具有如下功能的分段函数1 X>0Y = 0 X=0-1 X<0其中:X存放在内存单元中,Y为结果单元。
【问题分析】根据题意画出程序流程图,如图1所示。
图1 分段函数的程序流程图根据程序流程图编写如下程序DSEG SEGMENTX DW ?Y DW ?DSEG ENDSCSEG SEGMENTASSUME CS: CSEG, DS: DSEGSTART:MOV AX, DSEGMOV DS, AXLEA SI, XMOV AX, [SI]AND AX, AXJNS LP1MOV Y, 0FFH ; X<0JMP END1LP1: JNZ LP2MOV Y, 00HJMP END1LP2: MOV Y, 01HEND1: MOV AH, 4CHINT 21HCSEG ENDSEND START汇编语言程序的开发分为以下4个部分:编辑(生成.asm文件)—→汇编(生成.obj文件)—→连接(生成.exe文件)—→调试。
下面分别通过两种上机环境介绍汇编语言源程序从编辑到生成一个可执行文件(.exe文件)的过程。
一种方法是利用Microsoft公司提供的MASM5版本的工具包(包括edit.exe、masm.exe、link.exe、debug.exe),如图2所示;另一种是利用汇编集成编辑器来完成。
图2 D盘下的MASM5工具包下面的例子按以下几个步骤完成:(1)先编写一个fenduan.asm文件;(2)保存并通过运行masm.exe生成目标文件fenduan.obj;(3)再利用link.exe生成可执行文件fenduan.exe;(4)运行fenduan.exe文件;(5)运行debug fenduan.exe后即可对程序进行跟踪调试。
微机原理实验报告(两个32位无符号数乘法程序以及码制转换程序设计)----05f17e0a-6eb2-11ec-86e4-7cb59b590d7d微机原理实验报告姓名:班级:学号:时间:实验名称:基本汇编语言程序设计实验1:两个32位无符号数乘法程序实验2:代码系统转换程序设计<1>十六进制到ascii<2>从二进制到ascii一、程序流程图1、两个32位无符号数乘法程序:2.十六进制到ASCII二、程序的实现:1、实验一程序:名称32位多数据段mulnumdw0000,0ffffh,0000,0ffffh,4dup(?)dataendsstack'stack'db100dup(?)斯塔克恩兹codesegment假设:代码,ds:data,ss:stack,es:datastartprocfarbegin:pushdsmovax,0pushaxmovax,datamovds,axmoves,axleabx,mulnummulu32:movax,[bx]movsi,[bx+4]movdi,[bx+6]乳化液mov[bx+8],axmov[bx+0ah],dxmovax,[bx+2]mulsiaddax,[bx+0ah]adcdx,0mov[bx+0ah],axmov[bx+0ch],dxmovax,[bx]muldiaddax、[bx+0ah]adcdx、[bx+0ch]mov[bx+0ah]、axmov[bx+0ch]、DXFmovax,[bx+2]muldipopfadcax,[bx+2]adcdx,0mov[bx+0ch],axmov[bx+0eh],dxretSTARTENDPCODENDSENDSTART2、实验二的程序:1)名称HEX_uu更改为uuidatasegmentl1dw2stringdb34h,98hl2dw?缓冲区db2*2dup(?)数据端stacksegmentparastack'stack'db100dup(?)stackends代码段assumecs:code,ds:data,es:data,ss:stackstartprocfarbegin:pushdsmovax,0pushaxmovax,datamovds,axmoves,axmovcx,l1leabx,stringleasi,buffermovl2,cxmovcx,ax再次:moval,[bx]movdl,alandal,0fhcallchangemoval,dlpushcxmovcl,4shral,clpopcxcallchangeincbxretstartendpchangeproccmpal,10jladd_0addal,'a'-'0'-10add_0:addal,'0'mov[si],alincsiretchangeendpcodeendsendstart2)namebinary_to_acsiidatasegmentnumdw4f78hstringdb16dup(?)dataendsstack'stack'db100dup(?)斯塔克恩兹codesegment假设:代码,ds:data,ss:stack,es:datastartprocfarbegin:pushdsmovax,0pushaxmovax、数据MOVDS、axmoves、axleadi、字符串movcx,lengthstringpushdipushcxmoval,30h;repstowpopcxpopdimoval,31hmovbx,numagain:rclbx,1jncnextmov[di],alnext:incdiloopagainretstartendpcodeendsendstart三、实验感想:在实验过程中,我根据书慢慢理解了这些代码的含义,并纠正了代码中的错误。
实验一进程管理一、目的进程调度是处理机管理的核心内容。
本实验要求编写和调试一个简单的进程调度程序。
通过本实验加深理解有关进程控制块、进程队列的概念,并体会和了解进程调度算法的具体实施办法。
二、实验内容及要求1、设计进程控制块PCB的结构(PCB结构通常包括以下信息:进程名(进程ID)、进程优先数、轮转时间片、进程所占用的CPU时间、进程的状态、当前队列指针等。
可根据实验的不同,PCB结构的内容可以作适当的增删)。
为了便于处理,程序中的某进程运行时间以时间片为单位计算。
各进程的轮转时间数以及进程需运行的时间片数的初始值均由用户给定。
2、系统资源(r1…r w),共有w类,每类数目为r1…r w。
随机产生n进程P i(id,s(j,k),t),0<=i<=n,0<=j<=m,0<=k<=dt为总运行时间,在运行过程中,会随机申请新的资源。
3、每个进程可有三个状态(即就绪状态W、运行状态R、等待或阻塞状态B),并假设初始状态为就绪状态。
建立进程就绪队列。
4、编制进程调度算法:时间片轮转调度算法本程序用该算法对n个进程进行调度,进程每执行一次,CPU时间片数加1,进程还需要的时间片数减1。
在调度算法中,采用固定时间片(即:每执行一次进程,该进程的执行时间片数为已执行了1个单位),这时,CPU时间片数加1,进程还需要的时间片数减1,并排列到就绪队列的尾上。
三、实验环境操作系统环境:Windows系统。
编程语言:C#。
四、实验思路和设计1、程序流程图2、主要程序代码//PCB结构体struct pcb{public int id; //进程IDpublic int ra; //所需资源A的数量public int rb; //所需资源B的数量public int rc; //所需资源C的数量public int ntime; //所需的时间片个数public int rtime; //已经运行的时间片个数public char state; //进程状态,W(等待)、R(运行)、B(阻塞)//public int next;}ArrayList hready = new ArrayList();ArrayList hblock = new ArrayList();Random random = new Random();//ArrayList p = new ArrayList();int m, n, r, a,a1, b,b1, c,c1, h = 0, i = 1, time1Inteval;//m为要模拟的进程个数,n为初始化进程个数//r为可随机产生的进程数(r=m-n)//a,b,c分别为A,B,C三类资源的总量//i为进城计数,i=1…n//h为运行的时间片次数,time1Inteval为时间片大小(毫秒)//对进程进行初始化,建立就绪数组、阻塞数组。
实验结论循环结构程序设计一、引言二、实验目的三、实验原理1.循环结构的概念2.循环结构的分类3.循环结构程序设计的基本原则四、实验步骤1.确定循环次数和循环条件2.选择合适的循环结构语句3.编写循环体语句五、实验结果分析六、结论与讨论引言:编程是计算机科学中非常重要的一部分,而程序设计中常用到的循环结构也是非常重要的一种控制流程方式。
本文将介绍如何进行循环结构程序设计,并给出相应实验结果及分析。
实验目的:通过本次实验,我们将学会如何使用不同类型的循环结构来控制程序流程,并能够编写简单而有效的程序。
实验原理:1. 循环结构的概念:在程序运行过程中,为了重复执行某些操作或者根据特定条件反复执行某些操作,需要使用到循环结构。
2. 循环结构的分类:常见的有while循环、do-while循环和for循环。
3. 循环结构程序设计基本原则:确定好需要重复执行多少次或在什么情况下需要重复执行,选择合适的循环结构语句,编写循环体语句。
实验步骤:1. 确定循环次数和循环条件:在程序设计之前,需要明确需要重复执行多少次或在什么情况下需要重复执行。
2. 选择合适的循环结构语句:根据确定好的循环次数和循环条件,选择while、do-while或for等不同类型的循环结构语句。
3. 编写循环体语句:在循环结构中,需要编写具体的操作语句来实现所需功能。
实验结果分析:通过本次实验,我们可以发现,在程序设计中使用不同类型的循环结构可以有效地控制程序流程,并且能够编写出简单而有效的程序。
同时,在实际应用中也需要根据具体需求来选择合适的循环结构类型以及确定好相应的循环次数和条件。
结论与讨论:通过本次实验,我们深入了解了循环结构程序设计,并掌握了相应技能。
在今后的学习和工作中,我们将继续深入研究相关知识,并且不断提高自己在编程方面的能力。
一般实验流程
一般做实验的过程就像这样:
先想好咋整:
就像打游戏前得有个攻略一样,实验之前也得有个计划。
琢磨清楚实验的目的,选好要用的方法、工具和材料,准备好试管啊、烧杯啊、各种药水啊这些“装备”,还有别忘了清理干净实验台,保证安全。
开始动手前的准备工作:
把实验要用的样本或者东西捯饬捯饬,比如洗洗刷刷、烘干处理、捣碎搅拌什么的,同时检查一下仪器设备是不是精准可靠,能不能正常使用。
正式开始实验步骤:
像按照菜谱炒菜那样,一步一步按着实验步骤来操作,每一步都记清楚啥时候干了啥,条件咋样的(比方说加热到了多少度、用了多少时间),加了多少种“调料”(化学品)。
抓取证据和记笔记:
实验的时候边做边记录,就像是拍照片留证据一样,把测出来的数值啊、看到的现象啊都记下来,甚至有时候还得画个图表啥的。
看看结果讲讲道理:
结束后,就得像个侦探一样分析收集到的信息,算一算、比一比,然后跟咱预想的结果对照一下,搞清楚为啥会这样,有没出现预料之外的情况。
聊聊心得总结一下:
然后就是分享经验教训的时间,总结实验得到的结果,说说这背后可能的原因,如果中间遇到了困难怎么解决的,最后判断下这次实验到底成不成,目标有没有达到。
写份实验报告交差:
最后一步,就像写篇小作文,把整个实验从头到尾详细写一遍,包括为啥要做这个实验、具体怎么做的、得到了哪些发现,然后谈谈自己的理解和感悟,最后把报告交给老师审查或者存起来,方便以后回顾和学习。
这就是一个比较通俗易懂的实验流程啦,但无论何时都要记住,实验过程一定要认真细致,确保数据真实有效哦!。
《单片机与嵌入式控制技术》实验书机电工程学院目录安全注意事项 (1)实验一keil软件平台实验 (2)实验二按键控制实验 (10)实验三查表实验 (12)实验四中断实验 (14)附录......................................................................................................... 错误!未定义书签。
安全注意事项1、不要在实验室吃东西。
2、不要穿拖鞋进入实验室,下雨天雨伞不要带入实验室。
3、使用实验箱时轻拿轻放,插拔排线时,对准,不要把排针插歪或者弄折,同时注意别被排针扎手。
4、接线时,必须把实验箱电源关闭。
5、下课后整理实验箱,设备,导线,椅子归原位,电脑正常关机,产生的垃圾带走。
实验一keil软件平台实验一、实验目的认识单片机MCS-51最小系统的构成和相关的开发软件。
任何一个用户系统的开发都需要一个界面良好的调试平台,以方便地、快捷地完成系统的设计与调试。
单片机的开发也是如此。
Keil是目前最流行,使用最广泛的开发平台,也是我们学习单片机的良好工具。
因此,我们必须首先熟悉这个工具,掌握这个工具。
二、实验内容及原理(一)实验内容要求实现某一个I/O口控制八个LED发光二极管左移或者右移流水。
(二)实验原理实验是通过对一些简单程序的调试,帮助我们直观地了解与掌握Keil调试软件的基本功能,掌握如何利用Keil来调试应用系统的硬件与软件的基本方法。
1、硬件(1)实验箱开发板主控芯片采用单片机型号为STC89C52RC,总共四组八位并行I/O口,均可实现数据输入输出,一个全双工串口,可支持的振荡频率范围为2~48Mhz,具有三个16位可编程定时器/计数器,八个中断源,四级优先级,其引脚分布如图1-1所示。
此外实验箱开发板还配备了共阴极数码管显示模块、共阳极八字形流水灯模块、点阵模块、独立按键模块、矩阵按键模块、LCD1602液晶显示模块、蜂鸣器、实时时钟模块、直流电机模块、A/D转换模块等外围模块、超声波模块、温度传感器模块等,可供相关实验与单片机配合使用。