实验4循环伏安法测定电极反应参数实验报告

实验4循环伏安法测定电极反应参数实验报告
实验4循环伏安法测定电极反应参数实验报告

华南师范大学实验报告

学生姓名学号2014

专业新能源材料与器件年级、班级2014

课程名称电化学实验实验项目循环伏安法测定电极反应参数实验类型□√验证□设计□综合实验时间2016年4月25日

实验指导老师吕东生实验评分

一、实验目的

1.了解循环伏安法的基本原理及应用

2. 掌握循环伏安法的实验技术和有关参数的测定方法。

二、实验原理

循环伏安法(Cyclic Voltammetry)是一种常用的电化学研究方法。该法控制电极电势以不同的速率,随时间以三角波形一次或多次反复扫描,电势范围是使电极上能交替发生不同的还原和氧化反应,并记录电流-电势曲线。根据曲线形状可以判断电极反应的可逆程度,中间体、相界吸附或新相形成的可能性,以及偶联化学反应的性质等。常用来测量电极反应参数,判断其控制步骤和反应机理,并观察整个电势扫描范围内可发生哪些反应,及其性质如何。对于一个新的电化学体系,首选的研究方法往往就是循环伏安法。该方法使用的仪器简单,操作方便,图谱解析直观,在电化学、无机化学、有机化学、生物化学等许多研究领域被广泛使用。循环伏安法通常采用三电极系统,一支工作电极(被研究物质起反应的电极),,一支参比电极,一支对电极。外加电压在工作电极和辅助电极之间,反应电流通过工作电极与辅助电极。

图1 循环伏安法测得的氧化还原曲线

正向扫描的峰电流i

p

与v^0.5和C都成线性关系,对研究电极过程具有重要意义。标准

电极电势为:EΘ=(E

pa +E

pc

)/2。所以对可逆过程,循环伏安法是一个方便的测量标准电极

电位的方法。

三、实验器材

CHI电化学工作站;玻碳电极;铂电极;Hg/Hg2SO4电极;0.1 mol/L VO2+ + 0.1 mol/L VO2+ +3 mol/L H2SO4溶液

四、实验步骤

1. 预处理电极

2. 连接好电极,打开CHI电化学工作站,测试完开路电压后选择“Cyclic Voltammetry Parameters”方法。

3. 设置实验参数。初始电位为0.3598V(开路电压),阴极终止电位-12V,阳极终止电位+2V,扫描速率为20mV/s,循环次数2次,即“Sweep Segment”为5。sensitivity取1.e^-6取第二次的数据。保存实验数据。

4. 换电解液,处理电极后,将扫速设置为5mV/s,阴极终止电位-0.3V,阳极终止电位1.3V,循环次数为2次,取第二次的数据。保存实验数据。

5. 在扫描速度分别为10mV/s,15mV/s,20mV/s下按照步骤5的实验条件测量循环伏安曲线。保存实验数据。

6.清洗电极和电解槽,关闭仪器和电脑。

五.实验数据处理与分析

1.作出玻碳电极在-1.5V~

2.0V范围内测出的循环伏安曲线图 (选第2次扫描的曲线)。指出玻碳电极上的析氢电位、析氧电位以及另外一对氧化峰和还原峰的电位及其对应的电化学反应。

图2 玻碳电极在0.1mol/L VO2++0.1mol/L VO2++3mol/L H2SO4,-2V~+2V范围内的循环伏安曲线图析氢电位:-1.638V 析氧电位:0.945V

另一个还原峰电位:-1.124V 对应反应为VO2++2H++e-= VO2++H2O

另一个氧化峰电位:-0.394V 对应反应为VO2++H2O = VO2++e-+2H+

2. 在同一张图中做出-0.3V~1.1V范围内不同扫速下的循环伏安曲线。列表总结不同扫速下的测量结果。

扫速 参数 5mV/s 10mv/s 15mV/s 20mV/s 30mV/s

E pa /V 0.251 0.163 0.1733 0.1822 0.1722 E pc /V 0.501 0.766 0.733 0.7156 0.6541 E p /V 0.249 0.603 0.5597 0.5334 0.4819 i pa /mA 3.769 4.635 6.28 7.247 8.991 i pc/m A 3.227 2.595 3.409 4.239 5.744 i pa /i pc

1.17

1.79

1.84

1.70

1.56

表1玻碳电极在-0.3V~1.1V 范围内不同扫速下的测量结果

-0.5

0.00.5 1.0

-0.0004

-0.0002

0.0000

0.0002

0.0004

0.0006

C u r r e n t (A )

Potential (V)

5mV/s 10mV/s 15mV/s 20mV/s 30mV/s

图3 玻碳电极在-0.3V~1.1V 范围内不同扫速下的循环伏安曲线

根据ΔE p 和i pa /i pc 随扫描速度的变化趋势,说明扫速对VO 2+/ VO 2+电对的可逆性的影响。

从表1数据可见,ΔEp 随扫速增大而增大,i pa /i pc 也越来越偏离1,说明VO2+/ VO2+电对的扫速越大,电化学极化会增大,电对可逆性会降低。

3. 在同一张图中作出i pa 和i pc 对v 1/2的曲线,并指出这两条曲线是否都是通过原点的直线。

图4.i pc和i pa对v1/2的曲线由图像可知,两条曲线都没有通过原点。

实验四-循环结构汇编语言程序的设计实验报告

循环结构汇编语言程序设计实验报告

