“电导法测定碳酸钡的溶解度”实验数据处理程序的研发*
2022-08-16王松涛任庆云孟波波
王松涛,李 静,张 婷,任庆云,郭 露,孟波波
(集宁师范学院化学与化工学院,内蒙古 乌兰察布 012000)
世界上第一台电子计算机ENIAC于1946年诞生于美国,当时其主要用在计算导弹的弹道方面。20世纪50年代,由于电子计算机有较大的体积,制作计算机的造价高等多种原因,其主要应用在军事部门和大型科研机构,1958年平面率导体集成电路的横空出世催生了新生的微电子技术,很大地推动了计算机元器件集成等工艺技术的发展[1]。随着计算机的结构不断微型化,第一台个人计算机于1982年诞生。自此之后,计算机的应用由军事部门、科研机构逐步转入向普通企业和家庭,其应用也由单一的军事需求向多元化发展。从世界上第一台计算机出现一直到现在,其经过很长时间的发展,时至今日,计算机的外形和核心技术方面都有很大的创新,其主要包括在运行速度、性能优化、体积缩小以及应用前景开发等几个方面的发展。现在计算机无论是在军事领域、教育领域还是在商业领域都很大程度满足了不同人的需求。
科学技术是第一生产力,日新月异的计算机技术在潜移默化的影响着人类的生活生产方式,就拿在教学方面来说,计算机在课堂上的出现,逐步摆脱了传统的“教师—黑板—教科书—学生”的教学模式。无论是对于教师还是学生都有一定的好处[2]。计算机技术逐步成为社会的重要生产力,并且在人类社会发展过程中有着举足轻重的地位,在计算机与日常生活、科技、教育、军事等诸多方面都有很好的体现。
Visual Basic是微软公司推出的可视化编程工具MSDN之一,是目前全国上使用最广泛的程序开发工具。Visual Basic是首批采用事件驱动编程机制的计算机语言之一,它是在BASIC语言的基础上发展起来,至今包含了数百条语句、函数及关键词。其程序编程完成后,可以直接编译生成可执行文件(EXE),脱离Visual Basic环境,直接在Windows环境下运行的一种可视化、面向对象和采用事件驱动方式的结构化的高级程序设计语言,可用于开发Windows环境下的各类应用程序。同时为用户提供了一个直观、图形丰富的工作环境。它简单易学、效率高、功能强大。专业人员可以用Visual Basic实现其他任何Windows编程语言的功能,而初学者只要掌握几个关键词就可以建立使用前的应用程序[3-7]。
Visual Basic语言是计算机最广泛使用的语言之一,它与教学的研究十分紧密,尤其是在一些计算复杂的教学实验中,利用Visual Basic语言编写程序,在一定程度上节约了时间,使研究者更及时、更便捷的得到真实的、精准的实验数据。在物理化学实验教学中,人工处理起来较复杂的繁冗的数据使用计算机处理,以提高物理化学教学的现代化、科学化程度。由王桂香和韩恩山撰写的“Visual Basic语言编程物理化学实验数据处理程序的实践”一文中就以液体饱和蒸汽压的测定为例进行了阐述,利用Visual Basic语言和最小二乘法结合,设计出实验数据处理程序,使处理的结果精准,做出来的图像更清晰,美观,并能打印出数据结果和图形[8]。另外由任庆云、王松涛等[9]撰写的“钢中锰含量的测定实验的数据处理方法”一文中,同样也是采用Visual Basic 6.0语言结合最小二乘法直线拟合方法开发了“钢中锰含量的测定”实验的数据处理软件,同样设计出程序能够得到科学准确的数据处理结果,并能打印出图形。此类论文研究还有很多,他们的实验,为本文实验设计提供了理论方法和实验基础。
碳酸钡又叫沉淀碳酸钡、毒重石、纳米碳酸钡、高纯碳酸钡、碳酸钡矿等。碳酸钡是重要的无机化工产品之一,我国碳酸钡的生产主要采用碳化法、复分解法和毒重石法。碳酸钡储存于阴凉、通风的库房,远离火种、热源,包装密封,应与酸类、食用化学品分开存放,不能混储。其大体上可分为粉状碳酸钡、粒状碳酸钡(俗称粒钡)和具有特殊用途的高纯碳酸钡[10]。碳酸钡广泛应用于显像管、橡胶、焊条、水处理蓄电池、油漆、光学玻璃、颜料、电容器、陶瓷、涂料、高层建筑用砖及其钡盐制造等行业。近几年随着科技不断地进步与发展,碳酸钡的应用越来越广泛,国内汽车、建筑业的发展及家电行业的繁荣,使得人们对磁性材料、无线电元件及工业卫生陶瓷的需求不断增长,因此对碳酸钡的需求量也有所增长。而对于国外的一些碳酸钡生产国如日本、美国、德国来说,由于其国家的矿脉枯竭、能源费用上涨、环境污染等因素,碳酸钡产量逐年下降,因此碳酸钡的数量越来越不能满足其生产研究的需要,这就使得越来越多的外国企业不断和我国碳酸钡企业合资建厂[11],这就意味着碳酸钡市场将出现一个新的消费高峰。人们关于碳酸钡的研究大多集中在生产和用途方面[12],有关有关其溶解度方面的研究不多。
本文充分将化学学科和计算机技术的紧密融合,采用实验方法电导法测定碳酸钡的溶解度实验数据,采用Visual Basic 6.0语言进行计算机程序研发,从而可以快速处理该实验的实验数据,节约教师和学生大量的计算时间,有效地辅助教学,为教学评价提供可靠的依据。
1 电导法测定碳酸钡的溶解度实验原理
碳酸钠溶液和氯化钡溶液混合,可以得到碳酸钡溶液。
Na2CO3+BaCl2=BaCO3↓+2NaCl
本实验测定碳酸钡的溶解度。直接用电导率仪测定碳酸钡饱和溶液的电导率k(溶液)和配制溶液所用水的电导率k(水)。因溶液极稀,难溶盐的电导率较小,故水的电导率不能被忽略,因此,难溶盐的电导率为:
k(BaCO3)=k(溶液)-k(水)
式中c是难溶盐的饱和溶液的浓度。
碳酸钡的溶解度的计算:在溶液中,由于溶液极稀,溶液的质量近似等于溶剂水的质量,已知水在各个温度下的密度,则可计算出碳酸钡在各个温度下的质量摩尔浓度,质量摩尔浓度乘以摩尔质量就是碳酸钡在这个温度下的溶解度[14]。
2 “电导法测定碳酸钡的溶解度”实验数据处理程序
2.1 程序的使用说明
用户首先打开程序,进入程序主界面(如图1所示),其次需要选择实验的条件,是某一温度下还是多个温度下测定碳酸钡的溶解度,如若实验条件是在某一温度下,则选择相对应的按钮,进入“电导法测定碳酸钡溶解度(某一温度下)”实验数据处理程序界面,按顺序输入实验数据(如图2所示)。按“计算”按钮,可得到数据计算结果(如图3所示),再可单击“打印”菜单可打印出计算结果。如若实验条件是多个温度下,选择相对应的按钮,进入“电导法测定碳酸钡溶解度(多个温度下)”实验数据处理程序界面,按顺序输入实验数据(如图4所示),分别按“计算”按钮和“绘图”按钮,可得到实验数据结果(如图5所示)和相应的图形(如图6所示),再分别单击“打印”菜单可打印出计算结果和图形。
图1 程序主界面Fig.1 Program main interface
图2 (某一温度下)输入数据界面Fig.2 Data input interface at a certain temperature
图3 (某一温度下)实验数据处理结果界面Fig.3 Data computing interface at a certain temperature
图4 (多个温度下)数据输入界面Fig.4 Data input interface at multiple temperatures
图5 (多个温度下)实验数据处理结果界面Fig.5 Data computing interface at multiple temperature
图6 (多个温度下)数据处理结果图形界面Fig.6 Graphical interface at multiple temperature
2.2 程序源代码
“电导法测定碳酸钡的溶解度”实验数据处理程序的主要程序源代码如下:
Private Sub Command1_Click() ′ 程序选择界面
If Option1 Then ′ 选择单选按钮1,窗体2显示
Form2.Show
End If
If Option2 Then ′ 选择单选按钮Optin2,窗体4显示
Form4.Show
End If
End Sub
Private Sub Command2_Click() ′ 单击退出按钮
Unload Me ′ 卸载当前窗体
End ′ 程序结束
End Sub
Dim sm(10), sdda(10), sddb(10), sddc(10), sddd(10), sdde(10), rdda(10), rddb(10), rddc(10), rddd(10), rdde(10), sddp(10), rddp(10), yd(10), yds(10), c(10), rjd(10), ksp(10), wd(10), y(10) ′ 定义数组
Dim n As Integer ′ 定义变量长整型
Private Static Sub jtd1() ′ 定义子程序jtd1()
Text1.Text =“” ′ 将文本框Text1的Text属性赋值为空值
…
End Sub
…
Private Sub Command3_Click() ′ 单击清除按钮,清除各文本框内容
Call jtd1 ′ 调用子程序jtd1()
Call jtd2
End Sub
…
Private Sub Form_Load() ′ 窗体初始化
Call jtd1
Call jtd2
End Sub
…
Private Sub Command1_Click() ′ 计算实验数据部分程序代码
Form5.Cls ′ Form5窗体清除
Form5.Show ′ Form5窗体显示
Form4.Hide ′ Form4窗体隐藏
cl=Chr$(13)+Chr(10) ′ 回车
cs=Val(Text8.Text) ′ 将电极常数文本框Text8的Text属性赋给变量cs
lc=Val(Text7.Text) ′ 将量程文本框Text7的Text属性赋给变量lc
sm(1)=Val(Text10.Text) ′ 将水的密度文本框Text10的Text属性赋给变量sm(1)
sdda(1)=Val(Text15.Text)
′将水的电导率读值文本框Text15的Text属性赋给变量sdda(1)
sddb(1)=Val(Text18.Text)
sddc(1)=Val(Text21.Text)
sddd(1)=Val(Text24.Text)
sdde(1)=Val(Text27.Text)
rdda(1)=Val(Text30.Text)
′将溶液的电导率读值文本框Text30的Text属性赋给变量rdda(1)
rddb(1)=Val(Text33.Text)
rddc(1)=Val(Text36.Text)
rddd(1)=Val(Text39.Text)
rdde(1)=Val(Text42.Text)
m=Val(Text9.Text)
…
sddp(1)=(sdda(1)+sdda(2)+sdda(3))/3 ′ 计算水溶液电导率的平均值
rddp(1)=(rdda(1)+rdda(2)+rdda(3))/3 ′ 计算溶液电导率的平均值
n=5
For i=1 To n
yd(i)=rddp(i)-sddp(i) ′ 计算盐的电导率读值
yds(i)=yd(i) * lc/cs ′ 计算盐的电导率实际值
c(i)=yds(i)/m ′ 计算碳酸钡饱和溶液的浓度
ksp(i)=c(i) * c(i)/1000000 ′ 计算碳酸钡的溶度积
rjd(i)=197 * c(i)/(sm(i) * 1000000) ′ 计算碳酸钡的溶解度
Next i
Private Sub Command2_Click() ′ 作图程序代码
Form6.Cls
Form6.Show
Form5.Hide
Form4.Hide
…
wd(1)=20:wd(2)=25:wd(3)=30:wd(4)=35:wd(5)=40 ′ 确定横坐标温度
y(1)=rjd(1):y(2)=rjd(2):y(3)=rjd(3):y(4)=rjd(4):y(5)=rjd(5)
′ 确定纵坐标溶解度
For i=1 To n
Form6.Circle (wd(i), y(i)), 0.05:Form6.Circle (wd(i), y(i)), 0.5
′ 在窗体Form6上,以(wd(i), y(i))和(wd(i), y(i))为圆心做半径不同的同心圆
Next i
End Sub
Private Sub 数据_Click() ′ 单击“数据”菜单,返回数据处理主界面
Form4.Show
Form5.Hide
Form6.Hide
End Sub
Private Sub 打印_Click() ′ 单击“打印”菜单程序代码
Form6.Show
Form4.Hide
Form5.Hide
Form6.PrintForm ′ 打印输出窗体Form6
End Sub
3 结 论
利用Visual Basic 6.0语言编程开发的“电导法测定碳酸钡的溶解度”在不同温度下实验数据处理程序,编程出能把复杂,繁冗的计算过程利用计算机转换为简单、快捷、精准的数据处理程序,与此同时还能得到美观的图形,并能打印。同时编程出的程序能脱VB源程序独立运行。现如今计算机的发展越来越繁荣,与学科教学的联系越来越紧密,编程出的程序,能更好的应用于教学和研究中,能够有效提高教学和研究的质量和效率。