摘 要:本文論述了使用Excel宏操作數(shù)據(jù)表獲取一級漢字拼音首字母的原理及方法,并結(jié)合實際,闡述了任務(wù)驅(qū)動教學(xué)法在Excel宏程序設(shè)計中的教學(xué)設(shè)計,培養(yǎng)學(xué)生自主學(xué)習(xí)和解決實際問題的能力。
關(guān)鍵詞:拼音 首字母 任務(wù)驅(qū)動 宏
中圖分類號:G712 文獻(xiàn)標(biāo)識碼:A 文章編號:1673-9795(2013)09(b)-0152-02
同音查詢作為一種新的查詢方式已經(jīng)越來越多的應(yīng)用到現(xiàn)代信息管理領(lǐng)域,查詢已是管理信息系統(tǒng)中應(yīng)用最為頻繁的功能之一。由于漢字語言的特殊性,在信息查詢時,用戶往往錄入大量信息,如客戶名稱、商品名稱等,為減少用戶信息查詢時漢字的錄入量以及生怪癖漢字的錄入難度,我們將用戶查詢常用的客戶名稱、商品名稱等的漢字拼音首字母作為信息檢索時的快捷鍵。百度、手機的安卓操作系統(tǒng)、醫(yī)院的藥品進(jìn)銷存管理系統(tǒng)、超市的商品進(jìn)銷管理系統(tǒng)都支持漢字拼音首字母查詢功能。例如:上市公司名稱“中國銀行”,只需錄入“zgyh”,藥品名稱“阿司匹林”,只需錄入“aspl”,姓名“郭興華”,只需錄入“gxh”。知識的學(xué)習(xí)是為了更好的提高自身素質(zhì),并不斷的應(yīng)用知識去分析與解決實際問題。作者對Excel宏獲取漢字拼音首字母的程序設(shè)計采用任務(wù)驅(qū)動教學(xué)方法,展示功能,完成任務(wù),培養(yǎng)學(xué)生自主學(xué)習(xí)能力,提高解決問題的實際能力。
1 任務(wù)驅(qū)動教學(xué)法
任務(wù)驅(qū)動教學(xué)是教師把教學(xué)內(nèi)容設(shè)計成一個或多個具體的任務(wù),學(xué)生通過完成每一個具體的任務(wù),將所學(xué)的知識及技能真正內(nèi)化。學(xué)生完成任務(wù)的過程是一個不斷提出問題與解決問題的過程,而教師在這一過程中進(jìn)行啟發(fā)、引導(dǎo)和交流。[1]
本文以Excel宏獲取漢字拼音首字母為任務(wù),以區(qū)位碼與機內(nèi)碼的轉(zhuǎn)換、單元格地址、循環(huán)程序設(shè)計為教學(xué)重點,任務(wù)前置,精心設(shè)疑。任務(wù)源于生活,讓學(xué)生拿出自己的手機查看手機是否具有姓名首字母快速查詢功能,激發(fā)學(xué)生興趣,引起學(xué)生積極思考。
2 漢字信息交換碼
漢字信息交換碼是用于漢字信息處理系統(tǒng)間和通信系統(tǒng)間進(jìn)行信息交換的漢字代碼,它是系統(tǒng)間和設(shè)備間信息交換時使用的統(tǒng)一形式而制定的代碼。我國于1981頒布制定了GB2312-80《信息交換用漢字編碼字符集—基本集》,又稱國標(biāo)碼。此編碼字符集包括682個非漢字圖形字符、一級漢字3755個和二級漢字3008個,共計7445個圖形字符和漢字。
GB2312-80收集的7445個漢字和圖形字符排列在94×94的二維表中,這個表中的行稱為區(qū),列稱為位,由區(qū)和位構(gòu)成漢字的區(qū)位碼。區(qū)號范圍為1~94,位號范圍為1~94。其中1~15區(qū)為非漢字圖形字符區(qū),16~55區(qū)為一級常用漢字區(qū),56~87區(qū)為二級漢字區(qū);88~94區(qū)為保留區(qū)。一級常用漢字根據(jù)音序排列,二級漢字則根據(jù)偏旁部首排列,部首順序依據(jù)筆畫多少排列。
漢字的機內(nèi)碼是在計算機內(nèi)部對漢字進(jìn)行存儲、加工、處理漢字的一種代碼,每個漢字的內(nèi)碼常用2個字節(jié)表示。漢字內(nèi)碼與區(qū)位碼的轉(zhuǎn)換關(guān)系為:內(nèi)碼=區(qū)位碼+(A0A0)16。比如,字符集中第一個漢字“啊”,拼音首字母為“a”,位于第16行第1列,則區(qū)位碼為(1601)10,十六進(jìn)制表示為:1001,內(nèi)碼計算公式為(B0A1)16=(1001)16+(A0A0)16;同樣,在字符集中以“a”結(jié)尾的最后一個漢字為“澳”,區(qū)位碼1636,十六進(jìn)制為1024,內(nèi)碼為(B0C4)16=(1024)16+(A0A0)16。
在Excel宏中利用Asc()函數(shù)可返回漢字的機內(nèi)碼,如Asc(“啊”)=(B0A1)16=(45217)10,一級常用漢字拼音首字母對應(yīng)的機內(nèi)碼起止范圍如下表1所示。[2]
3 Excel宏
宏是一組指令集,通過執(zhí)行類似于批處理的一組命令來完成某種功能,它是使用VB Script指令集(Visual Basic編程語言子集)編寫的針對Microsoft Office組件的小程序。Microsoft Office組件都支持宏(Macro)的操作,利用宏可以完成很多系統(tǒng)原本并不具備的特殊應(yīng)用,比如,一個工作薄兩個工作表中數(shù)據(jù)的比對或一個工作表不同列間數(shù)據(jù)的比對,以及完成工作表數(shù)據(jù)的特殊計算、特殊格式的排版、特殊的查找篩選等功能。
4 教學(xué)實施
4.1 任務(wù)前置,激發(fā)學(xué)習(xí)興趣
精心設(shè)疑,讓學(xué)生拿出自己的手機查看手機是否具有姓名首字母快速查詢功能,激發(fā)學(xué)生興趣,引起學(xué)生積極思考。幫助學(xué)生溫故計算機中信息的表示形式以及國標(biāo)碼、區(qū)位、機內(nèi)碼間的相互轉(zhuǎn)換關(guān)系,根據(jù)一級常用漢字的音序排列順序使用VBA宏在Excel中對數(shù)據(jù)表中的商品名稱或漢字信息進(jìn)行拼音首字母編碼。教師課前巧設(shè)分組,分工協(xié)作,完成區(qū)位碼表及相關(guān)數(shù)據(jù)收集,分別讓兩個學(xué)習(xí)小組完成一級常用漢字機內(nèi)碼起止范圍表。
4.2 編寫用戶自定義函數(shù)getpy()獲取拼音首字母
利用系統(tǒng)函數(shù)Asc()取得漢字的機內(nèi)碼,根據(jù)表1機內(nèi)碼和拼音首字母的起止范圍,編寫用戶自定義函數(shù)getpy(),具體實現(xiàn)代碼如下:
Public Function getpy(ByVal s As String) As String
Dim Lchar As Long
‘Asc()直接返回的值是一個有符號數(shù)
Lchar = 65536 + Asc(s)
Select Case Lchar
Case 45217 To 45252
getpy = \"a\"
Case 45253 To 45760
getpy = \"b\"
……(依據(jù)表1起止書寫,此處略)
Case 54481 To 55289
getpy = \"z\"
Case Else
getpy = s
End Select
End Function
4.3 調(diào)用getpy()返回拼音首字符
對工作表中的漢字信息(此例為商品名稱)獲取拼音首字母,效果如表2所示。
創(chuàng)建getpinyin宏并編寫代碼如下:
Sub getpinyin()
Dim s As String
Dim p As String
For k = 2 To 5
s = Range(\"a\" k)
p = \"\"
For i = 1 To Len(s)
p = p + getpy(Mid(s, i, 1))
Next i
Range(\"b\" k) = p
Next k
End Sub
5 結(jié)語
Excel是集知識和技能于一體、實踐性很強的課程,要求學(xué)生既要學(xué)好理論知識,又要學(xué)習(xí)致用,解決實際問題。本節(jié)課精心設(shè)疑、課前巧設(shè)分工、課中循序漸近,學(xué)生分工協(xié)作,有效培養(yǎng)了學(xué)生團(tuán)隊合作精神以及創(chuàng)新合作能力。
本次任務(wù)源于現(xiàn)實生活,以學(xué)生能看得到、感受得到的基本素材創(chuàng)設(shè)問題情境,引導(dǎo)學(xué)生活動,并在活動中激發(fā)學(xué)生認(rèn)真思考、積極探索,主動獲取機內(nèi)碼、區(qū)位碼、單元格地址以及循環(huán)程序設(shè)計的相關(guān)知識,促進(jìn)學(xué)生研究性學(xué)習(xí)方式的形成,拓寬了教學(xué)空間,培養(yǎng)了學(xué)生利用程序解決實際問題的能力。
參考文獻(xiàn)
[1] 朱云霞.“任務(wù)驅(qū)動”教學(xué)法在計算機教學(xué)中的運用[J].中國電化教育,2002(5):35-36.
[2] 呂浩勇,董元和,饒龍坤.VFP中漢字拼音首字母的獲取及應(yīng)用[J].計算機與現(xiàn)代化,2005(12):118-119.