实验4循环控制一
- 格式:doc
- 大小:94.00 KB
- 文档页数:5
汇编语言实验4详细讲解一、引言汇编语言是一种底层的计算机语言,它直接操作计算机的硬件。
在汇编语言实验4中,我们将深入了解汇编语言的一些重要概念和技巧。
本文将详细讲解汇编语言实验4的内容,帮助读者更好地理解和应用汇编语言。
二、实验目的汇编语言实验4的主要目的是学习和掌握在汇编语言中使用条件和循环结构的方法。
通过实验,我们将能够编写能够根据条件执行不同操作的程序,并实现循环执行一定次数的功能。
三、实验内容1. 条件结构条件结构是根据条件的真假来执行不同的操作。
在汇编语言中,我们可以使用条件跳转指令来实现条件结构。
条件跳转指令根据条件寄存器的值来决定是否跳转到指定的地址执行。
常用的条件跳转指令有JZ、JNZ、JC、JNC等。
2. 循环结构循环结构是重复执行一段代码的结构。
在汇编语言中,我们可以使用循环指令来实现循环结构。
循环指令根据计数器的值来判断是否继续执行循环体,并在每次循环结束后更新计数器的值。
常用的循环指令有LOOP、LOOPE、LOOPZ、LOOPNE、LOOPNZ等。
四、实验步骤1. 定义和初始化计数器在循环结构中,我们首先需要定义一个计数器,并对其进行初始化。
计数器可以使用DX寄存器或AX寄存器来保存。
2. 执行循环体在循环结构中,我们需要执行的代码放在循环体中。
循环体的代码将会被重复执行,直到计数器的值为0或满足其他条件。
3. 更新计数器的值在每次循环结束后,我们需要更新计数器的值。
可以使用INC或DEC指令对计数器进行加1或减1操作。
4. 判断是否继续执行循环在每次循环结束后,我们需要判断是否继续执行循环。
可以使用循环指令来实现此功能。
根据计数器的值或其他条件来判断是否继续执行循环。
五、实验示例下面是一个简单的实验示例,演示了如何使用条件和循环结构来实现一个简单的程序:```MOV CX, 10 ; 初始化计数器为10MOV AX, 0 ; 将AX寄存器清零LOOP_START:ADD AX, CX ; 将CX的值加到AX中LOOP LOOP_START ; 循环执行,直到CX的值为0MOV BX, AX ; 将AX的值保存到BX寄存器中```在上面的示例中,我们首先将CX寄存器初始化为10,然后将AX 寄存器清零。
实验名称:循环控制结构编程实践实验目的:1. 理解循环控制结构的基本原理和用法。
2. 掌握使用循环结构解决实际问题的能力。
3. 培养编程思维和逻辑分析能力。
实验环境:1. 操作系统:Windows 102. 编程语言:Python3.83. 编程工具:PyCharm实验时间:2023年X月X日实验内容:本次实验主要围绕循环控制结构展开,通过编写程序实现以下功能:1. 输入一个正整数n,输出从1到n的所有奇数。
2. 输入一个正整数n,输出从n到1的所有偶数。
3. 输入两个正整数m和n,输出m到n之间的所有素数。
实验步骤:一、输出从1到n的所有奇数1. 输入一个正整数n。
2. 初始化一个空列表odd_numbers用于存储奇数。
3. 使用for循环遍历1到n的每一个数。
4. 判断当前数是否为奇数,如果是,则将其添加到odd_numbers列表中。
5. 循环结束后,输出odd_numbers列表中的所有奇数。
代码如下:```pythonn = int(input("请输入一个正整数n:"))odd_numbers = []for i in range(1, n + 1):if i % 2 != 0:odd_numbers.append(i)print("从1到n的所有奇数为:", odd_numbers)```二、输出从n到1的所有偶数1. 输入一个正整数n。
2. 初始化一个空列表even_numbers用于存储偶数。
3. 使用for循环遍历n到1的每一个数。
4. 判断当前数是否为偶数,如果是,则将其添加到even_numbers列表中。
5. 循环结束后,输出even_numbers列表中的所有偶数。
代码如下:```pythonn = int(input("请输入一个正整数n:"))even_numbers = []for i in range(n, 0, -1):if i % 2 == 0:even_numbers.append(i)print("从n到1的所有偶数为:", even_numbers)```三、输出m到n之间的所有素数1. 输入两个正整数m和n。
(新)实验四循环伏安法测定亚铁氰化钾的电极反应过程循环伏安法测定亚铁氰化钾的电极反应过程⼀、实验⽬的(1) 学习固体电极表⾯的处理⽅法; (2) 掌握循环伏安仪的使⽤技术;(3) 了解扫描速率和浓度对循环伏安图的影响⼆、实验原理铁氰化钾离⼦[Fe(CN)6]3--亚铁氰化钾离⼦[Fe(CN)6]4-氧化还原电对的标准电极电位为[Fe(CN)6]3- + e -= [Fe(CN)6]4- φθ= 0.36V(vs.NHE) 电极电位与电极表⾯活度的Nernst ⽅程式为φ=φθ+ RT/Fln(C Ox /C Red )-0.20.00.20.40.60.8-0.0005-0.0004-0.0003-0.0002-0.00010.00000.00010.00020.0003i pai pcI /m AE /V vs.Hg 2Cl 2/Hg,Cl-在⼀定扫描速率下,从起始电位(-0.20V)正向扫描到转折电位(0.80 V)期间,溶液中[Fe(CN)6]4-被氧化⽣成[Fe(CN)6]3-,产⽣氧化电流;当负向扫描从转折电位(0.80V)变到原起始电位(-0.20V)期间,在指⽰电极表⾯⽣成的[Fe(CN)6]3-被还原⽣成[Fe(CN)6]4-,产⽣还原电流。
为了使液相传质过程只受扩散控制,应在加⼊电解质和溶液处于静⽌下进⾏电解。
在0.1MNaCl 溶液中[Fe(CN) 6]4-]的扩散系数为0.63×10-5cm.s -1;电⼦转移速率⼤,为可逆体系(1MNaCl 溶液中,25℃时,标准反应速率常数为5.2×10-2cm·s -1)。
溶液中的溶解氧具有电活性,⽤通⼊惰性⽓体除去。
三、仪器与试剂MEC-16多功能电化学分析仪(配有电脑机打印机);玻碳圆盘电极(表⾯积0.025 cm 2)或铂柱电极;铂丝电极;饱和⽢汞电极;超声波清洗仪;电解池;氮⽓钢瓶。
容量瓶:250 mL 、100mL 各2个,25 mL 7个。
实验四:循环结构程序设计班级:学生姓名:学号:一、实验目的1、理解循环的概念2、理解并掌握循环结构相关语句的含义、格式及使用3、学会循环的应用及控制,包括:①掌握使用循环输入多个数据的方法②掌握在多个数据中有选择地输出数据的方法③掌握在多个数据中对某种数据进行计数的方法④掌握求多个数据中最大值、最小值的方法⑤掌握使用break、continue语句终止循环4、掌握循环的嵌套二、知识要点1、循环变量、循环条件、循环体的概念2、三种循环语句的一般格式、执行过程3、理解选择结构与循环结构中“条件表达式”之不同含义4、二重循环的执行过程三、实验预习(要求做实验前完成)1、循环变量的主要用途是:2、用循环求多个数的和之前,先要把和的初始值赋为:3、用循环求多个数的乘积之前,先要把乘积的初始值赋为:4、字符变量能否作为循环变量?5、循环过程中,如果循环条件成立,但需要结束循环,可采用什么办法?6、什么叫循环的嵌套?四、实验内容(要求提供:①算法描述或流程图②源程序)1. 编程,利用循环计算以下表达式的值:(5+52)*(4+42)*(3+32)*(2+22)*(1+12)*(1/2+1/3+1/4+1/5)(for循环)include <stdio.h>#include <stdlib.h>int main(){int a;double sum=1,sum1=0;for(a=1;a<=5;a++)sum=sum*(a+a*a);printf("结果为%lf\n",sum);for(a=2;a<=5;a++)sum1=sum1+(1.0/a);printf("%lf\n",sum1);printf("结果为%lf\n",sum*sum1);return 0;}2. 编程,从键盘输入若干个整数,当输入0时,输入停止。
C语言程序设计实验指导书E4实验一 C程序环境认识――掌握在集成环境中编辑、编译、连接和运行C语言程序的方法(蓝色笔体内容可以不写在实验报告里,理解并掌握即可。
)一,实验目的:1,掌握TC的使用.2,理解C程序的结构.3,掌握C程序设计,调试,运行的步骤,方法.4,理解最简单的C程序设计方法.二,实验准备:1,计算机基本操作练习.2,TC软件使用预习.3,设计出习题1.5、习题1.6的程序.三,实验内容:1.VC6.0或TC程序运行环境;2.程序调试的全部过程;3.菜单的用法;4.常用功能键的用法。
四,实验要求:1.认真阅读和掌握和本实验相关的教材内容;2.认真阅读和掌握本章相关内容的程序,例1.1、例1.2、例1.3;3.上机运行程序;4.保存和打印出程序的运行结果,并结合程序进行分析;5.按照你对运行环境的操作需要,编写一简单C程序并运行,打印出文件清单和运行结果。
五,实验步骤:1,开机,启动TC.(1)开机.(2)进入TC目录.(3)启动TC.命令格式:TC [文件名[.扩展名]]说明:若缺省文件名,则直接启动.进入TC界面,并显示版本信息.此时按ESC键进入编辑状态. 若给定文件名,(缺省扩展名则默认为.C)则打开该文件(若不存在则新建该文件)进行编辑. 2,TC的使用(1)启动TC后,进入TC的界面.该界面分为四部分:菜单区,编辑区,信息区,提示行.A,菜单区:TC界面的最上面一行,是TC的主菜单.包括8项:File 文件操作Edit 编辑操作Run 运行Compile 编译Project 工程(项目)Option 选项Debug 调试Break/Watch 中断/监视每个菜单项下都包含有各项具体功能,用户可以通过选择,执行相应的功能.B,编辑区.TC界面的主要部分,由标题Edit,状态行和文本编辑区域组成.状态行中指示光标所在行,列.现在是否处于插入状态(若有Insert标志表示处于插入状态,没有则处于改写状态)以及正在编辑的文件名.C,信息区.由标题message和信息显示区域组成,用来显示编译文件后的错误.单步执行时要监测变量的值等信息.D,提示行.TC界面的最下面一行,用于提示用户一些最常用的操作: F1――帮助,F5――窗口的缩放,F6 ――窗口的切换,F8――单步执行程序,F9――编译连接,F10――激活主菜单.(2)菜单的操作A,激活菜单 F10或AltB,移动光条方向键C,选择某项回车D,放弃选择 ESCE,主菜单项的直接选中Alt―高亮度的字符如:要选中File 按Alt―FF,子菜单的直接选中选中主菜单项后,直接按高亮度的字母如:选中File后,要选中Save 按"s"Ⅶ.部分快捷键(直接按该键就会击活菜单项具体的功能) 除前面提示行中列出的以外,常用的还有: F2――保存F3――装入文件F4――从坐标所在位置单步执行F7――单步跟踪Alt-F1:查看最近一次的帮助信息Alt-F3:选择文件装入Alt-F5:查看运行结果Alt-X:退出TCCtrl-F1:查看与光标所在位置内容相关的帮助信息Ctrl-F2:取消单步执行Ctrl-F8:设置断点Ctrl-F9:编译,连接并运行(3)文件操作A,新建文件可采用以下方法:(a)在启动TC时不带文件名,则系统默认为NONAME.C,存盘时再输入文件名.(b)启动TC时带新文件名.(c)在TC环境下选择File下的New.B,打开文件可采用以下方法:(a)启动TC时带文件名 .(b)在TC环境下选择File下的Load,再输入文件名.(c)以通过Load打开过的文件再次打开,可选择File下的Pick,进行选择.C,保存文件可采用以下方法:(a)选择File下的Save,存盘.若原文件名是NONAME.C,则存盘时还要输入文件名.(b)选择File下的Write to,输入文件名,则将文件换名存盘.(4)编辑操作TC采用的是全屏幕编辑器,即凡输入过内容的地方都可将光标移到该处直接修改.A,移动光标:左移一个字符→右移一个字符←上移一行↑下移一行↓移动到行首 Home移动到行末 End向下翻页 PageDown向上翻页 PageUp移动到窗口左上角 Ctrl-Home移动到窗口右上角 Ctrl-End移动到文件头 Ctrl-PageUp移动到文件尾 Ctrl-PageDownB,删除内容:删除光标前的字符 Backspace(退格)删除光标位置上的字符 Delete(del)删除一行 Ctrl-YC,块操作:定义块首 Ctrl-KB 定义块尾 Ctrl-KK块复制 Ctrl-KC 块移动 Ctrl-KV块删除 Ctrl-KY 块取消 Ctrl-KH(5)C程序的调试,运行A,输入程序B,编译,运行形成可执行文件选择Compile下的Compile to OBJ 编译生成目标文件Compile/link EXE file 将目标文件连接成可执行文件Compile/make EXE file 编译直接生成可执行文件(程序输入后,用快捷键F9即表示make exe file,完成编译和连接). C,执行选择Run下的Run(Ctrl-F9).D,查看结果运行按Alt-F5,查看后按任意键返回.(6)退出TC选择File下的Quit或直接按Alt-X.3.简单的C程序设计,调试,运行.六,实验报告:1,源程序.2,调试过程中出现的错误及修改情况.3,实验结果.4,实验的感受及体会.实验二顺序结构程序及基本I/O(蓝色笔体内容可以不写在实验报告里,理解并掌握即可。
实验四循环结构【实验目的】1.掌握For语句和while循环语句的使用。
2.掌握循环的规则及其执行过程。
3.掌握如何控制循环条件,防止死循环或不循环。
【实验内容】1.编写程序,找出7的倍数中十位数为2的所有3位数。
x=100while x<1000:y=x/100a=(x-100*y)/10z=x-100*y-10*aif (10*y+a-2*z)%7==0 and a==2:print xx+=1else:x+=1 或:x=100while x<1000:if x%7==0 and x//10%10==2:print xx+=1或:for x in range(100,1000):if x%7==0 and x//10%10==2:print x2.编写程序用Print语句输出2000年至2500年间的所有闰年,要求每行输出8个。
y=2001count=0flag=Truewhile flag:if y%4==0 and y%100!=0 or y%400==0:if count%8==0:printprint y,y+=1count+=1else:y+=1if y==2500:flag=False3.编写程序解决爱因斯坦台阶问题:有人走一台阶,若以每步走两级则最后剩下一级;若每步走三级则剩两级;若每步走四级则剩三级;若每步走五级则剩四级;若每步走六级则剩五级;若每步走七级则刚好不剩。
问台阶至少共有多少级?L=[]for x in range(0,1000):if x%2==1 and x%3==2 and x%4==3 and x%5==4 and x%6==5 and x%7==0:L.append(x)print min(L)至少共有119级4.我国有13亿人口,如果按人口年增长0.8%计算,多少年后将达到26亿?n=13y=0while n<26:y+=1n=n*(1+0.008)print y(87年)5.编程计算1!+2!+3!+...+10!的结果。
实验4一条指令执行过程实验报告范文一指令的执行步骤学号姓名班级:实验时间:年月日实验报告表4-1一条指令执行过程记录表步骤1用户指定两个加数加数1,加数2PC中存储的指令地址RAM中对应指令地址中的指令编码RAM中加数一的编码与内存地址RAM中加数一的编码与内存地址步骤2取指令CPU使用哪根总线将PC中的内存地址送至RAM?RAM将CPU传来的指令地址存储在哪里?MAR中存放的是什么?具体的二进制编码是什么?MAR中二进制编码对应的内存地址是什么?该内存地址中存放了什么数据?该数据放在哪个寄存器中?PC被访问后其中的内容发生了什么变化?为什么?RAM将MDR中的数据通过哪条总线传送给力CPU?CPU将RAM传来的指令存放在哪里?IR中存放的指令二进制编码是什么?步骤3指令译码IR中的操作码和两个操作数的内存地址分别是什么?(请分别用用六位二进制数和四位十六进制表示)译码在哪里进行?并通过哪组总线把该操作传递给RAM?步骤4取数据CPU通过哪组总线传送地址?RAM将这个地址存放在哪里?RAM把第一个操作数存放在哪个寄存器上,通过哪组总线传送给CPU?CPU把取到的第一个操作数存放在哪里?步骤5加法计算CPU把两个加数放入哪里进行加法运算?当两个加数相加结束后,CPU把相加结果存放在哪里?实验小结:在本次实验中,你有哪些收获?遇到哪些问题?这些问题是否已经解决?如果已经解决了,请说说你是如何解决的。
也可谈谈你的其它想法。
1)PC的功能是什么?它的第一数据是从哪里得到的2)ALU是什么部件?它的功能是什么?3)MAR是什么寄存器?4)MDR是什么寄存器?它和内存有什么区别?5)IR是什么寄存器,它的作用是什么答:1)用来存放下一条指令的地址的,当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为取指令。
与此同时PC中的地址或者自动加1或由转移指针给出下一条指令的地址。
实验4 循环程序设计4.1 实验目的(1) 掌握三种循环语句的使用,能分析循环的执行过程;(2) 掌握break和continue语句的使用;(3)了解如何利用求余和整除操作获取和删除一个整数的最低位;(4) 掌握累加、累乘的处理方法。
(5) 掌握计数问题的编写技巧,如何控制每行输出元素个数。
4.2 知识要点循环就是反复执行一段代码,直到满足结束条件。
循环语句一般包括初始化、循环体、迭代和判断4部分。
4.2.1 while循环与do while循环的使用差异while语句的格式:while (条件表达式) {循环体}特点是“先判断、后执行”,循环体有可能执行0次。
do…while循环的格式:do{循环体} while (条件表达式)特点是“先执行,后判断”,循环体至少要执行1次。
建议: 在程序设计中尽量不用do while循环,而用while循环。
4.2.2 for循环与while循环的对应关系for (控制变量赋初值;循环条件;增值) {循环体}等价于:控制变量赋初值;While (循环条件) {循环体;控制变量增值;}注意几点:(1)for循环的执行过程是先做初始化,然后判断是否满足结束条件,若满足,则执行循环体,在执行完循环体后进行迭代增值。
(2)初始化部分和增值部分可以使用逗号语句执行多个操作;(3)三部分均为空,写成for(;;)相当于一个无限循环。
4.2.3 continue和break语句的作用●continue---跳过之后的语句,继续下一轮循环;●break---跳出直接所处循环。
●带标号的continue可以回到标号指定的那级循环的下一轮执行。
●带标号的break可以跳出标号指定的那级循环。
4.2.4 常见问题处理(1)累加问题的解决办法—累加变量的初值设置在循环外,通常赋0为初值;(2)如何利用循环求阶乘—累乘,在循环外设置变量初值为1;(3)如何控制每行的输出数据个数(计数问题);(4)如何产生一定范围的随机整数。
《Python语言程序设计》
实验报告
实验名称循环结构(一)
院(系、部、中心)
专业
班级
学生姓名
学号
实验地点
指导教师
一、实验目的和要求
1.掌握for语句的使用方法。
2.掌握while语句的使用方法。
3.掌握任何控制循环条件,防止死循环或不循环。
4.利用循环结构解决实际问题
二、实验内容
1. 分别使用for语句中序列为range函数、字符串的两种方式显示有规律字符图,运行效果如下图所示。
程序代码和运行结果如下:
2.检查表达式输入中圆括号配对问题。
要求对输入的算术表达式,检验其圆括号配对情况,并给出相应信息,运行效果如下图所示。
程序代码和运行结果如下:
3.输入一句由英文单词组成的句子,各单词间空格分隔,显示最长的单词和长度。
程序代码和运行结果如下:
4.输入任意正整数,利用While语句将输入的数逆序数显示。
例如,输入“12345”,输出“54321”。
程序代码和运行结果如下:
5. 计算S=1+1/2+1/4+1/7+1/11+1/16+1/22+1/19+……,当某项值小于10-4时结束。
程序代码和运行结果如下:
三、总结与思考
最后一题while循环的判定条件我把a写成1/a了,导致每次的运算结果都偏大。
第一题我把i*”“的外面又加了“”所以导致了最后打出来的是i*,最后删掉就好了,还有一开始把A的ascll记错了,记成97了,那是a的ascll值,A的是65。
闽江学院地理科学系《C语言程序设计》实验报告实验题目:循环控制姓名:方园成学号:120090503107所用主要软件:Turbo C 2.0学院闽江学院系:地理科学系专业:年级:09课程C语言程序设计实验日期:201 0年10 月 1 日专业班号:09(1)班___ ___ 组别:___________ 交报告日期:201 0 年10 月2日姓名:方园成学号:120090503107 报告退发:(订正、重做)指导教师签字:冯世基成绩:实验一一、实验目的(1)掌握各种循环结构,并能够加以区分;(2)学会各种循环结构的应用;二、实验内容P129(1)6.6 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
例如,153是一水仙花数,因为153=13+53+33。
(2)6.8 有一分数序列2/1,3/2,5/3,8/5/,13/8,21/13,......求出这个数列的前20项之和。
三、实验环境实验楼计算机网络教室,Windows XP sp2中文版操作系统并安装Turbo C 2.0。
四、实验步骤1、根据题目要求写出相应的源程序。
2、编绎。
3、调试运行。
4、查看运行结果。
五、源程序与运行结果6.6main(){int i,j,k,n;for(n=100;n<1000;n++){i=n/100;j=n/10-i*10;k=n%10;if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) printf("n=%d\n",n);}}6.8main(){int n,t,number=20;float a=2;b=1;s=0;for(n=1;n<=number;n++){s=s+a/b;t=a,a=a+b,b=t;}printf("s=%9.6f\n",s);}六、出现问题及解决方法七、实验心得通过此次实验,我掌握了比较常见的循环结构及其运用,日后我会通过上些练习来强化自己,做到更深入的了解。
广州大学学生实验报告五一、实验目的(1)熟练掌握for、while和do …while语句实现循环程序设计。
(2)理解循环条件和循环体,以及for、while和do …while语句的相同及不同之处。
二、实验设备实验设备要求每个学生一台电脑,并需装有VC++ 6.0程序。
三、实验内容(一)编写程序:求出 1,1+2,1+2+3,……数列中前n项的值。
(文件名:ch05_1.cpp)要求输入输出示例:Enter a number: 61 3 6 10 15 21(二)编写程序:从键盘上输入若干学生的成绩,统计并输出最高分和最低分成绩,当输入负数时结束输入。
(文件名:ch05_2.cpp)要求输入输出示例:Please input scores:65.5 86.4 74 92 67 91 54.5 -1Max=92.00Min=54.50(三)编写程序:有100匹马,要驮100担货物,其中,1匹大马可以驮3担,1匹中马可以驮两担,两匹小马可以驼1担,请问,大马、中马和小马可以有多少种组合。
(文件名:ch05_3.cpp)要求输入输出示例:大马2匹;中马30匹;小马68匹,大马5匹;中马25匹;小马70匹,大马8匹;中马20匹;小马72匹,大马11匹;中马15匹;小马74匹,大马14匹;中马10匹;小马76匹,大马17匹;中马5匹;小马78匹,共有6种驮法(四)编写程序:已知某正整数等差数列的前4项之和为10,前4项之积为24,经计算可得此等差数列的前六项为:1 2 3 4 5 6,前六项之和为:26。
请问:若某数列的前4项之和是26,前4项之积是880。
请输出此正整数等差数列的前六项与前六项之和(文件名:ch05_4.cpp)要求输出示例:1,2,3,4,5,6数列的前6项的和:21提示:(1)等差数列由首项和差值两项构成,用整型变量工a,d分别记录该两项。
(2)利用for循环进行求解,并且需要满足数列前4项之和为26。
实验4 程序控制结构1.实验目的(1)学会使用逻辑运算符和逻辑表达式;(2)熟练掌握if语句和switch语句;(3)熟练掌握while、do-while和for语句实现循环的方法,理解各种循环语句的联系与区别;(4)结合习题、例题中的程序掌握一些经典的算法;(5)进一步地提高调试程序的能力。
2.实验内容(1)上机测试课本例题:例5.3,例5.5, 例5.6,例5.7,例6.1,例6.4,例6.5,例6.9,例6.10问题1:例5.5中int型变量leap有何作用?问题2:例5.6中fabs(a) <=1e-6有何意义?问题3:例6.1中用goto语句构造循环结构的基本思路是什么?总结一下goto语句的用途?问题4:通过分析例6.4总结一下while和do-while的区别?问题5:通过分析对比,例6.5,例6.9总结一下break和continue语句的用法?(2)编程并上机调试课后习题:习题5.6,习题5.7,习题5.8,习题5.9,习题6.1,习题6.2,习题6.3,习题6.7,习题6.10,习题6.11,习题6.12,习题6.13,习题6.14,习题6.15注意:以上习题的解答可以参考参考书或网上查找的程序代码!切忌直接拷贝!要学会通过利用学习资源学到东西,而不是应付差事!(3)程序设计①设计一个简单的菜单程序⏹运行时,首先显示一个菜单画面用以提示输入操作选择⏹操作员从菜单上选择一个操作(即输入相应的代码,例如1、2等),程序接收选择后调用相应的函数完成操作⏹假设系统提供select()、insert()、update()和del()函数,分别用以实现选择、插入、更新与删除等相应操作参考代码如下(根据自己需要做适当修改):#include <stdio.h>void insert();void select();void del();void update();void main(){/* generate menu */char op;printf(“\n ********************************“); /*生成菜单*/printf(“\n * Menu Options *“);printf(“\n * 1. Insert *“);printf(“\n * 2. Select *“);printf(“\n * 3. Delete *“);printf(“\n * 4. Update *“);printf(“\n * 5. Exit *“);printf(“\n ********************************“);/* selection operation */while(1){printf(“\nPlease enter selection: “); scanf(“%d“, &op);switch(op){ /* 根据输入,选择分支走向*/case ‘1‘: insert(); break;case ‘2‘: select(); break;case ‘3‘: del(); break ;case ‘4‘: update(); break;case ‘5‘: break;default: printf(“\nSelection error!“); break;}if(op == ‘5’) break; /* 退出循环*/}} // 结束主函数//被调用函数的定义…………………………………..…………………………………………………………………….3.心得体会4上机作业提交说明(1)将上机的程序用一个工作空间管理,命名为:上机作业4,然后每题作为一个工程单独管理。
循环伏安法测定亚铁氰化钾的电极反应过程一、实验目的(1) 学习固体电极表面的处理方法; (2) 掌握循环伏安仪的使用技术;(3) 了解扫描速率和浓度对循环伏安图的影响二、实验原理铁氰化钾离子[Fe(CN)6]3--亚铁氰化钾离子[Fe(CN)6]4-氧化还原电对的标准电极电位为[Fe(CN)6]3- + e -= [Fe(CN)6]4- φθ= 0.36V(vs.NHE) 电极电位与电极表面活度的Nernst 方程式为 φ=φθ+ RT/Fln(C Ox /C Red )-0.20.00.20.40.60.8-0.0005-0.0004-0.0003-0.0002-0.00010.00000.00010.00020.0003i pai pcI /m AE /V vs.Hg 2Cl 2/Hg,Cl-在一定扫描速率下,从起始电位(-0.20V)正向扫描到转折电位(0.80 V)期间,溶液中[Fe(CN)6]4-被氧化生成[Fe(CN)6]3-,产生氧化电流;当负向扫描从转折电位(0.80V)变到原起始电位(-0.20V)期间,在指示电极表面生成的[Fe(CN)6]3-被还原生成[Fe(CN)6]4-,产生还原电流。
为了使液相传质过程只受扩散控制,应在加入电解质和溶液处于静止下进行电解。
在0.1MNaCl 溶液中[Fe(CN) 6]4-]的扩散系数为0.63×10-5cm.s -1;电子转移速率大,为可逆体系(1MNaCl 溶液中,25℃时,标准反应速率常数为5.2×10-2cm·s -1)。
溶液中的溶解氧具有电活性,用通入惰性气体除去。
三、仪器与试剂MEC-16多功能电化学分析仪(配有电脑机打印机);玻碳圆盘电极(表面积0.025 cm 2)或铂柱电极;铂丝电极;饱和甘汞电极;超声波清洗仪;电解池;氮气钢瓶。
容量瓶:250 mL 、100mL 各2个,25 mL 7个。
《C 语言程序设计》实验指导书实验一C 程序的运行环境一、实验目的1、了解所用的计算机系统的基本操作方法,学会独立使用该系统;2、了解在该系统上如何编辑、编译、连接和运行一个C 程序;3、通过运行简单的C 程序,初步了解C 程序二、实验预习1、认真阅读简单的C 程序介绍,C 程序上机步骤部分内容;2、编写好所需要的程序,程序的书写应该清楚整洁,一般检查应该是没有明显的错误。
如果在程序中有疑问的地方,可以标记起来,以便于上机调试时予以注意。
初学者特别忌讳上机前自己不编写程序,到时随便地抄别人的程序。
三、实验指导1、输入并运行一个简单的程序,从而熟悉所用系统的上机方法与步骤。
(1)选择“File”—“New”—“Win32 console application”,输入工程名称,确定。
直接选择第一项“An empty project”,点击“Finish”。
“File”—“New”—File框下面选择文件类型“C++ Source File” ,输入文件名称,点击“OK”。
(2)输入下面的程序(例题1.1)#include <stdio.h>void main( ){printf("This is a C program.\n");}(3)选择“Build”菜单下“Compile”选项,快捷键为Ctrl+F7。
编译过程将源代码转化成目标文件格式,后缀名为.o。
选择“Build”菜单下“Build”选项,快捷键为F7。
如果出现“出错信息”,则应找出原因并改正之,再进行编译构建。
(4)如果编译无错误,选择“Build”菜单“Execute”选项,运行程序,快捷键为Ctrl+F5,观察分析运行结果。
2、输入并编辑一个C 程序(1)同上,新建工程和文件。
(2)输入以下程序(例题1.2,但故意漏打或打错几个字符)#include <stdio.h>void main( ){int a,b,sum ;a=123 ;b=456 ;sum=a+b ;printf("sum is %d\n",sum);}(3)以下步骤同上一例题3、输入并运行一个需要在运行时输入数据的程序(1)清空编辑窗口,输入下面的程序(例题1.3)。
实验名:循环结构实验目的1、掌握在程序设计条件型循环结构时,如何正确地设定循环条件,以及如何控制循环的次数。
2、了解条件型循环结构的基本测试方法。
3、掌握如何正确地控制计数型循环结构的次数4、了解对计数型循环结构进行测试的基本方法5、了解在嵌套循环结构中,提高程序效率的方法二、实验内容(一)) 题目11、题目内容描述1、下面是一个计算e 的近似值(使误差小于给定的δ)的程序。
main(){double e=1.0,x=1.0,y,detax;int i=1;printf(“\n please input enter a error:”);scanf(“%lf”,&detax);y=1/x;while(y>=detax){x=x*I;y=1/x;e=e+y;++i;}printf(“%12.10lf”,e);}2、实验步骤(1)阅读上面的程序,写出程序所依据的计算公式。
(2)当输入的detax 各是什么值时,能分别使程序按下面的要求运行:.不进入循环;.只循环一次;.只循环两次;.进入死循环(程序将永远循环下去)。
为了能知道程序循环了多少次,应该在程序中增加一条什么样的语句?(3)原程序中while 语句中的y>=detax,分别换成y>detax,y=detax,y<detax,y<=detax,观察程序运行将会有什么变化。
假如不知道机器内的程序中的各语句实际上是什么,分别输入什么样的detax 来测试出while 语句的循环条件写错了。
(4)把原程序中while 语句之前的y=1/x 语句去掉,观察程序的运行将会发生什么样的变化。
假如不知道机器内的程序实际上是怎么写的,输入什么样的detax 就能测试出少了上述这条语句。
(5)若把原程序中的++i 换成i++,观察程序的运行发生了什么变化?假如不知道这条语句到底是怎么写的,输入什么样的detax 就能测试出这条语句写错了.(6)把原程序中的while 结构改写成do—while 结构,再分别按上述的(2)、(3)两步进行实验。
《C语言程序设计》实验报告
----------------------------------------------------------------------------------------------
实验4循环控制(一)
一.实验目的
(1)掌握用while语句,do…While语句和for语句实现一重循环的方法。
(2)掌握在程序设计中用循环的方法实现一些常用算法(例如求最大/最小值、求和、统计等)。
(3)进一步学习调试程序的技巧。
二.实验内容和步骤
1.填空题
(1)给定程序成c4-1.c功能是计算1到M之间的奇数之和及偶数之和。
#include<stdio.h>
#define M 100
int main()
{ int a,b,i;
a=0;b=0;
for(i=1;i<=99;i+=2)
{ a=a+i;
b=b+i+1; }
printf("sum of evens is %d\n",b);
printf("sum of odds is %d\n",a);
return 0;
}
(2)以下给定程序c4-2.c的功能是从键盘输入整数,分别计算所输入正整数的和、负整数的和。
当输入0时,结束并输出计算结果。
#include<stdio.h>
int main()
{ int x,sum1,sum2;
sum1=0;sum2=0;
scanf("%d",&x);
while(x!=0)
{
if(x>0) sum1+=x;
else sum2+=x;
scanf("%d",&x);
}
printf("sum of>0 in %d\n",sum1);
printf("sum of<0 is %d\n",sum2);
return 0;
}
(3)给定程序c4-3.c功能是计算正整数num的各位上数字之积。
#include<stdio.h>
int main()
{ int num,k;
k=1;
printf("please enter a number:");
scanf("%d",&num);
do
{ k*=num%10;
num=num/10;
}while(num!=0);
printf("\n%d\n",k);
return 0;
}
反思与总结:1.evens代表偶数,odds表示奇数;2.(3)中取末尾的方法值
得一看!3.通过这三个例子掌握for,while,do while语句的使用。
2.改错题
(1)以下程序c4-4.c的功能是从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入,请将程序补充完整。
#include<stdio.h>
int main()
{ float x,amax,amin;
scanf("%f",&x);
amax=0;amin=100;
for(;x>=0;)
{ if(x>amax) amax=x;
if(x<a min) amin=x;
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
return 0;
}
(2)以下程序c4-5.c的功能是从低位开始取出长整型变量s中奇位数上的数,依次构成一个新数放在t中。
#include<stdio.h>
int main()
{ long s,t,sl=10;
printf("\nPlease enter s:");
scanf("%ld",&s);
t=s%10;
while(s>0)
{ s=s/100;
t=s%10*sl+t;
sl=sl*10;
}
printf("The result is:%ld\n",t);
return 0;
}
(3)给定程序c4-6.c的功能是从键盘上输入两个正整数x,y,求它们的最大公约数。
#include<math.h>
#include<stdio.h>
int main()
{ int n,m,t;
printf("Please enter two numbers:");
scanf("%d,%d",&n,&m);
if(n<m)
{t=n;n=m,m=t;}
t=n%m;
while(t!=0)
{n=m;
m=t;
t=n%m;}
printf("max is:%d\n",m);
return 0;
}
反思与总结:1.掌握(1)题中找最大数和最小数的方法;2.理解(2)中程
序设计的思想;3.掌握(3)中求最大公约数的方法。
3.程序设计题
(1)以下程序的功能是求两个正整数mn之间所有既不能被3整除又不能被7整除的整数之和。
#include<stdio.h>
int main()
{ int m,n,t,i,s;
printf("m=,n=");
scanf("%d,%d",&m,&n);
if(m>n)
{t=n;n=m;m=t;}
for(s=0,i=m;i<=n;i=i+1)
{if(i%3!=0&&i%7!=0)
s=s+i;}
printf("S is:%d\n",s);
return 0;
}
(2)输入一行字符,分别统计出其中的英文字母,空格,数字和其他字符的个数。
#include<stdio.h>
int main()
{ char ch;
int a=0,b=0,c=0,d=0;
while((ch=getchar())!='\n')
{if(ch==32) b=b+1;
else if(ch>=48&&ch<=57) c=c+1;
else if((ch>=65&&ch<=90)||(ch>=97&&ch<=122) ) a=a+1;
else d=d+1;}
printf("%d,%d,%d,%d\n",a,b,c,d);
return 0;
}
(3)编程求1!+2!+3!+……+20!的值。
#include<stdio.h>
int main()
{ int i,p=1,sum=0;
for(i=1;i<=20;i++)
{p=p*i;sum=sum+p;}
printf("sum=%d\n",sum);
return 0;
}
(4)求π
#include<stdio.h>
#include<math.h>
int main()
{ int n=1;
double term,pi=1.0;
for(n=1;1.0/(n*(n+2))>=1.0e-6;n=n+2)
{term=1+1.0/(n*(n+2));
pi=pi*term;}
pi=2*pi;
printf("%6.4lf\n",pi);
return 0;
}
反思与总结:空格=32,数字=48~57,大写字母=65~90,小写字母=97~122
(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。
可复制、编制,期待你的好评与关注)。