




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第五講第五講 程序設(shè)計(jì)基礎(chǔ)(三)程序設(shè)計(jì)基礎(chǔ)(三)程序設(shè)計(jì)基礎(chǔ)(程序設(shè)計(jì)基礎(chǔ)(Visual FoxProVisual FoxPro)楊勁 副教授電話: 2本本 講講 要要 點(diǎn)點(diǎn)q 程序文件的建立與編輯程序文件的建立與編輯q 程序文件的執(zhí)行程序文件的執(zhí)行 q 程序文件中常用的命令程序文件中常用的命令q 程序的基本結(jié)構(gòu)控制程序的基本結(jié)構(gòu)控制3常見(jiàn)的循環(huán)結(jié)構(gòu)有:常見(jiàn)的循環(huán)結(jié)構(gòu)有:1)條件循環(huán))條件循環(huán)2)步長(zhǎng)循環(huán))步長(zhǎng)循環(huán)3)掃描循環(huán))掃描循環(huán)循環(huán)結(jié)構(gòu)則能夠使某些語(yǔ)句或程序段重復(fù)執(zhí)行若干次。如果某些語(yǔ)句或程序段需要在一個(gè)固定的位置上重復(fù)操作在一個(gè)固定的位置上重復(fù)操作,使用循環(huán)是最好的選擇。程序的循
2、環(huán)結(jié)構(gòu)程序的循環(huán)結(jié)構(gòu)41、條件循環(huán)(、條件循環(huán)(DO WHILEENDDO)格式格式: DO WHILE LOOP EXIT ENDDO 說(shuō)明:說(shuō)明: 1、循環(huán)結(jié)構(gòu)從DO WHILE開(kāi)始,到ENDDO結(jié)束,兩者必須成對(duì)出現(xiàn); 5、循環(huán)結(jié)構(gòu)能自身嵌套,還能與選擇結(jié)構(gòu)的各種形式嵌套。 2、循環(huán)是否繼續(xù)取決于條件的當(dāng)前取值,一般情況下循環(huán)體中應(yīng)含有改變條件取值的命令或跳改變條件取值的命令或跳出循環(huán)的出循環(huán)的EXIT語(yǔ)句,語(yǔ)句,否則將造成死循環(huán)。 3、EXIT:將控制權(quán)交給緊接在ENDDO后面的命令。 4、LOOP:將控制權(quán)直接交給DO WHILE子句,不再執(zhí)行LOOP與ENDDO之間的語(yǔ)句。DO W
3、HILE ENDDOENDDO語(yǔ)句序列語(yǔ)句序列.F.T.5DO WHILE 流程圖流程圖DO WHILE 語(yǔ)句序列語(yǔ)句序列ENDDOENDDO語(yǔ)句序列語(yǔ)句序列LOOP條件分支條件分支語(yǔ)句序列語(yǔ)句序列.T.F.DO WHILE 語(yǔ)句序列語(yǔ)句序列ENDDOENDDOEXIT條件分支條件分支語(yǔ)句序列語(yǔ)句序列.T.F.6第第 1 1 步,步, 計(jì)算計(jì)算 0+0+1 1;第第 2 2 步,步, 計(jì)算計(jì)算 (0+1)+(0+1)+2 2;第第 3 3 步,步, 計(jì)算計(jì)算 (0+1+2)+(0+1+2)+3 3; 第第 i i 步,步, 計(jì)算計(jì)算 ( (0+1+i-10+1+i-1)+)+i i; . 第第
4、 100 100 步,計(jì)算步,計(jì)算 (0+1+99)+(0+1+99)+100100; 遞歸遞歸算法算法EXM6EXM6:計(jì)算:計(jì)算s=1+2+3+100s=1+2+3+100前前i-1次累加和次累加和第第i次累加項(xiàng)次累加項(xiàng)7遞推公式遞推公式s=1+2+3+100s=1+2+3+1008 i=100s=s+i i=i+1s=0, i=1開(kāi)始開(kāi)始結(jié)束結(jié)束輸出輸出sYN循環(huán)變量賦初值循環(huán)變量賦初值循環(huán)條件(循環(huán)條件(i大于大于100就結(jié)束)就結(jié)束)循環(huán)變量的變化趨勢(shì)循環(huán)變量的變化趨勢(shì)從從1變到變到1009cleacleas=0s=0i=1i=1do while i=100do while i=10
5、0s=s+is=s+ii=i+1i=i+1enddoenddo?1+2+3+.+100=,s?1+2+3+.+100=,sreturnreturn循環(huán)體循環(huán)體10程序及運(yùn)行結(jié)果程序及運(yùn)行結(jié)果11*程序例程序例21.PRGSET TALK OFFCLEARi=0DO WHILE i10 i=i+1 ? iENDDOSET TALK ONSET TALK OFFCLEAR i=0 DO WHILE i10 ? iENDDOSET TALK ON死循環(huán)死循環(huán)SET TALK OFFCLEARi=0DO WHILE i10 i=i+1 ? iENDDOSET TALK ON無(wú)效循環(huán)無(wú)效循環(huán)SET TA
6、LK OFFCLEAR i=0 DO WHILE i i=i+1 ? iENDDOSET TALK ON語(yǔ)法錯(cuò)誤語(yǔ)法錯(cuò)誤*程序例程序例21-1.PRGSET TALK OFFCLEARi=0DO WHILE i10 ? i i=i+1ENDDOSET TALK ON*程序例程序例21-2.PRGSET TALK OFFCLEARi=0DO WHILE i10 i=i+1ENDDO? iSET TALK ON邏輯值或邏輯表達(dá)式12SET TALK OFFCLEAR i=0 DO WHILE .T. i=i+1 ? iENDDOSET TALK ONSET TALK OFFCLEAR i=0 DO
7、 WHILE .T. i=i+1 ? i IF i=10 EXIT ENDIFENDDOSET TALK ON死循環(huán)死循環(huán)SET TALK OFFCLEAR i=0 DO WHILE .T. i=i+1 ? i ACCEPT 是否繼續(xù)是否繼續(xù) TO A IF UPPER(A)Y EXIT ENDIFENDDOSET TALK ON定數(shù)循環(huán)定數(shù)循環(huán)用戶控制循環(huán)用戶控制循環(huán)13基本方法基本方法: :屬于屬于“累加(乘)器累加(乘)器”類型問(wèn)題類型問(wèn)題 (1 1)在進(jìn)入循環(huán)前先給累加(乘)器賦初值)在進(jìn)入循環(huán)前先給累加(乘)器賦初值 累加一般為累加一般為0 0,累乘一般為,累乘一般為1 1(2 2)
8、用循環(huán)語(yǔ)句實(shí)現(xiàn)累加(乘)用循環(huán)語(yǔ)句實(shí)現(xiàn)累加(乘) 循環(huán)變量(計(jì)數(shù)器)賦初值;循環(huán)條件;循環(huán)變量(計(jì)數(shù)器)賦初值;循環(huán)條件; 循環(huán)變量的改變規(guī)律循環(huán)變量的改變規(guī)律(3 3)循環(huán)體語(yǔ)句的設(shè)計(jì))循環(huán)體語(yǔ)句的設(shè)計(jì) 累加器當(dāng)前值累加器當(dāng)前值= =累加器原值累加器原值+ +循環(huán)變量當(dāng)前值循環(huán)變量當(dāng)前值 累乘器當(dāng)前值累乘器當(dāng)前值= =累乘器原值累乘器原值* *循環(huán)變量當(dāng)前值循環(huán)變量當(dāng)前值14EXM7EXM7:計(jì)算:計(jì)算s=1+2+3+ns=1+2+3+n。(P59例例3-8) 15“計(jì)算計(jì)算”命令按鈕的命令按鈕的“click”事件代碼:事件代碼:n=thisform.text1.value s=0 x=1d
9、o while x=ns=s+xx=x+1enddothisform.text2.value=s 16 提示:提示: 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)。 循環(huán)是否繼續(xù)取決于循環(huán)條件的當(dāng)前循環(huán)是否繼續(xù)取決于循環(huán)條件的當(dāng)前取值,一般情況下循環(huán)體中應(yīng)含有取值,一般情況下循環(huán)體中應(yīng)含有,否則將造成,否則將造成死循環(huán)。死循環(huán)。 循環(huán)結(jié)構(gòu)能循環(huán)結(jié)構(gòu)能,還,還能與選擇結(jié)構(gòu)的各種形式嵌套。能與選擇結(jié)構(gòu)的各種形式嵌套。172、計(jì)數(shù)循環(huán)(、計(jì)數(shù)循環(huán)(FORENDFOR)格式:格式:FOR = TO STEP LOOP EXITENDFOR/NEXT 說(shuō)明: 1、:指定作為循環(huán)計(jì)數(shù)器的內(nèi)存變量或數(shù)組元素,用于控制循環(huán)的次數(shù)。在執(zhí)行
10、FORENDFOR語(yǔ)句之前,此內(nèi)存變量不一定存在。 2、 TO :是計(jì)數(shù)器的初始值,而是計(jì)數(shù)器的終止值。 3、 STEP :是計(jì)數(shù)器遞增或遞減的步長(zhǎng)。步長(zhǎng)可正可負(fù),缺省為1。 4、循環(huán)體中一般不包含改變循環(huán)變量值的命令,否則循環(huán)次數(shù)將隨之改變。流程圖:流程圖:FOR i=a TO i=b STEP c語(yǔ)句序列語(yǔ)句序列ENDFORENDFOR語(yǔ)句序列語(yǔ)句序列LOOP條件分支條件分支語(yǔ)句序列語(yǔ)句序列ibi=i+cFOR i=a TO i=b STEP cENDFORENDFOR語(yǔ)句序列語(yǔ)句序列ibi=bi=i+cFOR i=a TO i=b STEP c語(yǔ)句序列語(yǔ)句序列ENDFORENDFOREX
11、IT條件分支條件分支語(yǔ)句序列語(yǔ)句序列ibi=i+c18計(jì)算計(jì)算s=1+2+3+100s=1+2+3+100cleacleas=0s=0for i=1 to 100 for i=1 to 100 s=s+is=s+iendforendfor?1+2+3+.+100=,s?1+2+3+.+100=,sreturnreturnstep 119( (教材教材P60)P60) 【例【例3-93-9】設(shè)計(jì)如圖所示表單,在文本框】設(shè)計(jì)如圖所示表單,在文本框text1text1中輸入中輸入N N的值,求的值,求N!N!。 20輸入輸入n ni=1i=1,fac=1fac=1 i=n i=1 n=1 fac=f
12、ac fac=fac* *n n n=n-1 n=n-1 輸出輸出facfac 求求n n!的!的N-SN-S圖圖21“計(jì)算計(jì)算”命令按鈕的命令按鈕的“Click”事件代碼:事件代碼:p=1for i=1 to thisform.text1.valuep=p*iendforthisform.text2.value=p 22關(guān)于步長(zhǎng)循環(huán)的提示關(guān)于步長(zhǎng)循環(huán)的提示: 步長(zhǎng)可正可負(fù),缺省為步長(zhǎng)可正可負(fù),缺省為1 1。 循環(huán)體中循環(huán)體中,否則循環(huán)次數(shù)將隨之,否則循環(huán)次數(shù)將隨之改變改變。 如果循環(huán)次數(shù)可以通過(guò)如果循環(huán)次數(shù)可以通過(guò)來(lái)控制,則計(jì)數(shù)循環(huán)較為簡(jiǎn)潔。來(lái)控制,則計(jì)數(shù)循環(huán)較為簡(jiǎn)潔。23a=0FOR i=
13、2 TO 100 STEP 2a=a+iENDFOR? aRETURN提示:計(jì)數(shù)循環(huán)完全可以使用條件循環(huán)替代,提示:計(jì)數(shù)循環(huán)完全可以使用條件循環(huán)替代,不過(guò)前者更為簡(jiǎn)潔。不過(guò)前者更為簡(jiǎn)潔。例:求例:求1到到100中偶數(shù)的和中偶數(shù)的和a=0i=2DO WHILE i=100a=a+i i=i+2ENDDO? aRETURN24 input “input “請(qǐng)輸入終值:請(qǐng)輸入終值:” ” to nto n input “ input “請(qǐng)輸入步長(zhǎng):請(qǐng)輸入步長(zhǎng):” ” to kto k i=1 for i=1 to n step k i=1 for i=1 to n step k do while i
14、=n do while i=n endfor|next endfor|next i=i+k i=i+k endddo endddo25EXM8EXM8 :求:求100100以內(nèi)的奇數(shù)和。以內(nèi)的奇數(shù)和。A=1+3+5+99A=1+3+5+99循環(huán)變量循環(huán)變量初值初值x=1循環(huán)條件循環(huán)條件x100循環(huán)變量的變化循環(huán)變量的變化趨勢(shì)趨勢(shì)x=x+2請(qǐng)同學(xué)們自請(qǐng)同學(xué)們自己寫出程序己寫出程序循環(huán)體累加語(yǔ)句:循環(huán)體累加語(yǔ)句:A=A+x26222.21nKEXM9EXM9 :求:求循環(huán)變量循環(huán)變量初值初值x=1循環(huán)條件循環(huán)條件x8x=“Av56:YijB8基本思路:基本思路:從右到左逐個(gè)取出從右到左逐個(gè)取出,
15、,操作次數(shù)為操作次數(shù)為len(x)len(x)次。次。A Av v5 56 6: :Y Yi ij jB B 8 8 11 10 9 8 7 6 5 4 3 2 1 計(jì)數(shù)器計(jì)數(shù)器i(i(循環(huán)變量循環(huán)變量):): len(x)=11 len(x)=11c=c+c=c+substr(x,i,1)substr(x,i,1)8BjiY:65vA8BjiY:65vA substr(x,i,1) substr(x,i,1)34確定變量:確定變量:x x:操作對(duì)象:操作對(duì)象 x= Av56:YijB8Av56:YijB8 i i:計(jì)數(shù)器:計(jì)數(shù)器 len(x)len(x)到到1 1c c:累加器:累加器 c=
16、c+substr(x,i,1)c=c+substr(x,i,1),初值為,初值為“”“”確定算法:確定算法:用循環(huán)在原字符串中從右到左逐個(gè)用循環(huán)在原字符串中從右到左逐個(gè)截取字符,重新組裝成逆序字符串截取字符,重新組裝成逆序字符串確定循環(huán)三要素:確定循環(huán)三要素:循環(huán)變量循環(huán)變量 : i (i: i (i初值為初值為len(x),len(x),終值為終值為1)1)循環(huán)條件循環(huán)條件: i=1: i=1循環(huán)條件改變:循環(huán)條件改變:i=i-1(i=i-1(從右到左截取從右到左截取) )35例:例: 如圖所示一程序界面。文本框如圖所示一程序界面。文本框TEXT1TEXT1已經(jīng)輸入一已經(jīng)輸入一串文字,單擊串
17、文字,單擊“轉(zhuǎn)換轉(zhuǎn)換”命令按鈕后,文本框的值將變命令按鈕后,文本框的值將變?yōu)槭裁??為什么?“轉(zhuǎn)換轉(zhuǎn)換” ” 命令按鈕的命令按鈕的CLICK CLICK 事件代碼:事件代碼:N=LEN(THISFORM.TEXT1.VALUE)N=LEN(THISFORM.TEXT1.VALUE)Y=Y=DO WHILE N0DO WHILE N0 X=SUBSTR(THISFORM.TEXT1.VALUE,N,1) X=SUBSTR(THISFORM.TEXT1.VALUE,N,1) IF ASC(X)=ASC(a) IF ASC(X)=ASC(a) X=UPPER(X) X=UPPER(X) ELSE EL
18、SE X=LOWER(X) X=LOWER(X) ENDIF ENDIF Y=X+Y Y=X+YN=N-1N=N-1ENDDOENDDOTHISFORM.TEXT1.VALUE=YTHISFORM.TEXT1.VALUE=YtHIS IS A cpu.36例:例:輸入一串輸入一串ASCIIASCII字符,顯示數(shù)字字符串。字符,顯示數(shù)字字符串。假設(shè)輸入:假設(shè)輸入:Av56:YijB8 Av56:YijB8 顯示:顯示:568568。 操作方法:操作方法:1 1、從左到右逐個(gè)取出字符存入從左到右逐個(gè)取出字符存入x x變量中;變量中;2 2、對(duì)對(duì)X X變量中的字符進(jìn)行判斷,滿足條件變量中的字符進(jìn)行判斷,滿足條件的連接到字符串累加器上。的連接到字符串累加器上。判斷判斷x x是數(shù)字字符的條件:是數(shù)字字符的條件:或者:或者:x=0 and x=0 and x=9 x=0 and x8 Av56:YijB8 顯示:顯示:568568。 38例:例:表單程序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋買賣協(xié)議
- 君天酒店合伙經(jīng)營(yíng)協(xié)議書(shū)
- 出租房協(xié)議范本
- 基本知識(shí)培訓(xùn)課件學(xué)習(xí)心得
- 基層調(diào)解基礎(chǔ)知識(shí)培訓(xùn)課件
- 八年級(jí)數(shù)學(xué)一次函數(shù)與方程試卷及答案
- 三類分?jǐn)?shù)階微分方程邊值問(wèn)題的Lyapunov不等式研究:理論與應(yīng)用
- 八年級(jí)數(shù)學(xué)全等三角形綜合試卷及答案
- 八年級(jí)數(shù)學(xué)全等三角形判定練習(xí)試卷及答案
- 基層醫(yī)院行風(fēng)建設(shè)課件
- 向上溝通培訓(xùn)課件
- 網(wǎng)站篡改演練方案
- 《2025年CSCO卵巢癌診療指南》更新要點(diǎn)解讀
- 2025年-四川省安全員《A證》考試題庫(kù)及答案
- 防治傳染病知識(shí)培訓(xùn)課件
- DBT29-35-2017 天津市住宅裝飾裝修工程技術(shù)標(biāo)準(zhǔn)
- 放射治療技術(shù)規(guī)范標(biāo)準(zhǔn)
- 【物理】第九章 壓強(qiáng) 單元練習(xí)+2024-2025學(xué)年人教版物理八年級(jí)下冊(cè)
- 《倉(cāng)庫(kù)消防安全》課件
- (2021)最高法民申5114號(hào)凱某建設(shè)工程合同糾紛案 指導(dǎo)
- 蠟療課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論