王松濤,李 靜,張 婷,任慶云,郭 露,孟波波
(集寧師范學院化學與化工學院,內蒙古 烏蘭察布 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語言進行計算機程序研發,從而可以快速處理該實驗的實驗數據,節約教師和學生大量的計算時間,有效地輔助教學,為教學評價提供可靠的依據。
碳酸鈉溶液和氯化鋇溶液混合,可以得到碳酸鋇溶液。
Na2CO3+BaCl2=BaCO3↓+2NaCl

本實驗測定碳酸鋇的溶解度。直接用電導率儀測定碳酸鋇飽和溶液的電導率k(溶液)和配制溶液所用水的電導率k(水)。因溶液極稀,難溶鹽的電導率較小,故水的電導率不能被忽略,因此,難溶鹽的電導率為:
k(BaCO3)=k(溶液)-k(水)

式中c是難溶鹽的飽和溶液的濃度。

碳酸鋇的溶解度的計算:在溶液中,由于溶液極稀,溶液的質量近似等于溶劑水的質量,已知水在各個溫度下的密度,則可計算出碳酸鋇在各個溫度下的質量摩爾濃度,質量摩爾濃度乘以摩爾質量就是碳酸鋇在這個溫度下的溶解度[14]。
用戶首先打開程序,進入程序主界面(如圖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
“電導法測定碳酸鋇的溶解度”實驗數據處理程序的主要程序源代碼如下:
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
利用Visual Basic 6.0語言編程開發的“電導法測定碳酸鋇的溶解度”在不同溫度下實驗數據處理程序,編程出能把復雜,繁冗的計算過程利用計算機轉換為簡單、快捷、精準的數據處理程序,與此同時還能得到美觀的圖形,并能打印。同時編程出的程序能脫VB源程序獨立運行。現如今計算機的發展越來越繁榮,與學科教學的聯系越來越緊密,編程出的程序,能更好的應用于教學和研究中,能夠有效提高教學和研究的質量和效率。