实验四循环结构汇编语言程序设计 一、实验目的 1、学习循环结构的汇编语言程序的设计和调试。 2、学习通过直接对8086计算机的寄存器和存的直接访问,编写更高效简洁的汇编程序。 3、加深掌握计算机整体的工作过程。 3、加深对排序算法的理解。 二、实验任务 编写程序求出数组A中(20个元素)的最大值和最小值(数组没有排序)。 要求至少采用二种不同的排序算法来实现。( 快速排序,归并排序、堆排序、Shell排序、插入排序、冒泡排序、交换排序、选择排序、基数排序……) 三、实验容 为了更好地实现老师所布置的实验任务,我们根据情况选取以下两种方式实

验。 1、利用冒泡排序的方式求解数组A中元素的最大值最小值。设计流程图如 下所示: 2、利用选择排序的方式求得数组A中元素的序列。设计流程图如下所示:

四、实验环境 PC机: winXP/win7(32位)/win7(64位)+winxp 虚拟机 汇编工具:Masm.exe+Link.exe。 五、实验步骤 1)建立和生成的文件 (1)编写的源程序,源程序名为abc、扩展名为.asm (2)源程序经汇编程序Masm.exe汇编(翻译)后生成二进制目标程序,文件名为abc.obj (3)目标程序需要经Link.exe连接生成可执行程序,文件名为abc.exe 2)汇编环境 最基本的汇编环境只需要两个文件:Masm.exe和Link.exe。将这两个文件拷入到已经建好的文件夹(例如 huibian)中,并将文件夹huibian放在硬盘根

目录C :\>下 3)上机步骤 进入DOS窗口中执行。 4)调试程序 进入DEBUG后,调试程序 5)调试成功后重新汇编、连接并生成可执行代码 6)执行程序,并对运行结果截图。 利用冒泡排序求得数组A中元素的最大值最小值的实验结果如下图所示:(说明:输入数据为:13,0,59,900,587,1,657,234,34,48) 利用选择排序对数组A中元素排序得到的序列得实验结果如下图所示:(说明:输入数据为13,0,59,900,587,1,657,234,34,48)

基于MATLAB的循环码实验报告

课程名称:信息论与编码 课程设计题目:循环码的编码和译码程序设计指导教师: 系别:专业: 学号:姓名: 合作者 完成时间: 成绩:评阅人:

一、实验目的: 1、通过实验了解循环码的工作原理。 2、深刻理解RS 码构造、RS 编译码等相关概念和算法。 二、实验原理 1、RS 循环码编译码原理与特点 设C 使某 线性分组码的码字集合,如果对任C c c c C n n ∈=--),,,(021 ,它的循环 移位),,,(1032)1(---=n n n c c c c C 也属于C ,则称该 码为循环码。 该码在结构上有另外的限制,即一个码字任意循环移位的结果仍是一个有效码字。其特点是:(1)可以用反馈移位寄存器很容易实现编码和伴随式的计算;(2)由于循环码有很多固有的代数结构,从而可以找到各种简单使用的译码办法。 如果一个 线性码具有以下的属性,则称为循环码:如果n 元组 },,,{110-=n c c c c 是子空间S 的一个码字,则经过循环移位得到的},,,{201)1(--=n n c c c c 也 同样是S 中的一个码字;或者,一般来说,经过j 次循环移位后得到的 },,,,,,,{11011)(---+--=j n n j n j n j c c c c c c c 也是S 中的一个码字。 RS 码的编码系统是建立在比特组基础上的,即字节,而不是单个的0和1,因此它是非二进制BCH 码,这使得它处理突发错误的能力特别强。 码长:12-=m n 信息段:t n k 2-= (t 为纠错符号数) 监督段:k n t -=2 最小码段:12+=t d 最小距离为d 的本原RS 码的生成多项式为:g(x)=(x-α)(x -α2)(x -α3)…(x -αd -2) 信息元多项式为::m(x)=m0+m1x+m2x2+…+mk -1xk-1 循环码特点有: 1)循环码是线性分组码的一种,所以它具有线性分组的码的一般特性,且具有循环性,纠错能力强。 2)循环码是一种无权码,循环码编排的特点为相邻的两个数码之间符合卡诺中的邻接条件,即相邻数码间只有一位码元不同,因此它具有一个很好的优点是它满足邻接条件,没有瞬时错误(在数码变换过程中,在速度上会有快有慢,中间经过其他一些数码形式,即为瞬时错误)。 3)码字的循环特性,循环码中任一许用码经过牡环移位后,所得到的码组仍然是许用码组。

数据结构-堆栈和队列实验报告

实验二堆栈和队列 实验目的: 1.熟悉栈这种特殊线性结构的特性; 2.熟练并掌握栈在顺序存储结构和链表存储结构下的基本运算; 3.熟悉队列这种特殊线性结构的特性; 3.熟练掌握队列在链表存储结构下的基本运算。 实验原理: 堆栈顺序存储结构下的基本算法; 堆栈链式存储结构下的基本算法; 队列顺序存储结构下的基本算法;队列链式存储结构下的基本算法;实验内容: 3-18链式堆栈设计。要求 (1)用链式堆栈设计实现堆栈,堆栈的操作集合要求包括:初始化Stacklnitiate (S), 非空否StackNotEmpty(S),入栈StackiPush(S,x), 出栈StackPop (S,d),取栈顶数据元素StackTop(S,d); (2)设计一个主函数对链式堆栈进行测试。测试方法为:依次把数据元素1,2,3, 4,5 入栈,然后出栈并在屏幕上显示出栈的数据元素; (3)定义数据元素的数据类型为如下形式的结构体, Typedef struct { char taskName[10]; int taskNo; }DataType; 首先设计一个包含5个数据元素的测试数据,然后设计一个主函数对链式堆栈进行测试,测试方法为:依次吧5个数据元素入栈,然后出栈并在屏幕上显示出栈的数据元素。 3-19对顺序循环队列,常规的设计方法是使用対尾指针和对头指针,对尾指针用于指示当 前的対尾位置下标,对头指针用于指示当前的対头位置下标。现要求: (1)设计一个使用对头指针和计数器的顺序循环队列抽象数据类型,其中操作包括:初始化,入队列,出队列,取对头元素和判断队列是否为空; (2)编写一个主函数进行测试。 实验结果: 3-18 typedef struct snode { DataType data; struct snode *n ext; } LSNode; /* 初始化操作:*/

