尉文剛

摘 要:筆者在《數(shù)據(jù)庫應用基礎(chǔ)—Visual FoxPro(第三版)》教學中發(fā)現(xiàn)學生在“案例5.4.1循環(huán)結(jié)構(gòu)程序設(shè)計”章節(jié)知識的理解及應用環(huán)節(jié)存在很大困難,特別是在運用For語句進行程序設(shè)計時困難更大。結(jié)合學生實際學情,通過深入剖析For語句知識點,提出“Visual FoxPro中For循環(huán)的理解及應用”心得來解決教學中的困惑,并應用于教學實踐,在教學中取得了良好的效果。
關(guān)鍵詞:循環(huán)結(jié)構(gòu);For循環(huán)流程圖;滿足條件;案例
筆者就以教學中For循環(huán)語句的理解及應用為例,談談從For循環(huán)流程圖中學應用的幾點心得。循環(huán)結(jié)構(gòu)的程序可以根據(jù)指定的條件重復執(zhí)行某個程序段,Visual FoxPro提供了3中循環(huán)結(jié)構(gòu):基于條件的循環(huán)(Do-while循環(huán))、針對記錄的循環(huán)(Scan循環(huán))、指定次數(shù)的循環(huán)(For循環(huán))。
一、For循環(huán)流程圖
(一)指定次數(shù)的循環(huán)For循環(huán)流程圖如下:
(二)我們從以下四個方面理解For循環(huán)流程圖:
1.處是將<初值>賦給“循環(huán)控制變量”,使其在接下來判斷是否執(zhí)行循環(huán)體時有確切的值,程序設(shè)計時我們要根據(jù)For語句完成的任務給“循環(huán)控制變量”確定正確的初值。有些應用中“循環(huán)控制變量”只起控制循環(huán)執(zhí)行次數(shù)的作用,有些應用中“循環(huán)控制變量”不僅控制循環(huán)執(zhí)行的次數(shù),而且還參與完成?處循環(huán)所執(zhí)行操作任務的實現(xiàn)(本文所舉的案例屬于這種情況)。
2.處“滿足條件?”是指判斷“循環(huán)控制變量”是否滿足介于“初值”和“終值”之間(包括“初值”和“終值”)這一條件。如果滿足,則執(zhí)行?,不滿足則執(zhí)行“Endfor之后的語句”。
3.處指定For循環(huán)體要執(zhí)行的操作,程序設(shè)計時我們要根據(jù)任務要求正確設(shè)計此處的語句序列,以完成任務。
4..④處根據(jù)可選項[step 步長]中的“步長”值修改“循環(huán)控制變量”的值:若[step 步長]缺省,則“循環(huán)控制變量”增值1,若[step 步長]出現(xiàn),則“循環(huán)控制變量”按“步長”確定的值增值(“步長”為正,則增;“步長”為負,則減)。
二、For循環(huán)應用案例——編程打印九九乘法表
(一)九九乘法表結(jié)構(gòu)如下:
1×1=1
2×1=2 ?2×2=4
......
(二)結(jié)合For流程進行案例分析
1.從案例要完成的任務分析,九九乘法表打印的45個式子有共同的結(jié)構(gòu):被乘數(shù)×乘數(shù)=積,程序?qū)崿F(xiàn)時可以不換行輸出這樣的形式:被乘數(shù)(i)×乘數(shù)(j)=積(i*j),該處任務由For流程圖中?處實現(xiàn)。
2.分析九九乘法表結(jié)構(gòu)可知換行情況:被乘數(shù)每增一,則要換行(輸出換行),該處任務由For流程圖中?處實現(xiàn)。
3.分析九九乘法表中被乘數(shù)遞變規(guī)律:每行被乘數(shù)相同,九行被乘數(shù)從1按自然數(shù)遞增至9,該處任務由For流程圖中??④出實現(xiàn)。
4.分析九九乘法表中乘數(shù)遞變規(guī)律:每行乘數(shù)從1按自然數(shù)遞增至該行被乘數(shù),該處任務由For流程圖中??④出實現(xiàn)。
5.綜合上述分析,用嵌套For循環(huán)實現(xiàn):外層For的“循環(huán)控制變量”i表示被乘數(shù),則i由1遞增至9;內(nèi)層For的“循環(huán)控制變量”j表示乘數(shù),則j由1遞增至i;i*j的值表示乘積。
(三)該任務的實現(xiàn)程序如下:
*for語句應用-----九九乘法表
CLEAR
FOR i=1 to 9&&流程圖中??④處
FOR j=1 to i&&流程圖中??④處
?? ALLTRIM(STR(i)) +"×" +ALLTRIM(STR(j)) +;
"="+ ALLTRIM(STR(i*j))&&輸出:被乘數(shù)*乘數(shù)=積流程圖中?處
??" ? "
ENDFOR
?&&被乘數(shù)每增一,換行流程圖中?處
ENDFOR
Return
從上述案例我們可以看出,在For語句流程圖的理解中,我們從四個方面做了徹底認識;在應用中緊扣For流程圖的理解,實現(xiàn)任務時巧妙地與解決實際問題的方法相結(jié)合,達到準確深刻地理解知識點、巧妙高效地解決實際問題的目的。筆者在實際教學中取得不錯的教學效果。