摘 要 對于技校VFP教學(xué)中存在的問題進(jìn)行分析,從VFP教學(xué)語言過程中存在的問題入手并以此為依據(jù),提出了相應(yīng)的解決措施。
關(guān)鍵詞 程序設(shè)計(jì)結(jié)構(gòu) 對比法 歸納法
一、學(xué)生在學(xué)習(xí)VFP語言過程中存在的問題
(一)英語底子薄弱,記憶方式不當(dāng)
VFP程序設(shè)計(jì)語言的教學(xué)重點(diǎn)是函數(shù)和命令,其中所包含的英文字符較多,一些學(xué)生由于英語底子薄,又沒有良好的記憶方式,所以學(xué)習(xí)起來感到非常吃力,容易產(chǎn)生反感。如果學(xué)生在學(xué)習(xí)的過程中能結(jié)合英文單詞的意思來記憶,不但會提高學(xué)習(xí)效率、減少學(xué)習(xí)壓力,從而一舉兩得。
(二)學(xué)習(xí)內(nèi)容多,學(xué)習(xí)效果差
P程序設(shè)計(jì)語言課程教學(xué)一直以來都存在時間緊、任務(wù)重的問題。學(xué)生常有手忙腳亂的感覺。以致學(xué)習(xí)效果總是不理想。鑒于此,教師在課堂上應(yīng)該盡量對所講授內(nèi)容進(jìn)行分類總結(jié),爭取使學(xué)生在課堂上就能消化所學(xué)知識,提高學(xué)生的學(xué)習(xí)效率。
(三)實(shí)驗(yàn)任務(wù)不明確,方法不正確
上機(jī)練習(xí)是測試學(xué)生所學(xué)知識的最佳和最直接的方法。但因?yàn)樗鶎W(xué)內(nèi)容較多,學(xué)生不知如何入手,以致于理論與實(shí)踐相脫節(jié)。學(xué)生在上機(jī)時先驗(yàn)證教材中例題的內(nèi)容,之后練習(xí)課堂內(nèi)容,掌握好這些內(nèi)容之后再去完成實(shí)驗(yàn)作業(yè)。通過這樣的反復(fù)練習(xí),一定能加深對所學(xué)內(nèi)容的理解。
二、 VFP教學(xué)中對比法和歸納法的靈活運(yùn)用
VFP語言程序設(shè)計(jì)因內(nèi)容較多而難以記憶和理解,如果采用對比、歸納法學(xué)習(xí)就會事半功倍。VFP等級考試的內(nèi)容主要包括基本概念、數(shù)據(jù)類型和常量、變量的應(yīng)用、運(yùn)算符及表達(dá)式、函數(shù)應(yīng)用、表的相關(guān)操作、SQL語言和程序設(shè)計(jì)的相關(guān)內(nèi)容。針對上述情況,現(xiàn)從以下幾方面進(jìn)行討論:
(1)對比法在數(shù)據(jù)類型判斷中的應(yīng)用
(a)常量數(shù)據(jù)類型的判斷
常量主要分為C( Character字符型)、N(Number數(shù)值型)、L (Logic邏輯型)、D(Date 日期型),其中C型和D型常量容易混淆。C型常量要用定界符[ ]、‘’或“”括起來,D型常量用{}括起來。L型常量則必須用定界符“. .”括起來。如:.T. 是L型,而T則是變量名稱。
(b)變量相關(guān)內(nèi)容及注意事項(xiàng)
首先,要記住變量的命名規(guī)則,要能夠區(qū)分常量和變量;其次,要理解變量的分類及區(qū)別,并要特別注意字段變量和內(nèi)存變量的基本語法要求有所不同。對于內(nèi)存變量的相關(guān)操作命令,如:賦值命令STOR 2 TO A相當(dāng)于A=2,意思是將 2賦給變量A,或者說變量A的值等于2,其類型為N型。命令“STOR……TO ……”可記憶為“將……存儲到……”。再如:內(nèi)存變量清除命令CLEAR MEMORY、 RELEASEALL等,均為清除所有內(nèi)存變量的意思;而CLEAR、RELEASE本身就是“釋放、清除”的意思。
(2)對比法在記憶函數(shù)功能和求解函數(shù)結(jié)果中的應(yīng)用
VFP中函數(shù)種類、內(nèi)容較多,課本中雖已經(jīng)將其進(jìn)行分類,但把這些內(nèi)容放在一起進(jìn)行測試,學(xué)生也常會感覺茫然不知所措。
(a)字符串處理函數(shù)
函數(shù)LEN() :為長度“l(fā)ength”的縮寫,求字符串長度,其中漢字占兩個字節(jié),西文字符占一個字節(jié)。
函數(shù)SPACE( ):空格生成函數(shù),返回指定數(shù)目的空格。
函數(shù)TRIM( ) :刪除空格函數(shù),即刪除字符串的尾部空格。LTRIM( ) :相當(dāng)于“l(fā)eft trim”,刪除字符串左邊的空格。ALLTRIM() :相當(dāng)于“all trim”,刪除字符串的首尾空格。
函數(shù)LEFT( ) 、RIGHT( ):從字符串最左(右)邊開始,取指定長度的字符串。SUBSTR():相當(dāng)于“substring”子串之意,從指定位置開始求指定長度的子串。
函數(shù)OCCURS():為“出現(xiàn)”之意,求左邊字符串在右邊字符串中出現(xiàn)的次數(shù)。
函數(shù)AT( ):為“在 ……”之意,求左邊字符串在右邊字符串第幾次出現(xiàn)的位置。
函數(shù)STUFF(串 1,起始位置,長度,串 2):將前3 個參數(shù)作為一組,意為“對串 1 求子串”,然后用串2的內(nèi)容去替換串1中所求的子串內(nèi)容,其它保留。
函數(shù)CHRTRAN (串1,串2,串3) :將前兩個參數(shù)作為一組進(jìn)行比較,用串 3中對應(yīng)位置的字符替換串1中在串2中出現(xiàn)的字符。
(b)數(shù)值函數(shù)
函數(shù) INT( ) :是英文“integer”的縮寫,是“整數(shù)”之意,表示“舍尾取整” 。 函數(shù)ROUND(數(shù) 1,數(shù) 2) :表示“四舍五入取整”。當(dāng)“數(shù)2”為非負(fù)數(shù)時,表示保留的小數(shù)位數(shù);為負(fù)數(shù)時,表示要處理小數(shù)點(diǎn)前向左數(shù)第幾位數(shù)的舍入情況。 函數(shù)MAX()、MIN() :對漢字比較大小,先給出漢字拼音,之后根據(jù)字母表中的先后順序來判斷;對日期型數(shù)據(jù)比較,則按數(shù)值大小進(jìn)行比較即可;對ASCII碼字符比較,按 ASCII碼表中大小比較;邏輯真大于邏輯假。
(c)數(shù)據(jù)類型轉(zhuǎn)換函數(shù)
函數(shù)VAL ( ) :意為“value”數(shù)值之意,將字符型轉(zhuǎn)換為數(shù)值型。STR( ) :意為“string”字符串之意,將數(shù)值型轉(zhuǎn)換為字符型。 函數(shù)DTOC( ) :為“D 型 TO C型”,將日期型轉(zhuǎn)換為字符型;CTOD()與之相反。 函數(shù)ASC():為“ASCII碼”的縮寫,將字符轉(zhuǎn)換為對應(yīng)的ASCII碼值。CHR():為“character”字符的縮寫,將ASCII碼轉(zhuǎn)換為對應(yīng)的字符。
(d)測試函數(shù)
函數(shù) IIF(邏輯表達(dá)式,表達(dá)式1,表達(dá)式 2) :當(dāng)邏輯表達(dá)式為真,則返回值為表達(dá)式1的內(nèi)容;為假,則返回表達(dá)式2的內(nèi)容。 函數(shù)BOF() :為“begin of file”,測試記錄指針是否指向表文件首;EOF ( )為“end of file” 。函數(shù)RECNO():為“record”的縮寫,是記錄號測試函數(shù)。 函數(shù)TYPE( ) :類型測試函數(shù),要求參數(shù)本身是字符型內(nèi)容,取出“串內(nèi)實(shí)際內(nèi)容”進(jìn)行判斷;VARTYPE()則按“參數(shù)實(shí)際內(nèi)容”直接判斷即可。
3)VFP中表的相關(guān)操作
該部分內(nèi)容為重點(diǎn)上機(jī)測試內(nèi)容,要求基本掌握表的創(chuàng)建(CREATE 表名)、打開(USE表名)、關(guān)閉(USE)、保存、復(fù)制(COPY……TO…… )、修改(MODIFY)命令,熟練掌握表中記錄的添加、刪除和記錄指針的定位問題。
4)歸納法在程序設(shè)計(jì)中的應(yīng)用
程序設(shè)計(jì)題一直是考試的重點(diǎn)和難點(diǎn),所占分值為45 分左右,想讓學(xué)生將所有內(nèi)容完全了解是件不大現(xiàn)實(shí)的事。因此,我們要根據(jù)不同類型的題選擇不同的對策。
(a)程序填空題
做程序填空題前先要根據(jù)基本語法來補(bǔ)充。如:3種循環(huán)結(jié)構(gòu)語句DO WHILE……ENDDO、FOR……ENDFOR NEXT、 SCAN……ENDSCAN,分支結(jié)構(gòu)IF……ELSE……ENDIF要配對使用;表在使用之前要用USE命令打開;操作時要用SKIP、GO、LOCATE FOR命令進(jìn)行表中記錄指針的移動;過程文件在使用之前必須用SET PROCEDURETO命令打開。
(b)閱讀程序題
閱讀程序之前先要把握如下幾點(diǎn):程序循環(huán)結(jié)構(gòu)中LOOP 命令會轉(zhuǎn)向循環(huán)開始處進(jìn)行下次循環(huán)(只能在循環(huán)結(jié)構(gòu)中出現(xiàn)),EXTI命令會退出循環(huán)(也可用于分支結(jié)構(gòu)退出程序執(zhí)行) ;注意循環(huán)結(jié)構(gòu)的結(jié)束條件,便于得到正確結(jié)果;分析程序內(nèi)容時,先將每步執(zhí)行結(jié)果寫在命令旁邊,執(zhí)行三四步后便可總結(jié)出程序規(guī)律;注意輸出語句在循環(huán)體內(nèi)還是循環(huán)體外,正確給出輸出結(jié)果的格式;對于調(diào)用程序問題,注意返回程序的哪個部分以及參數(shù)傳遞、變量屏蔽等內(nèi)容。
(c)編寫程序題
目前,所給的編程題重點(diǎn)考學(xué)生對表的相關(guān)操作,多為兩個表的關(guān)系。其編程的命令書寫順序?yàn)椋合扔肧ET TALKOFF命令來防止非重要信息的輸出; 用CLEAR命令清除顯示區(qū)內(nèi)容; 用SELECT命令選擇不同工作區(qū),并在各工作區(qū)中用USE命令打開相應(yīng)的表;對被關(guān)聯(lián)的表用INDEX ON命令進(jìn)行索引,再用SET RELATION TO……INTO命令對兩表進(jìn)行關(guān)聯(lián);有必要時要對表用TOTAL ……ON ……TO命令進(jìn)行匯總;匯總之前要對相應(yīng)字段進(jìn)行索引,且匯總后的文件要用USE命令打開才能使用其中內(nèi)容??疾楸碇袃?nèi)容的操作多為用REPLACE命令或SQL中相關(guān)內(nèi)容修改表中的記錄內(nèi)容;用相關(guān)命令對表中內(nèi)容進(jìn)行相應(yīng)統(tǒng)計(jì)并按給出格式輸出相應(yīng)結(jié)果。這里就用到格式命令的輸出AT……SAY……(在某行某列輸出內(nèi)容,同時要注意常量內(nèi)容與變量內(nèi)容的區(qū)分) ;若想程序能循環(huán)執(zhí)行多次,則要用到WAIT……TO ……命令,也可能會用到輸入命令I(lǐng)NPUT ……TO ……,或ACCEPT……TO……命令來通過鍵盤輸入相應(yīng)內(nèi)容。
三、結(jié)束語
本文結(jié)合VFP教學(xué)大綱內(nèi)容,針對非計(jì)算機(jī)專業(yè)學(xué)生在學(xué)習(xí) VFP程序設(shè)計(jì)語言過程中存在的一些問題,提供了用對比法記憶常用函數(shù)和命令的技巧和用歸納法切實(shí)解決程序設(shè)計(jì)方面內(nèi)容的方法。
參考文獻(xiàn):
[1]李雁翎.Visual FoxPro應(yīng)用基礎(chǔ)與面向?qū)ο蟪绦蛟O(shè)教程(第二版)[M].高等教育出版社.
[2]蒲永華,吳冬梅.數(shù)據(jù)庫應(yīng)用基礎(chǔ)Visual FoxPro 6.0(第二版)[M].人民郵電出版社.