实验4循环伏安法测定电极反应参数实验报告

华南师范大学实验报告 学生姓名学号2014 专业新能源材料与器件年级、班级2014 课程名称电化学实验实验项目循环伏安法测定电极反应参数实验类型□√验证□设计□综合实验时间2016年4月25日 实验指导老师吕东生实验评分

一、实验目的 1.了解循环伏安法的基本原理及应用 2. 掌握循环伏安法的实验技术和有关参数的测定方法。 二、实验原理 循环伏安法(Cyclic Voltammetry)是一种常用的电化学研究方法。该法控制电极电势以不同的速率,随时间以三角波形一次或多次反复扫描,电势范围是使电极上能交替发生不同的还原和氧化反应,并记录电流-电势曲线。根据曲线形状可以判断电极反应的可逆程度,中间体、相界吸附或新相形成的可能性,以及偶联化学反应的性质等。常用来测量电极反应参数,判断其控制步骤和反应机理,并观察整个电势扫描范围内可发生哪些反应,及其性质如何。对于一个新的电化学体系,首选的研究方法往往就是循环伏安法。该方法使用的仪器简单,操作方便,图谱解析直观,在电化学、无机化学、有机化学、生物化学等许多研究领域被广泛使用。循环伏安法通常采用三电极系统,一支工作电极(被研究物质起反应的电极),,一支参比电极,一支对电极。外加电压在工作电极和辅助电极之间,反应电流通过工作电极与辅助电极。 图1 循环伏安法测得的氧化还原曲线 正向扫描的峰电流i p 与v^0.5和C都成线性关系,对研究电极过程具有重要意义。标准 电极电势为:EΘ=(E pa +E pc )/2。所以对可逆过程,循环伏安法是一个方便的测量标准电极 电位的方法。 三、实验器材 CHI电化学工作站;玻碳电极;铂电极;Hg/Hg2SO4电极;0.1 mol/L VO2+ + 0.1 mol/L VO2+ +3 mol/L H2SO4溶液 四、实验步骤 1. 预处理电极

实验4 循环控制 答案

