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