文章編號:1672-5913(2008)16-0123-02
摘要:本文介紹了筆者針對非計算機專業“Visual FoxPro程序設計”課程教學的探索。
關鍵詞:Visual Foxfro程序設計;教學方法;循序漸進
中圖分類號:G642
文獻標識碼:B
在Visual FoxPro程序設計的教學過程中,學生對輸入、輸出以及分支結構和循環結構都難以理解,教材中的一些例題也有一定的難度。因此,筆者選取一些較為容易又能說明問題的例題,循序漸進,將問題逐漸引向深入,收到了較好的效果。
1關于輸入的教學
在程序輸入中,其方法是靈活多樣的,有:
●賦值輸入:<內存變量>=<表達式>或STORE <表達式> TO <內存變量名表>
●交互式輸入:
(1)ACCEPT [<提示信息>] TO <內存變量>
(2)INPUT [<提示信息>] TO <內存變量>
(3)WAIT [<提示信息>] [TO <內存變量>]
●格式輸入:
@<行,列> [SAY <提示信息>] GET <變量>
READ
學生在初次學習過程中,對此的理解是很困難的。筆者在教學中采取了利用一個簡單的小程序循序漸進的教學,取得了良好的效果。
例1輸入簡單字符并顯示。
SET TALK OFF
X=“*****”
?X
RETURN
如要另外輸出5個“#”號,則要修改程序,將賦值語句改為X=“#####”,這樣將比較麻煩。改為:
SET TALK OFF
ACCEPT “輸入字符:” TO X
?X
RETURN
反復執行程序,可輸入任何字符,并顯示。學生通過此例明白了交互式輸入的特點。也可用格式輸入:
SET TALK OFF
X=“”
@5,10 SAY “輸入字符:” GET X
READ
?X
RETURN
用格式輸入,必須賦初值,以決定變量的類型和寬度,經執行后,學生對此體會較深。
例2計算圓面積。
SET TALK OFF
R=10
S=3.1416*R^2
?S
RETURN
此輸入只能計算一個固定半徑的圓面積。如要計算任意半徑的圓面積,則改為:
SET TALK OFF
INPUT “輸入半徑:”TO R
S=3.1416*R^2
?S
RETURN
這里注意講清ACCEPT與INPUT的區別,并指出這里也可用格式輸入。
經過這兩個例題的講解,學生對輸入的掌握就比較好了。
2關于輸出的教學
在程序輸出中,其方法也是靈活多樣的,有:
●非格式輸出: ?<表達式>或 ??<表達式>
●格式輸出:@<行,列> SAY <表達式> [FUNCTION <功能符>] [PITURE <格式符>]
對例2可以利用非格式輸出使輸出結果更加美觀易讀:
SET TALK OFF
INPUT “輸入半徑:”TO R
S=3.1416*R^2
?“圓的面積為:”,S
RETURN
也可使上例輸出更加緊湊,改為:
SET TALK OFF
INPUT “輸入半徑:”TO R
S=3.1416*R^2
? “圓的面積為:”+STAR(S,15,4)
RETURN
用格式輸出,即可在指定的位置輸出:
SET TALK OFF
INPUT “輸入半徑:”TO R
S=3.1416*R^2
@10,10 SAY “圓的面積為:”+STAR(S,15,4)+“平方米”
RETURN
至于功能符和格式符的應用,在以后的例題中結合講,可得到更好的效果。
通過這樣的對比使用輸出,且使用一個簡單的例題,突出了重點,使學生理解容易,加深了記憶。
3分支結構程序的教學
分支結構對初學者也是一個難點,特別是有嵌套結構時,學生更難掌握。利用一個簡單的例子,可將分支嵌套和多分支結構結合講,收到良好的效果。
例3利用分支結構計算分段函數的值

利用分支嵌套編寫如下程序:
SET TALK OFF
INPUT “X=” TO X
IF X<0
Y=X^2+1
ELSE
IF X=0
Y=1
ELSE
Y=X^2-1
ENDIF
ENDIF
?”Y=”,Y
RETURN
此程序是分支嵌套中較簡單的一個,但對初學者來說,理解也存在一定的難度。這里關鍵是要理解這是一個三分支,即三種選擇,如用雙分支結構來處理,就必須要嵌套,才能解決三個選擇的問題。
結合多分支結構處理這個問題,容易理解,講解了多分支選擇結構。程序改為:
SET TALK OFF
INPUT “X=” TO X
DO CASE
CASE X<0
Y=X^2+1
CASE X=0
Y=1
CASE X>0
Y=X^2-1
ENDCASE
?”Y=”,Y
RETURN
或者改為:
SET TALK OFF
INPUT “X=” TO X
DO CASE
CASE X<0
Y=X^2+1
CASE X=0
Y=1
OTHERWISE
Y=X^2-1
ENDCASE
?”Y=”,Y
RETURN
這樣對比講解,學生比較容易理解。特別是在多分支中用OTHERWISE代替原來的CASE X>0,對嵌套中的為什么沒有X>0的條件的理解有一定的幫助。
4循環結構的講解
在循環結構中,學生不易理解的有:
●循環變量,它的定義及變化;
●在循環中其它變量的變化;
●循環的次數及循環終結;
●雙重循環的循環過程的理解。
在循環中,常用的循環結構有:
DO WHILE <條件>
語句塊
ENDDO
和
FOR X=A TO B STEP C
語句塊
ENDFOR|NEXT
不管在那一種循環中,都牽涉到循環變量和其他變量的變化。有時,循環變量也是其他變量,交叉在一起。在循環的過程中,都會按照程序的要求而變化。在教學中,以最簡單的例題入手,逐步解決這些問題。
例4求10個1相加
SET TALK OFF
S=0
X=1
DO WHILE X<=10
S=S+1
X=X+1
ENDDO
?S
RETURN
在這個例題中,引入了循環變量X和求和變量S,它們的變化很簡單,學生容易抓住主要矛盾。循環變量X的變化控制著循環的次數,當X變為11時,循環結束。在這里,也很容易看出,循環的次數是10次。
接著,將問題引向深入,在此基礎上,求整數1加到10。最好讓學生思考,就會使學生加深理解循環變量X和求和變量S該如何變化。由此舉一反三,從1到任意整數N的相加學生都會編寫程序了。
對于循環的嵌套,程序的編寫就更難了。在教學中,對于雙重循環,采用一個簡單的例題,著重講解循環的過程,學生比較容易理解。
例4雙重循環的過程
SET TALK OFF
FOR X=1 TO 5
?”*****”
FOR Y=1 TO 5
?”#####”
ENDFOR
ENDFOR
RETURN
程序運行之后,學生對內循環和外循環的過程都有了較深的理解。
5結束語
程序設計課程,對于非計算機專業的學生來說,主要是通過學習進一步理解計算機工作的原理,以及對于邏輯思維的訓練,而不是培養編程能力。因此,在教學中采用類似的循序漸進的教學方法,可達到教學的目的。當然,對于計算機專業的學生,特別對于高職高專的學生,采用循序漸進和著重講解的方式,也會收到很好的效果。
參考文獻:
[1] 楊克昌,莫照. Visual FoxPro 程序設計教程[M]. 湖南科學技術出版社,2004.
[2] 謝紅霞,孟學多.“Visual Basic 程序設計”課堂教學模式改革[J]. 計算機教育,2007,(18):104-106.