实验4 循环控制 班级:学号: 姓名:日期: 一、实验目的 (1)熟悉掌握用while语句、do—while语句和for语句实现循环的方法。 (2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 (3)进一步学习调试程序。 二、实验内容 1.while语句 while 语句的一般形式为: while(表达式)语句; while 语句的语义是:计算表达式的值,当值为真(非0)时,执行循环体语句。 编程:求1-100的奇数和。 提示:循环变量的步长值为2。 #include void main() { int i=1,sum=0; while(i<=100) { sum=sum+i; i=i+2; } printf("sum=%d\n",sum); } 2.do-while语句 do-while 语句的一般形式为: do { 语句; }while(表达式);

do-while 语句的语义是:先执行循环体语句一次,再判别表达式的值,若为真(非0)则继续循环,否则终止循环。 编程:求1—100的偶数和。 #include void main() { int i=0,sum=0; do { i=i+2; sum=sum+i; }while(i<100); printf("sum=%d\n",sum); } 3.for语句 其一般形式为: for(表达式1;表达式2;表达3) 语句; for 语句的语义是: ⑴首先计算表达式1 的值。 ⑵再计算表达式2 的值,若值为真(非0)则执行循环体一次,否则结束循环。 ⑶执行循环体后再计算表达式3 的值,转回第2 步重复执行。 下列程序用于输出fibnocci 数列的前20 项,每行输出5 个。请填空。 说明:fibnocci 数列的前两项均为1,以后各项等于其前两项之和。 #include void main( ) { int i,f1,f2,f3,n; f1=1;f2=1; printf("\n%d %d ",f1,f2); n=2; for(i=1; i<=18 ;i++) { if (n % 5==0 ) printf("\n"); f3=f1+f2 ; printf("%d ",f3); n++;` f1=f2;f2=f3; } }

队列实验报告

一.实验项目名称 循环队列和链式队列的创建 二、实验目的 1、掌握队列的特点 (先进先出 FIFO) 及基本操作 ,如入队、出队等, 2、队列顺序存储结构、链式存储结构和循环队列的实现,以便在 实际问题背景下灵活应用。 三、实验内容 1.链式队列的实现和运算 2.循环队列的实现和运算 四、主要仪器设备及耗材 VC++6.0 运行环境实现其操作 五.程序算法 (1)循环队列操作的算法 1>进队列 Void enqueue (seqqueue &q, elemtype x) { if ((q.rear+1)%maxsize = = q.front) cout<< ” overflow”; else { q.rear=(q.rear+1)%maxsize; // 编号加 1 或循环回第一个单元 q.queue[q.rear]=x; } } 2>出队列 Void dlqueue(seqqueue &q ) { if (q.rear= =q.front)cout<< ” underflow”; else q.front =(q.front+1)%maxsize; } 3>取对头元素

elemtype gethead(seqqueue q ) { if(q.rear= =q.front) { cout<<” underflow;” return NULL;} else return q.queue[(q.front+1)%maxsize]; //front 指向队头前一个位置 } 4>判队列空否 int empty(seqqueue q ) { if (q.rear= =q.front) else return 0; reurn 1; } (2).链队列操作的算法 1>.链队列上的初始化 void INIQUEUE( linkqueue&s) {link *p; p=new link; p->next=NULL;//p 是结构体指针类型,用 s.front=p;//s 是结构体变量,用. s.rear=p;//头尾指针都指向头结点 -> } 2>.入队列 void push(linkqueue &s, elemtype x) { link*p;//p 是结构体指针类型,用-> p=new link; p->data=x; p->next=s.rear->next;//s 是结构体变量,用s.rear->next=p; s.rear=p;//插入最后 . } 3>判队空 int empty( linkqueue s ) {if (s.front= =s.rear) return 1; else return 0; } 4>.取队头元素 elemtype gethead( linkqueue s ) { if (s.front= =s.rear) else retuen return NULL; s.front->next->data; }

循环伏安法实验报告(有测定电极有效面积)

循环伏安法实验 【实验目的】 学习和掌握循环伏安法的原理和实验技术。 了解可逆波的循环伏安图的特性以及测算玻碳电极的有效面积的方法。 【实验原理】 循环伏安法是在固定面积的工作电极和参比电极之间加上对称的三角波扫 描电压(如图1),记录工作电极上得到的电流与施加电位的关系曲线(如图2),即循环伏安图。从伏安图的波形、氧化还原峰电流的数值及其比值、峰电位等可以判断电极反应机理。 与汞电极相比,物质在固体电极上伏安行为的重现性差,其原因与固体电极的表面状态直接有关,因而了解固体电极表面处理的方法和衡量电极表面被净化的程度,以及测算电极有效表面积的方法,是十分重要的。一般对这类问题要根据固体电极材料不同而采取适当的方法。 对于碳电极,一般以Fe(CN) 63-/4- 的氧化还原行为作电化学探针。首先,固体 电极表面的第一步处理是进行机械研磨、抛光至镜面程度。通常用于抛光电极的 材料有金钢砂、CeO 2、ZrO 2 、MgO和α-Al 2 O 3 粉及其抛光液。抛光时总是按抛 光剂粒度降低的顺序依次进行研磨,如对新的电极表面先经金钢砂纸粗研和细磨 后,再用一定粒度的α-Al 2O 3 粉在抛光布上进行抛光。抛光后先洗去表面污物, 再移入超声水浴中清洗,每次2~3分钟,重复三次,直至清洗干净。最后用乙 醇、稀酸和水彻底洗涤,得到一个平滑光洁的、新鲜的电极表面。将处理好的碳 图2:循环伏安曲线(i—E曲线)

电极放入含一定浓度的K 3Fe(CN)6和支持电解质的水溶液中,观察其伏安曲线。如得到如图2所示的曲线,其阴、阳极峰对称,两峰的电流值相等(i pc / i pa =1),峰峰电位差ΔE p 约为70 mV (理论值约59/n mV ),即说明电极表面已处理好,否则需重新抛光,直到达到要求。 有关电极有效表面积的计算,可根据Randles-Sevcik 公式: 在25°C 时,i p =(2.69×105 )n 3/2 AD o 1/2ν1/2 C o 其中A 为电极的有效面积(cm 2 ),D o 为反应物的扩散系数(cm 2 /s),n 为电极反应的电子转移数,ν为扫速(V/s ),C o 为反应物的浓度(mol/cm 3 ),i p 为峰电流(A )。 【仪器和试剂】 1. CHI 660D 电化学系统,玻碳电极(d = 4mm ) 为工作电极,银/氯化银电极为参比电极,铂片电极为辅助电极; 2. 固体铁氰化钾、H 2SO 4 溶液、高纯水; 3. 100 mL 容量瓶、50 mL 烧杯、玻棒。 【实验内容】 1. 配制5 mM K 3Fe(CN)6 溶液(含0.5 M H 2SO 4),倒适量溶液至电解杯中; 2. 将玻碳电极在麂皮上用抛光粉抛光后,再用蒸馏水清洗干净; 3. 依次接上工作电极(绿)、参比电极(白)和辅助电极(红); 4. 开启电化学系统及计算机电源开关,启动电化学程序,在菜单中依次选择Setup 、Technique 、CV 、Parameter ,输入以下参数: 5. 点击Run 开始扫描,将实验图存盘后,记录氧化还原峰电位E pc 、E pa 及峰电流I pc 、I pa ; 6. 改变扫速为0.05、0.1 和0.2 V/s ,分别作循环伏安图; 7. 将4个循环伏安图叠加比较; Init E (V) 0.8 V Segment 2 High E (V) 0.8 V Smpl Interval (V) 0.001 Low E (V) ?0.2 V Quiet Time (s) 2 Scan Rate (V/s) 0.02 V Sensitivity (A/V) 5e?5

实验报告-循环伏安法测定亚铁氰化钾

循环伏安法测定亚铁氰化钾 实验目的 (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.2 0.00.20.4 0.60.8 -0.0005 -0.0004-0.0003-0.0002-0.00010.0000 0.00010.00020.0003i pa i pc I /m A E /V vs.Hg 2Cl 2/Hg,Cl - 起始电位:(-0.20V) 终止电位:(0.80 V) 溶液中的溶解氧具有电活性,用通入惰性气体除去。 仪器与试剂 MEC-16多功能电化学分析仪(配有电脑机打印机);金电极;铂丝电极;饱和甘汞电极; 容量瓶:250 mL 、100mL 各2个,25 mL 7个。 移液管:2、5、10mL 、20mL 各一支。 NaCl 溶液、K 4[Fe(CN)6]、、Al 2O 3粉末(粒径0.05 μm ) 实验步骤

1、指示电极的预处理 金电极用金相砂纸细心打磨,超声波超声清洗,蒸馏水冲洗备用。 2、溶液的配制 配制0.20 mol/L NaCl溶液250mL,再用此溶液配制0.10 mol/L的K4[Fe(CN)6]溶液100mL备用。 3、支持电解质的循环伏安图 在电解池中,放入25mL 0.2 mol·L-1 NaCl溶液,插入电极,以新处理的铂电极为工作电极,铂丝电极为辅助电极,饱和甘汞电极为参比电极,进行循环伏安仪设定,扫描速率为0.1V/s;起始电位为-0.20V,终止电位为0.80V。开始循环伏安扫描. 4、K4 [Fe(CN)6]溶液的循环伏安图 在-0.20至0.80V电位范围内,以0.1V/s的扫描速度分别作0.01 mol·L-1、0.02 mol·L-1、0.04 mol·L-1、0.06 mol·L-1、0.08 mol·L-1的K4 [Fe(CN)6]溶液(均含支持电解质NaCl浓度为0.20mol·L-1)循环伏安图 5、不同扫描速率K4 [Fe(CN)6]溶液的循环伏安图 在0.08 mol·L-1 K4 [Fe(CN)6]溶液中,以0.1V/s、0.15 V/s、0.2V/s、0.25 V/s、0.3V/s、0.35V/s,在-0.20至0.80V电位范围内扫描,做循环伏安图 数据处理 1、从K4[Fe(CN)6]溶液的循环伏安图,测量i pa、i pc值。 -1;起始电位为-0.20V,终止电位为0.80V) 2、分别以i pa和i pc对K4[Fe(CN)6]溶液浓度c作图,说明峰电流与浓度的关系。

实验四 循环结构程序设计(答案)

实验四循环结构程序设计(解答) 1.改错题 (1)下列程序的功能为:求1~100之和(和值为5050)并输出。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_1.c存盘。 #include main() { int i,sum=0; i=1; while(i<100) sum=sum+i; i++; printf(“The sum from 1 to 100 is %d\n”,sum); } 改正后的程序: #include main() { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf("The sum from 1 to 100 is %d\n",sum); } (2)下列程序的功能为:倒序打印26个英文字母。请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_2.c存盘。 #include main() { char x; x='z'; while(x!='a') { printf("%3d",x); x++; } }

改正后的程序: #include main() { char x; x='z'; while(x!='a'-1) 或while(x>='a') 或while(x!=96) { printf("%3c",x); x- -; } } (3)下列程序的功能为:输出如下的图形,要求顶端的*定位在第21字符位置,请纠正程序中存在错误,使程序实现其功能,程序以文件名sy4_3.c存盘。 * *** ***** ******* #include void main() { int i,j; for (i=0;i<4;i++) { for (j=0;j<=20;j++) printf("\n"); for (j=0;j<2*i+1;j++) printf("*"); } } 改正后的程序: #include void main() { int i,j; for (i=0;i<4;i++) { for (j=0;j<=20-i;j++) printf(" "); for (j=0;j<2*i+1;j++) printf("*"); printf("\n"); } } 2.程序填空 (1)下列程序的功能为:用辗转相除法求两个正整数的最大公约数;请填写适当的符号或语句,使程序实现其功能,程序以文件名sy4_4.c存盘。 提示:

数据结构-队列实验报告

《数据结构》课程实验报告 一、实验目的和要求 (1)熟悉C语言的上机环境,进一步掌握C语言的结构特点。 (2)掌握队列的顺序表示和实现。 二、实验环境 Windows7 ,VC 三、实验内容及实施 实验三:队列 【实验要求】 构建一个循环队列, 实现下列操作 1、初始化队列(清空); 2、入队; 3、出队; 4、求队列长度; 5、判断队列是否为空; 【源程序】 #include #define MAXSIZE 100 #define OK 1; #define ERROR 0; typedef struct { int *base; int front; int rear; }SqQueue;//队列的存储结构 int InitQueue(SqQueue &Q) {

Q.base=new int[MAXSIZE]; Q.front=Q.rear=0; return OK; }//队列的初始化 int EnQueue(SqQueue &Q,int e) { if((Q.rear+1)%MAXSIZE==Q.front) return ERROR; Q.base[Q.rear]=e; Q.rear=(Q.rear+1)%MAXSIZE; return OK; }//队列的入队 int DeQueue(SqQueue &Q,int &e) { if(Q.front==Q.rear) return ERROR; e=Q.base[Q.front]; Q.front=(Q.front+1)%MAXSIZE; return OK; }//队列的出队 int QueueLength(SqQueue &Q) { int i; i=(Q.rear-Q.front+MAXSIZE)%MAXSIZE; return i; }//求队列长度 void JuQueue(SqQueue &Q) { if(Q.rear==Q.front) printf("队列为空"); else printf("队列不为空"); }//判断队列是否为空 void QueueTraverse(SqQueue &Q)

实验4 循环设计

汇编语言程序设计实验 <四> 1.循环程序设计实验 1.1. 实验目的 (1)掌握循环程序的设计方法。 (2)掌握比较指令、转移指令和循环指令的使用方法。 (3)进一步掌握调试工具的使用方法。 1.2. 预习要求(实验前完成) (1)复习比较指令、条件转移指令和循环指令。 (2)复习循环程序的结构、循环控制方法等知识。 (3)读懂“实验内容”中给出的源程序,并完成程序,以便上机调试。 (4)任选一道“实验习题”编写源程序,以便在实验时进行验证。 1.3.实验内容 计算1+2+…+n=?,其中n通过键盘输入,累加和小于216。要求在屏幕上提供如下信息: Please input a number(1~627): 1+2+…+n=sum 其中,n为累加个数,sum为累加和。 (1)编程指导 ①键盘输入的十进制数,如368在计算机中是以33H,36H,38H形式存放的,如何 将它们转换为一个二进制数101110000B,以便对累加循环的循环次数进行控制,是本程序首先要解决的问题。将键盘输入的十进制数转换为二进制数的程序如下。 DA TA SEGMENT INF1 DB “Please input a number(0-65535):$” IBUF DB 7, 0, 6 DUP(?) DA TA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DA TA START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET INF1 MOV AH, 09H INT 21H

MOV DX, OFFSET IBUF MOV AH, 0AH INT 21H MOV CL, IBUF+1 MOV CH, 0 MOV SI, OFFSET IBUF+2 MOV AX, 0 AGAIN: MOV DX, 10 MUL DX AND BYTE PTR [SI], 0FH ADD AL, [SI] ADC AH, 0 INC SI LOOP AGAIN MOV AH, 4CH INT 21H CODE ENDS END START 本程序功能:从键盘接收一个无符号十进制整数(小于65535),将其转换为二进制数,转换结果存放在AX寄存器中。 ②累加结果为一个16位的二进制数,为了显示结果,必须把它们转换为十进制数。 将二进制数转换为十进制数的程序如下。 DA TA SEGMENT OBUF DB 6 DUP(?) DA TA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DA TA START: MOV AX, DATA MOV DS, AX MOV BX, OFFSET OBUF+5 MOV BYTE PTR [BX], ‘$’ MOV CX, 10 LOOP1: MOV DX, 0 DIV CX ADD DL, 30H DEC BX MOV [BX], DL OR AX, AX JNZ LOOP1 MOV DX, BX MOV AH, 09H INT 21H MOV AH, 4CH

队列的表示及实现实验报告

陕西科技大学实验报告 班级信工082 学号200806030202 姓名李霄实验组别 实验日期2010-12-20 室温报告日期2010-12-20 成绩 报告内容:(目的和要求,原理,步骤,数据,计算,小结等) 实验名称:实验三队列的表示及实现 实验目的: 1、通过实验进一步理解队列的“先进先出”特性。 2、掌握队列的逻辑结构及顺序存储结构和链式存储结构。 3、熟练运用C语言实现队列的基本操作。 4、灵活运用队列解决实际问题。 实验内容: 1、实现链队列,并编写主函数进行测试。测试方法为:依次10、20、 30、40,然后,出对3个元素。再次入队50、60,然后出队3个元 素。查看屏幕上显示的结果是否与你分析的结果一致。 2、在1的基础上,再出队1个元素。查看屏幕上显示的结果是否与你 分析的结果一致。 3、编写主函数比较取队头元素操作和出队操作。 实验学时:2学时 实验程序 #include "stdio.h" #include "conio.h" typedef int DataType; typedef struct { DataType data; struct QNode* next; }LQNode,*PQNode; typedef struct { PQNode front,rear; }LinkQueue; int InitQueue(LinkQueue *Q) { Q->front=Q->rear=(PQNode)malloc(sizeof(LQNode));

if (!Q->front){printf("errors\n");return 0;} Q->front->next=NULL; return 1; } int QueueEmpty(LinkQueue Q) { if(Q.front==Q.rear) return 1; else return 0; } int EnQueue(LinkQueue *Q,DataType e) { PQNode p; p=(PQNode)malloc(sizeof(LQNode)); if(!p) { printf("\n\nerrors\n\n"); return 0; } p->data=e; p->next=NULL; Q->rear->next=p; Q->rear=p; return 1; } int DeQueue(LinkQueue *Q,DataType *e) { PQNode p; if( Q->front==Q->rear) { printf("\nerrors\n");

循环伏安法实验数据处理

六、实验数据处理 1、从K 3Fe (CN )6溶液的循环伏安法图测定ipa 、ipc 和ψpc 、ψpa 值。 表1、pt 做电极得到的不同浓度溶液峰电位和峰电流 表2、不同扫描速率下1.00×10-3mol/L K 3Fe (CN )6溶液的峰电位和峰电流 2、分别以ipa 和ipc 对υ1/2作图,说明峰电流与扫描速率间的关系。 表3、数据处理表1 K 3Fe (CN)6浓度(mol/L ) ipc (A) ipa(A) ψpc(V) ψpa(V) 5.00×10-4 2.64E-06 1.71E-06 0.168 0.258 1.00×10-3 5.17E-06 4.22E-06 0.177 0.257 5.00×10-3 2.18E-05 2.13E-05 0.171 0.265 1.00×10-2 4.94E-05 4.77E-05 0.174 0.265 扫描速率υ(V/s ) ipc (A) ipa(A) ψpc(V) ψpa(V) 0.02 3.55E-06 3.23E-06 0.213 0.282 0.04 4.43E-06 4.11E-06 0.212 0.282 0.06 5.49E-06 5.10E-06 0.213 0.282 0.08 6.35E-06 5.66E-06 0.212 0.284 0.10 7.11E-06 6.52E-06 0.216 0.283 0.15 8.57E-06 7.96E-06 0.214 0.282 0.20 9.84E-06 8.95E-06 0.213 0.284 扫描速率υV/s υ1/2 ipc (A) ipa(A) 0.02 0.141 3.55E-06 3.23E-06 0.04 0.200 4.43E-06 4.11E-06 0.06 0.245 5.49E-06 5.10E-06 0.08 0.283 6.35E-06 5.66E-06 0.10 0.316 7.11E-06 6.52E-06 0.15 0.387 8.57E-06 7.96E-06 0.20 0.447 9.84E-06 8.95E-06

最新实验四分支循环结构程序设计

实验四分支循环结构 程序设计

实验四、分支循环结构程序设计 一、实验目的 1.通过本实验,加深对循环控制结构有关概念的理解。 2.熟练掌握while、do-while和for三种循环控制语句的特点,掌握循环结构程序设计和调试方法。 3.掌握二重循环结构程序的设计方法。 二、实验内容 1.用while循环实现数据统计问题。 数据统计问题:从键盘输入一批任意数量的整数,统计其中不大于100的非负数数值的个数。 2.编写并调试程序,使用do-while循环控制语句实现上面的数据统计问题。调试数据仍参照上面给出的几种情况设计使用。 3.编写并调试程序,使用for循环控制语句实现上面的数据统计问题。4.阶乘累加问题。编写程序,求1+2!+3!+…+n!的值(习题5.9)。三、实验指导 1.用while循环实现数据统计问题。 ⑴编程分析 由于输入数据个数是不确定的,因此每次执行程序时,循环次数都是不 确定的。在进行程序设计时,确定循环控制的方法是本实验的一个关键 问题。循环控制条件可以有多种确定方法: ①使用一个负数作为数据输入结束标志。 ②输入一个数据后通过进行询问的方式决定是否继续输入下一个数据。 ⑵参考程序 l 参考程序一 /* 使用负数作为数据输入结束标志的程序 */ #include "stdio.h" void main() { int m,counter=0; while(1) { printf("请输入一个整数:"); scanf("%d",&m); if(m<0)break; if(m<=100)counter++; printf("\n"); } printf("符合要求的整数个数为: %d\n",counter); } l 参考程序二 /* 通过进行询问的方式决定是否继续输入下一个数据的程序 */ #include "stdio.h" void main() { int m,counter=0; char ask; while(1) { printf("请输入一个整数:"); scanf("%d",&m);

实验十 循环伏安法分析

实验十循环伏安法分析 一、实验目的 1.仔细阅读理解本讲义和相关资料,掌握循环伏安法的基本原理。 2.熟练使用循环伏安法分析的实验技术。 二、实验原理 循环伏安法(Cyclic Voltammetry, 简称CV)往往是首选的电化学分析测试技术,非常重要,已被广泛地应用于化学、生命科学、能源科学、材料科学和环境科学等领域中相关体系的测试表征。 现代电化学仪器均使用计算机控制仪器和处理数据。CV测试比较简便,所获信息量大。采用三电极系统的常规CV实验中,工作电极(The Working Electrode, 简称WE)相对于参比电极(the Reference Electrode,简称RE)的电位在设定的电位区间内随时间进行循环的线

表1. 图1的实验条件和一些重要解释

零,所以RE的电位在CV实验中几乎不变,因此RE是实验中WE电位测控过程中的稳定参比。若忽略流过RE上的微弱电流,则实验体系的电解电流全部流过由WE和对电极(The Counter Electrode,简称CE)组成的串联回路。WE和CE间的电位差可能很大,以保证能成功地施加上所设定的WE电位(相对于RE)。CE也常称为辅助电极(The Auxiliary Electrode, 简称AE)。 分析CV实验所得到的电流-电位曲线(伏安曲线)可以获得溶液中或固定在电极表面的组分的氧化和还原信息,电极|溶液界面上电子转移(电极反应)的热力学和动力学信息,和电极反应所伴随的溶液中或电极表面组分的化学反应的热力学和动力学信息。与只进行电位单向扫描(电位正扫或负扫)的线性扫描伏安法(Linear Scan Voltammetry,简称LSV)相比,循环伏安法是一种控制电位的电位反向扫描技术,所以,只需要做1个循环伏安实验,就可既对溶液中或电极表面组分电对的氧化反应进行测试和研究,又可测试和研究其还原反应。 循环伏安法也可以进行多达100圈以上的反复多圈电位扫描。多圈电位扫描的循环伏安实验常可用于电化学合成导电高分子。 图1为3 mmol L-1 K4Fe(CN)6 + 0.5 mol L-1 Na2SO4水溶液中金电极上的CV实验结果。实验条件和一些重要的解释列于表1中。 三、仪器和试剂 仪器:CHI400电化学工作站 磁力搅拌器 铂片工作电极 铅笔芯对电极 KCl饱和甘汞电极 试剂:K3Fe(CN)6(分析纯或优级纯) KNO3(分析纯或优级纯) 溶液及其浓度:1.0 mol L-1 KNO3水溶液。实验中每组学员使用30.0 mL。 0.100 mol L-1 K3Fe(CN)6水溶液储备液。实验中每组学员使用100 L微量注射 器依次注射适量体积的0.100 mol L-1 K3Fe(CN)6水溶液到30 mL的1.0 mol L-1 KNO3水溶液中,详见如下4.3.节。

实验四 循环结构

实验报告 班级:电信13-1班学号:130******** 姓名:谢朗星成绩: 实验四循环结构 一、实验目的 1.掌握循环结构C程序的编写和调试方法。 2.掌握循环结构C程序中使用while语句和do while语句。 二、实验内容和步骤 1.调试下面三个程序,分析执行的结果。 1. #include int main( ) { int sum=0,i=1; while(i<=100) { sum=sum+i; i++; } printf(“%d\n”,sum); return 0; } 5050 在该程序中,先判断i是否<=100,如果是,在循环体先执行了sum=sum+i,接着再执行i++,然后再返回判断i是否<=100,接着再重复上步骤,直到i>100,然后输出最终结果,结束该程序。 2. #include int main( ) { int sum=0,i=1; while(i<=100) { sum=sum+i; i++; printf(“%d\n”,sum);} return 0;

} 在该程序中,先判断i是否<=100,如果是,在循环体先执行了sum=sum+i,接着再执行i++,然后输出当次运行的结果,然后再返回判断i是否<=100,接着再重复上步骤,直到i>100,结束该程序。 3.#include int main( ) { int sum=0,i=1; do { sum=sum+i; i++; printf(“%d\n”,sum); }while(i<=100); return 0; } 在该程序中,在循环体中先执行了sum=sum+i,接着再执行i++,然后输出当次运行的结果,接着再判断i是否<=100,如果是,返回执行循环体,接着再重复上步骤,直到i>100,结束该程序。 2.编写如下2道题目的程序,要求详细写出程序编写、编译、运行的过程,源程序关键执 行语句需要给出注释。 (a)统计全单位人员的平均工资。单位的人数不固定,工资数从键盘先后输入,当输入-1 时表示输入结束(前面输入的是有效数据) 分析:循环执行的条件while(i!=-1) , 循环结束条件是单位的人数n,循环体采用累加的方法。 (b)求∑= 20 1 n !n 分析:循环体采用累加和累乘。(a) #include int main() {

讲义实验七循环伏安法

循环伏安法 【实验目的】 学习固体电极表面的处理方法; 掌握循环伏安仪的原理和测量技术; 了解扫描速率和浓度对循环伏安图的影响 【实验原理】 循环伏安法(CV )是最重要的电分析化学研究方法之一。该方法使用的仪器简单,操作方便,图谱解析直观,在电化学、无机化学、有机化学、生物化学等许多 研究领域被广泛应用。 循环伏安法通常采用三电极系统,一支工作电极(被研究物质起反应的电极),一支参比电极(监测工作电极的电势),一支辅助(对)电极。外加电压加在工作电极与辅助电极之间,反应电流通过工作电极与辅助电极。 对可逆电极过程(电荷交换速度很快),如一定条件下的Fe(CN)63-/4-氧化还原体系,当电压负向扫描时,Fe(CN)63- 在电极上还原,反应为: Fe(CN)63-+e - → Fe(CN)64- 得到一个还原电流峰。当电压正向扫描时,Fe(CN) 64-在电极上氧化,反应为: Fe(CN)64- - e - → Fe(CN)63- 得到一个氧化电流峰。所以,电压完成一次循环扫描后,将记录出一个如图7-2所示的氧化还原曲线。扫描电压呈等腰三角形,如图7-1所示。如果前半部扫描(电压上升部分)为去极化剂在电极上被还原的阴极过程,则后半部扫描(电压下降部分)为还原产物重新被氧化的阳极过程。因此.一次三角波扫描完成一个还原过程和氧化过程的循环,故称为循环伏安法。如图7-2所示,电流随电势的变化而逐渐加大,反应速率逐渐加快,当电极表面的反应物的浓度由于浓度极化的影响,来不及供应时,电极表面反应物的浓度变为零,出现峰值电流I p ,所以就整个循环伏安图而言,循环一周有阴极峰值电流I p,c 和阳极峰值电流I p,a ,与峰值电流相对应的电势称为峰值电势。E p,c 和E p,a 分别是阴极峰值电势和阳极峰值电势,它们是循环伏安法中最重要的参数。 对于符合Nernst 方程的可逆电极反应,i p.a / i p.c ≈ 1 在25℃时 )(63 57mv n E E E pc pa p -= -=?表明此时的峰值电势差在 )(63 57mv n -之间。

实验项目四结构化程序设计_循环结构

《程序设计基础I》实验报告实验项目四:结构化程序设计_循环结构

一、实验目的及要求 (1)熟悉掌握用while语句,do-while语句和for语句实现循环的方法。 (2)掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。 (3)掌握多重循环的选择时机和使用方法; (4)掌握使用break和continue语句的方法。 二、实验设备(环境)及要求 使用Visual C++ 6.0;windows系列操作系统的环境。 三、实验内容与步骤(要求以“学号_姓名_题号”为名建立项目; 例项目名为:2013050201_***_01) 1.分别用while、do-while、for语句编程,求数列前20项之和:2/1,3/2,5/3,8/5,13/8······算法提示: 1)定义实变量sum、term、a、b、c,整变量i 2)初始化:sum=0,分子a=2,分母b=1 3)初始化:i(计数器)=1 4)计算第i项term =a/b 5)累加sum=sum+term 6)计算c=a+b,更新b= a,更新a=c 7)计数器加1,i++ 8)重复4、5、6、7,直到i>20 9)输出2位精度的结果

把每一次迭代结果输出,程序应做怎样的修改? 3输入正数n ,要求输出Fibonacci 数列的前n 项。1,1,2,3,5,8…… #include 开始 结束 term=0 sum=0 i=1 i ≤20? i=i+1 sum=sum+term term=term *i 输出sum 是 否 #include int main() {float term,sum;int i; term=1,i=1,sum=0; while(i<=20) {term=term*i; sum=sum+term; printf("sum=%.1f\n",sum); i++; } printf("sum=%f\n",sum); return 0; }

相关文档
最新文档