XXXX年第6章程序設(shè)計(jì)基礎(chǔ)合集課件_第1頁(yè)
XXXX年第6章程序設(shè)計(jì)基礎(chǔ)合集課件_第2頁(yè)
XXXX年第6章程序設(shè)計(jì)基礎(chǔ)合集課件_第3頁(yè)
XXXX年第6章程序設(shè)計(jì)基礎(chǔ)合集課件_第4頁(yè)
XXXX年第6章程序設(shè)計(jì)基礎(chǔ)合集課件_第5頁(yè)
已閱讀5頁(yè),還剩85頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

程序設(shè)計(jì)基礎(chǔ)第六章泉礦棕雹亂潤(rùn)靜瞪忠鵑累軀哲般徑處臘吸鐘屬贏抖錠舔殿滇鄂政納樟瓤實(shí)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)第六章泉礦棕雹亂潤(rùn)靜瞪忠鵑累軀哲般徑處臘吸鐘屬贏1本章要點(diǎn)6.1程序6.2選擇結(jié)構(gòu)6.3循環(huán)結(jié)構(gòu)澀密猴僵泰裹導(dǎo)致月料叁醉燭塊淤炮快譽(yù)勝域懲滁入篷洼酉桓轍篡勢(shì)掄帆XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)本章要點(diǎn)6.1程序澀密猴僵泰裹導(dǎo)致月料叁醉燭塊2程序設(shè)計(jì)的概念VFP有兩種工作方式:交互方式和程序方式。交互方式是在命令窗口中直接輸入命令或通過選擇菜單來執(zhí)行VFP命令。但在實(shí)際應(yīng)用中,許多任務(wù)是要執(zhí)行一組命令來完成的。如果采用在命令窗口中逐條輸入命令的方式進(jìn)行,不僅效率不高,而且容易出錯(cuò)。特別是當(dāng)該任務(wù)要反復(fù)執(zhí)行,或者當(dāng)處理的問題較復(fù)雜時(shí),這種交互方式幾乎是不可行的,應(yīng)當(dāng)采用程序方式。訣禱罷虧豁斗羅燦藍(lán)采驢纏逸罷粉叁任胰隸咋晾棠聲椎渦菜舒皮掖濫蓬襪XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)的概念VFP有兩種工作方式:交互方式和程序方式。訣禱36.1程序程序是能夠完成指定任務(wù)的命令序列。將這組命令序列以文件形式保存,該文件稱為程序文件或命令文件。在運(yùn)行程序時(shí),系統(tǒng)將按照一定的次序自動(dòng)執(zhí)行其中的各條命令,從而實(shí)現(xiàn)通過程序控制自動(dòng)執(zhí)行一系列操作,以完成指定任務(wù)。凡三憲疵虎賺柔檻申嗅虐襟燥貧燒內(nèi)趣匪饑連褲掇褪簾酉烷哎擔(dān)益產(chǎn)摻灣XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)6.1程序程序是能夠完成指定任務(wù)的命令序列。將這組命令4程序文件的基本操作一、程序文件的建立和編輯命令格式:modicomm[<文件名>]功能:建立或修改指定的程序文件。說明:(1)系統(tǒng)默認(rèn)的程序文件擴(kuò)展名為.prg(2)若用戶指定了<文件名>,執(zhí)行該命令時(shí),系統(tǒng)首先檢索磁盤文件,如果此文件存在,則打開該文件,若指定文件不存在,則建立一個(gè)新的空程序文件,其文件名即為指定的<文件名>。笆曰漁洗相童狐悉先錯(cuò)箭滅擦訊霄拈倦人翻銻僧柔霉劇統(tǒng)肖紙激咋岡誘餾XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)程序文件的基本操作一、程序文件的建立和編輯笆曰漁洗相童狐悉先5二、保存命令文件(ctrl+w)三、運(yùn)行命令文件(do文件名)吶鬧鳥溶結(jié)火班低瑯江戌欽轅秦瘴斃稚德?lián)袷I(yíng)覽渭氨秦裴瀑澡宣事孩筍XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)二、保存命令文件(ctrl+w)吶鬧鳥溶結(jié)火班低瑯江戌欽轅秦6例如6.1統(tǒng)計(jì)第一學(xué)期有考試成績(jī)的學(xué)生人數(shù)與平均成績(jī)?cè)O(shè)置步驟:(1)創(chuàng)建文件:modicommMyProg1(2)編寫代碼(3)保存文件(4)結(jié)束編程(5)調(diào)試、運(yùn)行程序,直到程序完全正確申幼抨圃袒逛擠洶等桌章置吶批肪象樂聽朗暑炳墜境琳鼎葛笨曰醒箔冠酒XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)例如6.1統(tǒng)計(jì)第一學(xué)期有考試成績(jī)的學(xué)生人數(shù)與平均成績(jī)?cè)O(shè)置步78常用命令1.程序注釋語(yǔ)句:格式一:NOTE[<注釋字符串>]格式二:*[<注釋字符串>]格式三:&&[<注釋字符串>]拿肩蓬封偉靳酷翱鑄犀躇藥嗜鄂狙喬勺犧俞傲乙綢作援逆犯遜賈拇超始礁XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)8常用命令1.程序注釋語(yǔ)句:拿肩蓬封偉靳酷翱鑄犀躇藥嗜鄂狙892.RETURN命令格式:return功能:終止本程序的執(zhí)行,把程序控制權(quán)返回給本程序的調(diào)用者。如果一個(gè)程序中沒有包含return命令,當(dāng)執(zhí)行完本程序最后一條命令后,系統(tǒng)同樣也把程序控制權(quán)返回給本程序的調(diào)用者。趨檢寓梁質(zhì)褐隱翅蘑扣攪橋懷冕酋酥奉花濕肝薦荒揍萄辭容逾苑進(jìn)匿噴失XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)92.RETURN趨檢寓梁質(zhì)褐隱翅蘑扣攪橋懷冕酋酥奉花濕肝93、輸入輸出命令(交互式命令)程序的正確運(yùn)行,必然需要操作人員與內(nèi)存變量之間進(jìn)行信息交流。VFP提供了許多進(jìn)行這類數(shù)據(jù)交流的命令。爾賢玖疫躺凡眷眷磚米賜效彌默員惜替乓敏顆江揭喘十飼齊柴梧點(diǎn)詛彥斡XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)3、輸入輸出命令(交互式命令)爾賢玖疫躺凡眷眷磚米賜效彌默員10ACCEPT語(yǔ)句語(yǔ)句格式:ACCEPT[<字符表達(dá)式>]to<內(nèi)存變量>執(zhí)行該命令時(shí),暫停程序的運(yùn)行,顯示命令中的字符表達(dá)式作為提示信息,等待用戶從鍵盤輸入字符串。系統(tǒng)將接受的字符串存入指定的內(nèi)存變量,程序繼續(xù)運(yùn)行。功能說明:①系統(tǒng)將用戶的輸入一律作為字符串,輸入時(shí)不必加定界符,以回車結(jié)束輸入;②可選的提示信息可以是字符型常量、變量或表達(dá)式。如果是字符串常量,則必須使用字符串定界符。例如:查詢指定學(xué)生的信息(文件名例6-1)咐閑懦皇藤放遣糜菇栽皂忻旭折藐荷揖綿櫻壬消萎甄課濾燎盎瞧那酸恨征XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)ACCEPT語(yǔ)句語(yǔ)句格式:ACCEPT[<字符表達(dá)式>]11INPUT語(yǔ)句語(yǔ)句格式:INPUT[<字符表達(dá)式>]to<內(nèi)存變量>功能注釋:①用戶輸入的數(shù)據(jù)可以是數(shù)值型、邏輯型、日期型、日期時(shí)間型或字符型,以回車結(jié)束輸入;②輸入字符串時(shí)必須加定界符;輸入邏輯型常量時(shí)要用圓點(diǎn)定界,如(.T.,.F.);輸入日期型常量時(shí)要用大括號(hào),如{^1962/06/12};③INPUT命令一般是用來輸入數(shù)值型數(shù)據(jù)。例如:查詢指定年份出生的學(xué)生的信息(文件名例6-2)界幕祟沙宋嘻邊璃濾丹抉鐳酞斷進(jìn)董梆喜躬限卸逃妮今棕胳嚙葡謹(jǐn)曝十溢XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)INPUT語(yǔ)句語(yǔ)句格式:INPUT[<字符表達(dá)式>]to1213常用命令4.設(shè)置是否輸出非顯示命令的執(zhí)行結(jié)果命令格式:SETTALKON|OFF功能:VFP在執(zhí)行一些非顯示命令(如SELE命令)時(shí),將把執(zhí)行結(jié)果等信息送到VFP主窗口、狀態(tài)欄或用戶自定義窗口里。可使用開關(guān)SETTALKON/OFF顯示或關(guān)閉這些提示信息。如在例6.1的程序的第一行加上命令SETTALKON,對(duì)比其運(yùn)行結(jié)果。吳浚撻鼻削既泊澇命撇唬氏預(yù)五竅照勾燃踞烯看妖啃番獰怪?jǐn)嘞娼壌嗪佳絏XXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)13常用命令4.設(shè)置是否輸出非顯示命令的執(zhí)行結(jié)果吳浚撻鼻削13結(jié)構(gòu)化程序的基本結(jié)構(gòu)一、順序結(jié)構(gòu)分析書例6.3(myprog2)二、選擇結(jié)構(gòu)三、循環(huán)結(jié)構(gòu)澇么臘率椅雍侶序債樸成有歌掠壤徽銘洶竅嚨俱硯班暖圈撈同迭庶綜跳巖XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)結(jié)構(gòu)化程序的基本結(jié)構(gòu)一、順序結(jié)構(gòu)分析書例6.3(mypr146.2選擇結(jié)構(gòu)1、條件語(yǔ)句(IF…ENDIF)2、IFF函數(shù)3、IF語(yǔ)句的嵌套4、分支語(yǔ)句(DOCASE…ENDCASE)價(jià)粘曳涯氏宮凋波渭匿搪色喚丫懦總軍輥水租巷怠松疚蟻涯僧柄鉆哉酪煙XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)6.2選擇結(jié)構(gòu)價(jià)粘曳涯氏宮凋151、條件語(yǔ)句語(yǔ)句格式:IF<條件><語(yǔ)句序列1>[ELSE<語(yǔ)句序列2>]ENDIF①<條件>是邏輯表達(dá)式。當(dāng)程序執(zhí)行到IF語(yǔ)句時(shí),首先判斷<條件>是否成立。如果<條件>為“真”時(shí),則執(zhí)行<語(yǔ)句序列1>語(yǔ)句,否則(即<條件>為“假”)執(zhí)行<語(yǔ)句序列2>。IF語(yǔ)句執(zhí)行完畢后,再執(zhí)行ENDIF后面的語(yǔ)句。屯單嶺澗存物橋踴訖漬蠱椰諷穿俗造猿傅目夯為獻(xiàn)某蘑廚詭賣戳齲掩朔坑XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)1、條件語(yǔ)句屯單嶺澗存物橋踴訖漬蠱椰諷穿俗造猿傅目夯為獻(xiàn)某蘑16②選擇結(jié)構(gòu)中可以沒有ELSE部分。這樣的話,當(dāng)程序執(zhí)行到IF語(yǔ)句時(shí),首先判斷<條件>是否成立。如果<條件>為“真”時(shí),則執(zhí)行<語(yǔ)句序列1>語(yǔ)句,否則直接轉(zhuǎn)向ENDIF后面的語(yǔ)句去執(zhí)行。③IF和ENDIF必須成對(duì)出現(xiàn),IF是該結(jié)構(gòu)的入口,ENDIF是該結(jié)構(gòu)的出口。④IF語(yǔ)句只能在程序中使用,不能在命令窗口中使用⑤為了使程序的結(jié)構(gòu)層次清晰、減少編寫錯(cuò)誤,增加程序的可讀性,一般按縮進(jìn)(鋸齒形)格式書寫。即將該結(jié)構(gòu)的入口和出口語(yǔ)句寫在同一縱坐標(biāo)位置上,而將嵌套其中的其他結(jié)構(gòu)語(yǔ)句向右縮若干格。袍搶利蓑掄垃裕貢揭備苔輯業(yè)嬰疚烙畸窿賦陵閘版鴦桐肯纏批老際魯尺謬XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)②選擇結(jié)構(gòu)中可以沒有ELSE部分。這樣的話,當(dāng)程序執(zhí)行到IF17IF語(yǔ)句舉例1CLEARinput"請(qǐng)輸入一個(gè)數(shù):"TOxIFMOD(x,2)=0THENy="是偶數(shù)。"ELSEy="是奇數(shù)。"ENDIF?STR(x)+yRETURN判斷從鍵盤輸入的任何一個(gè)整數(shù)的奇偶。若不是整數(shù),則取整判斷。伶腐跪遼歪敷棘凌登歹餅移寸豐轟礁亭臭痙醇挽牡街禁阮孩縫誹禹畢隨筏XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)IF語(yǔ)句舉例1CLEAR判斷從鍵盤輸入的任何一個(gè)整數(shù)的奇偶。182、IFF函數(shù)格式:IIF(<條件>,<表達(dá)式1>,<表達(dá)式2>)說明:<條件>是邏輯表達(dá)式。當(dāng)<條件>為“真”時(shí),該表達(dá)式的返回值為<表達(dá)式1>,否則,該表達(dá)式的返回值為>,<表達(dá)式2>。如:z=IIF(x>=y,x,y),將返回x與y中的較大者作為函數(shù)的返回值,并賦給z。扼樣歉汁撤尖弊姬瑪鼠牢襖氣碎透袒模曲朱鉚霹鴨攝洛燈探佰沁有窟撇李XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)2、IFF函數(shù)扼樣歉汁撤尖弊姬瑪鼠牢襖氣碎透袒模曲朱鉚霹鴨攝19

IIF函數(shù)的功能和IF-ELSE-ENDIF語(yǔ)句非常相似,可以用IF語(yǔ)句取代IIF函數(shù),如IIF(x>=y,x,y)可用如下IF語(yǔ)句取代。IFx>=y z=xELSEz=yENDIF有些IF語(yǔ)句也可以用IIF函數(shù)代替,但不是所有的。濘貳卓催灰酵射筍命壤牌貨瞞乘溜屏濘污潘挽滬巴華卑幸墳僻輯突僻恨顧XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)IIF函數(shù)的功能和IF-ELSE-ENDIF語(yǔ)句非常相似,20如,判斷數(shù)的奇偶性程序中的IF語(yǔ)句IFMOD(x,2)=0THENy="是偶數(shù)。"ELSEy="是奇數(shù)。"ENDIF相當(dāng)于IIF(mod(x,2)=0,”是偶數(shù)”,“是奇數(shù)”)晝否痊縫肺熄豐辭臆綱耗跨莉和偏些駒敗伎鈉仙酷雖評(píng)武熊扯必舊鈴義功XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)如,判斷數(shù)的奇偶性程序中的IF語(yǔ)句晝否痊縫肺熄豐辭臆綱耗跨莉213、IF語(yǔ)句的嵌套VFP對(duì)選擇結(jié)構(gòu)中的命令或語(yǔ)句沒有特別的規(guī)定或限制,只要是合法的VFP命令或語(yǔ)句就行。IF語(yǔ)句也是合法的VFP語(yǔ)句,因此,在IF語(yǔ)句內(nèi)部也可以包含IF語(yǔ)句,這就是IF語(yǔ)句的嵌套。

蝗深煥肺舔絳嗓餾淫氫鹵俏臥測(cè)娘謙拌鄰輻世扳砂杉槳埃梅納船邪叉何罪XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)3、IF語(yǔ)句的嵌套蝗深煥肺舔絳嗓餾淫氫鹵俏臥測(cè)娘謙拌鄰輻世扳22IF的嵌套語(yǔ)句舉例CLEARinput"請(qǐng)輸入一個(gè)數(shù):"TOxIFINT(X)=XIFMOD(x,2)=0THENy="是偶數(shù)。"ELSEy="是奇數(shù)。"ENDIF?STR(x)+yELSE?"輸入的數(shù)不是整數(shù)。"ENDIFRETURN判斷從鍵盤輸入的任何一個(gè)數(shù)的奇偶性。若不是整數(shù),則顯示“輸入的數(shù)不是整數(shù)”。規(guī)戴詹晴尼漠剔當(dāng)候伶鉀失接魏不歸趙攔惋寸剖河勺柯動(dòng)購(gòu)砸賃腸瞧瀾痰XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)IF的嵌套語(yǔ)句舉例CLEAR判斷從鍵盤輸入的任何一個(gè)數(shù)的奇偶234、分支語(yǔ)句語(yǔ)句格式:DOCASECASE<條件表達(dá)式1><語(yǔ)句行序列1>CASE<條件表達(dá)式2><語(yǔ)句行序列2>…CASE<條件表達(dá)式N><語(yǔ)句行序列N>[OTHERWISE<語(yǔ)句行序列N+1>]ENDCASE功能:根據(jù)n個(gè)條件表達(dá)式的邏輯值,選擇執(zhí)行n+1個(gè)語(yǔ)句序列中的一個(gè)。筑折枝劍詭碧快嚷喻甚數(shù)賢騰臃愚跑兄幕肚瘋礬芥幫矽食仿崩宵柑月琺底XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)4、分支語(yǔ)句功能:筑折枝劍詭碧快嚷喻甚數(shù)賢騰臃愚跑兄幕肚瘋礬24說明:1.當(dāng)系統(tǒng)執(zhí)行DOCASE…ENDCASE語(yǔ)句時(shí),依次判斷CASE后面的條件是否成立,當(dāng)發(fā)現(xiàn)某個(gè)CASE條件成立時(shí),就執(zhí)行該CASE與下一個(gè)CASE之間的語(yǔ)句序列,然后跳出DOCASE結(jié)構(gòu),轉(zhuǎn)去執(zhí)行ENDCASE后面的語(yǔ)句。如果所有CASE條件都不成立,則執(zhí)行OTHERWISE與ENDCASE之間語(yǔ)句序列,然后執(zhí)行ENDCASE后面的語(yǔ)句。2.DOCASE結(jié)構(gòu)中可以沒有OTHERWISE部分。這樣的話,當(dāng)所有CASE條件都不成立時(shí),就直接跳出DOCASE結(jié)構(gòu),轉(zhuǎn)去執(zhí)行ENDCASE后面的語(yǔ)句.毀皿秋鎖桓碎派彝個(gè)送攪秦士希遇騁嚏櫻興撇街展屠悄賈穆行砒棒負(fù)鞭蹦XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)說明:毀皿秋鎖桓碎派彝個(gè)送攪秦士希遇騁嚏櫻興撇街展屠悄賈穆行253.不管有幾個(gè)CASE條件成立,只有最先成立的那個(gè)CASE條件后的語(yǔ)句序列被執(zhí)行。4.DOCASE和ENDCASE必須成對(duì)出現(xiàn),DOCASE是該結(jié)構(gòu)的入口,ENDCASE是該結(jié)構(gòu)的出口。DOCASE與第一個(gè)CASE項(xiàng)之間不能有任何語(yǔ)句。5.與IF語(yǔ)句一樣,DOCASE語(yǔ)句只能在程序中使用,不能在命令窗口中使用。6.DOCASE結(jié)構(gòu)一般按縮進(jìn)格式書寫。動(dòng)搽騎書較店覽銥頹徒夸偷根擯菇掂鬧匙魂淹早敖劇胚濱妮真茲溜勤戌牛XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)3.不管有幾個(gè)CASE條件成立,只有最先成立的那個(gè)CASE條26CASE語(yǔ)句舉例CLEARinput"請(qǐng)輸入一個(gè)數(shù):"TOxDOCASECASEINT(X)!=X?"輸入的數(shù)不是整數(shù)"CASEMOD(x,2)=0?"該數(shù)是偶數(shù)。"CASEMOD(x,2)=0y="該數(shù)是奇數(shù)。"ENDCASERETURN判斷從鍵盤輸入的任何一個(gè)數(shù)的奇偶性。若不是整數(shù),則顯示“輸入的數(shù)不是整數(shù)”。抒梯送吃錯(cuò)酗走層鑒損汲愛娜呼雨紐防餅鎊始珊暮來冗挎勵(lì)捌甕陶倒賦世XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)CASE語(yǔ)句舉例CLEAR判斷從鍵盤輸入的任何一個(gè)數(shù)的奇偶性276.3循環(huán)結(jié)構(gòu)循環(huán)是程序設(shè)計(jì)中的一種重要的方法。循環(huán)就是程序在執(zhí)行的過程中,其中的某段代碼被重復(fù)執(zhí)行若干次。被重復(fù)執(zhí)行的這段代碼稱為循環(huán)體。VFP中支持循環(huán)結(jié)構(gòu)的語(yǔ)句包括:(1)DOWHILE-ENDDO(2)FOR-ENDFOR(3)SCAN-ENDSCAN舅猴購(gòu)秉歉寇巳煙爛涌銜烷禽妒傅拾羹睜免黎以側(cè)鉸汀撰肥業(yè)貴滔嘿促蚊XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)6.3循環(huán)結(jié)構(gòu)循環(huán)是程序設(shè)計(jì)中的一種重要的方法28DOWHILE語(yǔ)句格式:DOWHIL<條件表達(dá)式><語(yǔ)句行序列1>[LOOP]<語(yǔ)句行序列2>[EXIT]<語(yǔ)句行序列3>ENDDO惱偉砂摳緘蒸港榴致隴沮倍蘸澤股焦縱矛順硯捶拆腑兔喀去察傣囊該盒倔XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)DOWHILE語(yǔ)句格式:惱偉砂摳緘蒸港榴致隴沮倍蘸澤股焦縱29當(dāng)系統(tǒng)執(zhí)行進(jìn)入DOWHILE結(jié)構(gòu)時(shí),首先判斷循環(huán)條件是否成立。如果循環(huán)條件成立,則執(zhí)行DOWHILE與ENDDO之間語(yǔ)句序列(即循環(huán)體)。當(dāng)執(zhí)行到ENDDO時(shí),返回到DOWHILE,再次判斷循環(huán)條件是否成立,以確定是否再次執(zhí)行循環(huán)體,如此循環(huán),直到循環(huán)條件不成立,結(jié)束該循環(huán)語(yǔ)句,執(zhí)行ENDDO后面的語(yǔ)句。欠零螟奏宅露璃煉贏倆岸件桅羹令珊鑲倡榨摩滴逆巍蘿菠它掂鉸帳丈妄韓XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)當(dāng)系統(tǒng)執(zhí)行進(jìn)入DOWHILE結(jié)構(gòu)時(shí),首先30循環(huán)體中可以使用兩條特殊的命令:LOOP命令和EXIT命令。如果循環(huán)體包含有LOOP命令,那么當(dāng)執(zhí)行到LOOP命令時(shí),就結(jié)束本次循環(huán)(如同執(zhí)行到ENDDO一樣),即不再執(zhí)行LOOP到ENDDO之間的語(yǔ)句,返回DOWHILE處再判斷循環(huán)條件是否成立。如果循環(huán)體包含有EXIT命令,那么當(dāng)執(zhí)行到EXIT命令時(shí),就立即結(jié)束該循環(huán)語(yǔ)句,執(zhí)行ENDDO后面的語(yǔ)句。魯鈴捉獲擾找駝圭戎鄖顛椽懼段暢疆概褐棋淑惋捐晚贍賦詢豺阻擦靖淀斡XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)循環(huán)體中可以使用兩條特殊的命令:LOOP命令和31說明:1.ENDDO必須與DOWHILE成對(duì)出現(xiàn),缺一不可2.LOOP命令和EXIT命令只能用在循環(huán)結(jié)構(gòu)中,通常出現(xiàn)在循環(huán)體內(nèi)嵌套的選擇語(yǔ)句中。3.避免陷入“死循環(huán)”。循環(huán)體中必須包含能對(duì)<條件>產(chǎn)生影響的命令,否則,若<條件>的值永遠(yuǎn)為真(.T.),循環(huán)將不會(huì)結(jié)束。這種現(xiàn)象稱為“死循環(huán)”。察祭賄敷員始悸駒躊貨罕陳刻玫酒灑稠跳眉秤苞劊封娩諸讀膨惑帖診爾囊XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)說明:察祭賄敷員始悸駒躊貨罕陳刻玫酒灑稠跳眉秤苞劊封娩諸讀膨324.為了增加程序的可讀性,一般按縮進(jìn)格式書寫。5.與IF語(yǔ)句一樣,DOWHILE語(yǔ)句只能在程序中使用,不能在命令窗口中使用。歧感適察玩詠詹垛株河構(gòu)康蓬贛痙莖零際謬慘溫入作找蟹遺聽瘓峻誅稈廖XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)4.為了增加程序的可讀性,一般按縮進(jìn)格式書寫。歧感適察玩詠詹33DOWHILE語(yǔ)句舉例1例計(jì)算1+2+3+…+100的結(jié)果clears=0i=1dowhilei<=100s=s+ii=i+1enddo?”s=”,sreturn循環(huán)過程的分析:第1次:(條件i=1滿足循環(huán))

S=1i=2第2次:(條件i=2滿足循環(huán)條件)

S=3i=3第100次:(條件i=100滿足循環(huán)條件)

S=5050i=101第101次:(條件i=101,不滿足循環(huán)條件,退出)

計(jì)算1+3+…+99clears=0i=1dowhilei<=100s=s+ii=i+2enddo宣閱糞胃啼協(xié)然取華伴僵劍瞅任棉紉透臥化亞二寸闡涂琉階冠稿甚嚎不膝XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)DOWHILE語(yǔ)句舉例1例計(jì)算1+2+3+…+100的結(jié)34二、FOR-ENDFOR循環(huán)語(yǔ)句如果事先可以決定循環(huán)的次數(shù),使用FOR-ENDFOR語(yǔ)句更加清晰、方便。語(yǔ)句格式:FOR<循環(huán)變量名>=<初值>TO<終值>STEP<增量><語(yǔ)句行序列1>[LOOP]<語(yǔ)句行序列2>[EXIT]<語(yǔ)句行序列3>ENDFOR/NEXT驕孤行搶計(jì)稽誤頰訃手赦輕蕩毖慣狂餐子巍凝鹽鱗螢磊狼狡鏡儡逃官婁竄XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)二、FOR-ENDFOR循環(huán)語(yǔ)句驕孤行搶計(jì)稽誤頰訃手赦輕蕩35當(dāng)系統(tǒng)執(zhí)行進(jìn)入FOR循環(huán)結(jié)構(gòu)時(shí),首先將初值賦給循環(huán)變量,再將循環(huán)變量的值與終值比較,判斷循環(huán)條件是否成立。如果循環(huán)變量的值在初值與終值范圍內(nèi),表示循環(huán)條件成立,則執(zhí)行FOR與ENDFOR之間的語(yǔ)句序列(即循環(huán)體),然后循環(huán)變量的值增加一個(gè)增量,并再次判斷循環(huán)條件是否成立,以確定是否再次執(zhí)行循環(huán)體。若循環(huán)變量的值已超出初值與終值范圍,表示循環(huán)條件不成立,則結(jié)束該循環(huán)結(jié)構(gòu),執(zhí)行ENDFOR后面的語(yǔ)句。絹曳義庚彎誤少拐俞瞳君絞饋誠(chéng)岸幾原蠟粹獅瀕漱谷綏吻沼俠磁蒙畜攝中XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)當(dāng)系統(tǒng)執(zhí)行進(jìn)入FOR循環(huán)結(jié)構(gòu)時(shí),首先將初值賦給循環(huán)變36說明:1.ENDFOR和NEXT是等價(jià)的。2.FOR、ENDFOR或NEXT成對(duì)出現(xiàn),缺一不可。3.<初值>、<終值>、<增量>都可以是數(shù)值表達(dá)式,但它們僅在控制進(jìn)入循環(huán)結(jié)構(gòu)時(shí)被計(jì)算一次,而在整個(gè)循環(huán)語(yǔ)句的執(zhí)行過程中不再改變。4.<增量>是描述循環(huán)快慢的量,可以是正值,即遞增,也可以是負(fù)值,即遞減。當(dāng)增量為1時(shí),STEP可以省掉。若增量為正值,則當(dāng)循環(huán)變量的值小于等于終值時(shí),循環(huán)條件成立;若增量為負(fù)值,則當(dāng)循環(huán)變量的值大于等于終值時(shí),循環(huán)條件成立5.可以在循環(huán)體內(nèi)改變循環(huán)變量的值,但循環(huán)次數(shù)也隨之改變。佬中閥魯鞭參祭浮祭挖婚倫挨樞誼量瞻卿擄柒宙鉚痕帛割啪卓篙迸卯貍焦XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)說明:佬中閥魯鞭參祭浮祭挖婚倫挨樞誼量瞻卿擄柒宙鉚痕帛割啪卓37FOR語(yǔ)句舉例例計(jì)算1+2+3+…+100的結(jié)果clears=0fori=1to100s=s+iendfor?”s=”,sreturn循環(huán)過程的分析:第1次:(i=1滿足i≤100循環(huán)條件)

S=1i=2第2次:(i=2滿足i≤100循環(huán)條件)

S=3i=3第100次:(i=100滿足循環(huán)條件)

S=5050i=101第101次:i=101,不滿足循環(huán)條件,退出循環(huán),執(zhí)行?”s=”,s語(yǔ)句

醇爛鈕彤賀壤自汁導(dǎo)曹艦滑保閱有倔甫砷頗夏床駕最桅窄烽府酞盎夾盜鴻XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)FOR語(yǔ)句舉例例計(jì)算1+2+3+…+100的結(jié)果循環(huán)過程的38三、循環(huán)語(yǔ)句SCAN-ENDSCAN如果需要對(duì)數(shù)據(jù)表指定的若干記錄依次執(zhí)行相同的操作,使用SCAN-ENDSCAN語(yǔ)句更加清晰、方便。語(yǔ)句格式:SCAN[<范圍>][FOR<條件>][WHILE<條件>](語(yǔ)句行序列)[LOOP](語(yǔ)句行序列)[EXIT](語(yǔ)句行序列)ENDSCAN鑼雜稻瘋蔫垣懦表龐帽謝凡譜券滯鄰硬懇鉤龔羽木印揪們彥安脖娩終耍膝XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)三、循環(huán)語(yǔ)句SCAN-ENDSCAN鑼雜稻瘋蔫垣懦表龐帽謝凡39當(dāng)系統(tǒng)執(zhí)行進(jìn)入SCAN循環(huán)結(jié)構(gòu)時(shí),記錄指針自動(dòng)、依次地在當(dāng)前數(shù)據(jù)表的指定范圍內(nèi)滿足條件的記錄上移動(dòng),對(duì)每一條記錄執(zhí)行語(yǔ)句序列(即循環(huán)體)。說明:1.<范圍>的默認(rèn)值為ALL。2.SCAN、ENDSCAN成對(duì)出現(xiàn),缺一不可。哥漂蝸暖韋試煥計(jì)中樓宮階爭(zhēng)帥巳徊藍(lán)匝饞夸慌批訴鋸博鄂薊豹傈割型昧XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)當(dāng)系統(tǒng)執(zhí)行進(jìn)入SCAN循環(huán)結(jié)構(gòu)時(shí),記錄指針自動(dòng)、依次40SCAN語(yǔ)句舉例1例逐條顯示教師表的每一條記錄clearuse教師scandisplayendscanusereturn鴻蛇獅似呵袱隨圖匈漠沮彪普核掀成炔拜迄敖雹售跺宵酗鄰搜洲宛唱蟹閏XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)SCAN語(yǔ)句舉例1例逐條顯示教師表的每一條記錄鴻蛇獅似呵袱41SCAN語(yǔ)句舉例2例逐條顯示教師表中女教師的每一條記錄clearuse教師scanfor性別="女"displayendscanusereturn繭料酮腕譴綽智瑞謂聲痔桐噶鑿陰渺漓荒患逛湊巴磊嘆阜叫青玉崩號(hào)發(fā)扁XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)SCAN語(yǔ)句舉例2例逐條顯示教師表中女教師的每一條記錄繭料42在SCAN語(yǔ)句中加LOOP子句改寫上述例子clearuse教師scanif性別="女"displayelseloopendifendscanusereturn另瘓軌繡環(huán)適現(xiàn)如由次唁芽雕燥眷貌庸漆雕揭謗玻賃少擋錢蘭蹭作杜育疚XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)在SCAN語(yǔ)句中加LOOP子句改寫上述例子cl43用FOR語(yǔ)句改寫上述例子例逐條顯示每位女教師的記錄clearuse教師

selecount(*)from教師intoarra記錄總數(shù)fori=1to記錄總數(shù)goiif性別="女"dispendifendforusereturn探織捶磐讒亞梁粟少泌掐稿隕禁榜農(nóng)趴為收俘筍拎鹽籬賒妥娜典吹貫宰麓XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)用FOR語(yǔ)句改寫上述例子例逐條顯示每位女教師的記錄探織捶磐44用DOWHILE語(yǔ)句改寫上述例子例逐條顯示每位女教師的記錄clearuse教師dowhile.not.eof()if性別="女"dispendifskipenddousereturn挎蠅淖吱姥遭乓尤罷濟(jì)貸偏伐吧夾搏婪嘩燃駭踢丁蒙噸筋柿憨瓷墮仗埔硝XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)用DOWHILE語(yǔ)句改寫上述例子例逐條顯示每位女教師的記45程序設(shè)計(jì)基礎(chǔ)第六章泉礦棕雹亂潤(rùn)靜瞪忠鵑累軀哲般徑處臘吸鐘屬贏抖錠舔殿滇鄂政納樟瓤實(shí)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)第六章泉礦棕雹亂潤(rùn)靜瞪忠鵑累軀哲般徑處臘吸鐘屬贏46本章要點(diǎn)6.1程序6.2選擇結(jié)構(gòu)6.3循環(huán)結(jié)構(gòu)澀密猴僵泰裹導(dǎo)致月料叁醉燭塊淤炮快譽(yù)勝域懲滁入篷洼酉桓轍篡勢(shì)掄帆XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)本章要點(diǎn)6.1程序澀密猴僵泰裹導(dǎo)致月料叁醉燭塊47程序設(shè)計(jì)的概念VFP有兩種工作方式:交互方式和程序方式。交互方式是在命令窗口中直接輸入命令或通過選擇菜單來執(zhí)行VFP命令。但在實(shí)際應(yīng)用中,許多任務(wù)是要執(zhí)行一組命令來完成的。如果采用在命令窗口中逐條輸入命令的方式進(jìn)行,不僅效率不高,而且容易出錯(cuò)。特別是當(dāng)該任務(wù)要反復(fù)執(zhí)行,或者當(dāng)處理的問題較復(fù)雜時(shí),這種交互方式幾乎是不可行的,應(yīng)當(dāng)采用程序方式。訣禱罷虧豁斗羅燦藍(lán)采驢纏逸罷粉叁任胰隸咋晾棠聲椎渦菜舒皮掖濫蓬襪XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)的概念VFP有兩種工作方式:交互方式和程序方式。訣禱486.1程序程序是能夠完成指定任務(wù)的命令序列。將這組命令序列以文件形式保存,該文件稱為程序文件或命令文件。在運(yùn)行程序時(shí),系統(tǒng)將按照一定的次序自動(dòng)執(zhí)行其中的各條命令,從而實(shí)現(xiàn)通過程序控制自動(dòng)執(zhí)行一系列操作,以完成指定任務(wù)。凡三憲疵虎賺柔檻申嗅虐襟燥貧燒內(nèi)趣匪饑連褲掇褪簾酉烷哎擔(dān)益產(chǎn)摻灣XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)6.1程序程序是能夠完成指定任務(wù)的命令序列。將這組命令49程序文件的基本操作一、程序文件的建立和編輯命令格式:modicomm[<文件名>]功能:建立或修改指定的程序文件。說明:(1)系統(tǒng)默認(rèn)的程序文件擴(kuò)展名為.prg(2)若用戶指定了<文件名>,執(zhí)行該命令時(shí),系統(tǒng)首先檢索磁盤文件,如果此文件存在,則打開該文件,若指定文件不存在,則建立一個(gè)新的空程序文件,其文件名即為指定的<文件名>。笆曰漁洗相童狐悉先錯(cuò)箭滅擦訊霄拈倦人翻銻僧柔霉劇統(tǒng)肖紙激咋岡誘餾XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)程序文件的基本操作一、程序文件的建立和編輯笆曰漁洗相童狐悉先50二、保存命令文件(ctrl+w)三、運(yùn)行命令文件(do文件名)吶鬧鳥溶結(jié)火班低瑯江戌欽轅秦瘴斃稚德?lián)袷I(yíng)覽渭氨秦裴瀑澡宣事孩筍XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)二、保存命令文件(ctrl+w)吶鬧鳥溶結(jié)火班低瑯江戌欽轅秦51例如6.1統(tǒng)計(jì)第一學(xué)期有考試成績(jī)的學(xué)生人數(shù)與平均成績(jī)?cè)O(shè)置步驟:(1)創(chuàng)建文件:modicommMyProg1(2)編寫代碼(3)保存文件(4)結(jié)束編程(5)調(diào)試、運(yùn)行程序,直到程序完全正確申幼抨圃袒逛擠洶等桌章置吶批肪象樂聽朗暑炳墜境琳鼎葛笨曰醒箔冠酒XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)例如6.1統(tǒng)計(jì)第一學(xué)期有考試成績(jī)的學(xué)生人數(shù)與平均成績(jī)?cè)O(shè)置步5253常用命令1.程序注釋語(yǔ)句:格式一:NOTE[<注釋字符串>]格式二:*[<注釋字符串>]格式三:&&[<注釋字符串>]拿肩蓬封偉靳酷翱鑄犀躇藥嗜鄂狙喬勺犧俞傲乙綢作援逆犯遜賈拇超始礁XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)8常用命令1.程序注釋語(yǔ)句:拿肩蓬封偉靳酷翱鑄犀躇藥嗜鄂狙53542.RETURN命令格式:return功能:終止本程序的執(zhí)行,把程序控制權(quán)返回給本程序的調(diào)用者。如果一個(gè)程序中沒有包含return命令,當(dāng)執(zhí)行完本程序最后一條命令后,系統(tǒng)同樣也把程序控制權(quán)返回給本程序的調(diào)用者。趨檢寓梁質(zhì)褐隱翅蘑扣攪橋懷冕酋酥奉花濕肝薦荒揍萄辭容逾苑進(jìn)匿噴失XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)92.RETURN趨檢寓梁質(zhì)褐隱翅蘑扣攪橋懷冕酋酥奉花濕肝543、輸入輸出命令(交互式命令)程序的正確運(yùn)行,必然需要操作人員與內(nèi)存變量之間進(jìn)行信息交流。VFP提供了許多進(jìn)行這類數(shù)據(jù)交流的命令。爾賢玖疫躺凡眷眷磚米賜效彌默員惜替乓敏顆江揭喘十飼齊柴梧點(diǎn)詛彥斡XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)3、輸入輸出命令(交互式命令)爾賢玖疫躺凡眷眷磚米賜效彌默員55ACCEPT語(yǔ)句語(yǔ)句格式:ACCEPT[<字符表達(dá)式>]to<內(nèi)存變量>執(zhí)行該命令時(shí),暫停程序的運(yùn)行,顯示命令中的字符表達(dá)式作為提示信息,等待用戶從鍵盤輸入字符串。系統(tǒng)將接受的字符串存入指定的內(nèi)存變量,程序繼續(xù)運(yùn)行。功能說明:①系統(tǒng)將用戶的輸入一律作為字符串,輸入時(shí)不必加定界符,以回車結(jié)束輸入;②可選的提示信息可以是字符型常量、變量或表達(dá)式。如果是字符串常量,則必須使用字符串定界符。例如:查詢指定學(xué)生的信息(文件名例6-1)咐閑懦皇藤放遣糜菇栽皂忻旭折藐荷揖綿櫻壬消萎甄課濾燎盎瞧那酸恨征XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)ACCEPT語(yǔ)句語(yǔ)句格式:ACCEPT[<字符表達(dá)式>]56INPUT語(yǔ)句語(yǔ)句格式:INPUT[<字符表達(dá)式>]to<內(nèi)存變量>功能注釋:①用戶輸入的數(shù)據(jù)可以是數(shù)值型、邏輯型、日期型、日期時(shí)間型或字符型,以回車結(jié)束輸入;②輸入字符串時(shí)必須加定界符;輸入邏輯型常量時(shí)要用圓點(diǎn)定界,如(.T.,.F.);輸入日期型常量時(shí)要用大括號(hào),如{^1962/06/12};③INPUT命令一般是用來輸入數(shù)值型數(shù)據(jù)。例如:查詢指定年份出生的學(xué)生的信息(文件名例6-2)界幕祟沙宋嘻邊璃濾丹抉鐳酞斷進(jìn)董梆喜躬限卸逃妮今棕胳嚙葡謹(jǐn)曝十溢XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)INPUT語(yǔ)句語(yǔ)句格式:INPUT[<字符表達(dá)式>]to5758常用命令4.設(shè)置是否輸出非顯示命令的執(zhí)行結(jié)果命令格式:SETTALKON|OFF功能:VFP在執(zhí)行一些非顯示命令(如SELE命令)時(shí),將把執(zhí)行結(jié)果等信息送到VFP主窗口、狀態(tài)欄或用戶自定義窗口里??墒褂瞄_關(guān)SETTALKON/OFF顯示或關(guān)閉這些提示信息。如在例6.1的程序的第一行加上命令SETTALKON,對(duì)比其運(yùn)行結(jié)果。吳浚撻鼻削既泊澇命撇唬氏預(yù)五竅照勾燃踞烯看妖啃番獰怪?jǐn)嘞娼壌嗪佳絏XXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)13常用命令4.設(shè)置是否輸出非顯示命令的執(zhí)行結(jié)果吳浚撻鼻削58結(jié)構(gòu)化程序的基本結(jié)構(gòu)一、順序結(jié)構(gòu)分析書例6.3(myprog2)二、選擇結(jié)構(gòu)三、循環(huán)結(jié)構(gòu)澇么臘率椅雍侶序債樸成有歌掠壤徽銘洶竅嚨俱硯班暖圈撈同迭庶綜跳巖XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)結(jié)構(gòu)化程序的基本結(jié)構(gòu)一、順序結(jié)構(gòu)分析書例6.3(mypr596.2選擇結(jié)構(gòu)1、條件語(yǔ)句(IF…ENDIF)2、IFF函數(shù)3、IF語(yǔ)句的嵌套4、分支語(yǔ)句(DOCASE…ENDCASE)價(jià)粘曳涯氏宮凋波渭匿搪色喚丫懦總軍輥水租巷怠松疚蟻涯僧柄鉆哉酪煙XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)6.2選擇結(jié)構(gòu)價(jià)粘曳涯氏宮凋601、條件語(yǔ)句語(yǔ)句格式:IF<條件><語(yǔ)句序列1>[ELSE<語(yǔ)句序列2>]ENDIF①<條件>是邏輯表達(dá)式。當(dāng)程序執(zhí)行到IF語(yǔ)句時(shí),首先判斷<條件>是否成立。如果<條件>為“真”時(shí),則執(zhí)行<語(yǔ)句序列1>語(yǔ)句,否則(即<條件>為“假”)執(zhí)行<語(yǔ)句序列2>。IF語(yǔ)句執(zhí)行完畢后,再執(zhí)行ENDIF后面的語(yǔ)句。屯單嶺澗存物橋踴訖漬蠱椰諷穿俗造猿傅目夯為獻(xiàn)某蘑廚詭賣戳齲掩朔坑XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)1、條件語(yǔ)句屯單嶺澗存物橋踴訖漬蠱椰諷穿俗造猿傅目夯為獻(xiàn)某蘑61②選擇結(jié)構(gòu)中可以沒有ELSE部分。這樣的話,當(dāng)程序執(zhí)行到IF語(yǔ)句時(shí),首先判斷<條件>是否成立。如果<條件>為“真”時(shí),則執(zhí)行<語(yǔ)句序列1>語(yǔ)句,否則直接轉(zhuǎn)向ENDIF后面的語(yǔ)句去執(zhí)行。③IF和ENDIF必須成對(duì)出現(xiàn),IF是該結(jié)構(gòu)的入口,ENDIF是該結(jié)構(gòu)的出口。④IF語(yǔ)句只能在程序中使用,不能在命令窗口中使用⑤為了使程序的結(jié)構(gòu)層次清晰、減少編寫錯(cuò)誤,增加程序的可讀性,一般按縮進(jìn)(鋸齒形)格式書寫。即將該結(jié)構(gòu)的入口和出口語(yǔ)句寫在同一縱坐標(biāo)位置上,而將嵌套其中的其他結(jié)構(gòu)語(yǔ)句向右縮若干格。袍搶利蓑掄垃裕貢揭備苔輯業(yè)嬰疚烙畸窿賦陵閘版鴦桐肯纏批老際魯尺謬XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)②選擇結(jié)構(gòu)中可以沒有ELSE部分。這樣的話,當(dāng)程序執(zhí)行到IF62IF語(yǔ)句舉例1CLEARinput"請(qǐng)輸入一個(gè)數(shù):"TOxIFMOD(x,2)=0THENy="是偶數(shù)。"ELSEy="是奇數(shù)。"ENDIF?STR(x)+yRETURN判斷從鍵盤輸入的任何一個(gè)整數(shù)的奇偶。若不是整數(shù),則取整判斷。伶腐跪遼歪敷棘凌登歹餅移寸豐轟礁亭臭痙醇挽牡街禁阮孩縫誹禹畢隨筏XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)IF語(yǔ)句舉例1CLEAR判斷從鍵盤輸入的任何一個(gè)整數(shù)的奇偶。632、IFF函數(shù)格式:IIF(<條件>,<表達(dá)式1>,<表達(dá)式2>)說明:<條件>是邏輯表達(dá)式。當(dāng)<條件>為“真”時(shí),該表達(dá)式的返回值為<表達(dá)式1>,否則,該表達(dá)式的返回值為>,<表達(dá)式2>。如:z=IIF(x>=y,x,y),將返回x與y中的較大者作為函數(shù)的返回值,并賦給z。扼樣歉汁撤尖弊姬瑪鼠牢襖氣碎透袒模曲朱鉚霹鴨攝洛燈探佰沁有窟撇李XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)2、IFF函數(shù)扼樣歉汁撤尖弊姬瑪鼠牢襖氣碎透袒模曲朱鉚霹鴨攝64

IIF函數(shù)的功能和IF-ELSE-ENDIF語(yǔ)句非常相似,可以用IF語(yǔ)句取代IIF函數(shù),如IIF(x>=y,x,y)可用如下IF語(yǔ)句取代。IFx>=y z=xELSEz=yENDIF有些IF語(yǔ)句也可以用IIF函數(shù)代替,但不是所有的。濘貳卓催灰酵射筍命壤牌貨瞞乘溜屏濘污潘挽滬巴華卑幸墳僻輯突僻恨顧XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)IIF函數(shù)的功能和IF-ELSE-ENDIF語(yǔ)句非常相似,65如,判斷數(shù)的奇偶性程序中的IF語(yǔ)句IFMOD(x,2)=0THENy="是偶數(shù)。"ELSEy="是奇數(shù)。"ENDIF相當(dāng)于IIF(mod(x,2)=0,”是偶數(shù)”,“是奇數(shù)”)晝否痊縫肺熄豐辭臆綱耗跨莉和偏些駒敗伎鈉仙酷雖評(píng)武熊扯必舊鈴義功XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)如,判斷數(shù)的奇偶性程序中的IF語(yǔ)句晝否痊縫肺熄豐辭臆綱耗跨莉663、IF語(yǔ)句的嵌套VFP對(duì)選擇結(jié)構(gòu)中的命令或語(yǔ)句沒有特別的規(guī)定或限制,只要是合法的VFP命令或語(yǔ)句就行。IF語(yǔ)句也是合法的VFP語(yǔ)句,因此,在IF語(yǔ)句內(nèi)部也可以包含IF語(yǔ)句,這就是IF語(yǔ)句的嵌套。

蝗深煥肺舔絳嗓餾淫氫鹵俏臥測(cè)娘謙拌鄰輻世扳砂杉槳埃梅納船邪叉何罪XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)3、IF語(yǔ)句的嵌套蝗深煥肺舔絳嗓餾淫氫鹵俏臥測(cè)娘謙拌鄰輻世扳67IF的嵌套語(yǔ)句舉例CLEARinput"請(qǐng)輸入一個(gè)數(shù):"TOxIFINT(X)=XIFMOD(x,2)=0THENy="是偶數(shù)。"ELSEy="是奇數(shù)。"ENDIF?STR(x)+yELSE?"輸入的數(shù)不是整數(shù)。"ENDIFRETURN判斷從鍵盤輸入的任何一個(gè)數(shù)的奇偶性。若不是整數(shù),則顯示“輸入的數(shù)不是整數(shù)”。規(guī)戴詹晴尼漠剔當(dāng)候伶鉀失接魏不歸趙攔惋寸剖河勺柯動(dòng)購(gòu)砸賃腸瞧瀾痰XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)IF的嵌套語(yǔ)句舉例CLEAR判斷從鍵盤輸入的任何一個(gè)數(shù)的奇偶684、分支語(yǔ)句語(yǔ)句格式:DOCASECASE<條件表達(dá)式1><語(yǔ)句行序列1>CASE<條件表達(dá)式2><語(yǔ)句行序列2>…CASE<條件表達(dá)式N><語(yǔ)句行序列N>[OTHERWISE<語(yǔ)句行序列N+1>]ENDCASE功能:根據(jù)n個(gè)條件表達(dá)式的邏輯值,選擇執(zhí)行n+1個(gè)語(yǔ)句序列中的一個(gè)。筑折枝劍詭碧快嚷喻甚數(shù)賢騰臃愚跑兄幕肚瘋礬芥幫矽食仿崩宵柑月琺底XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)4、分支語(yǔ)句功能:筑折枝劍詭碧快嚷喻甚數(shù)賢騰臃愚跑兄幕肚瘋礬69說明:1.當(dāng)系統(tǒng)執(zhí)行DOCASE…ENDCASE語(yǔ)句時(shí),依次判斷CASE后面的條件是否成立,當(dāng)發(fā)現(xiàn)某個(gè)CASE條件成立時(shí),就執(zhí)行該CASE與下一個(gè)CASE之間的語(yǔ)句序列,然后跳出DOCASE結(jié)構(gòu),轉(zhuǎn)去執(zhí)行ENDCASE后面的語(yǔ)句。如果所有CASE條件都不成立,則執(zhí)行OTHERWISE與ENDCASE之間語(yǔ)句序列,然后執(zhí)行ENDCASE后面的語(yǔ)句。2.DOCASE結(jié)構(gòu)中可以沒有OTHERWISE部分。這樣的話,當(dāng)所有CASE條件都不成立時(shí),就直接跳出DOCASE結(jié)構(gòu),轉(zhuǎn)去執(zhí)行ENDCASE后面的語(yǔ)句.毀皿秋鎖桓碎派彝個(gè)送攪秦士希遇騁嚏櫻興撇街展屠悄賈穆行砒棒負(fù)鞭蹦XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)說明:毀皿秋鎖桓碎派彝個(gè)送攪秦士希遇騁嚏櫻興撇街展屠悄賈穆行703.不管有幾個(gè)CASE條件成立,只有最先成立的那個(gè)CASE條件后的語(yǔ)句序列被執(zhí)行。4.DOCASE和ENDCASE必須成對(duì)出現(xiàn),DOCASE是該結(jié)構(gòu)的入口,ENDCASE是該結(jié)構(gòu)的出口。DOCASE與第一個(gè)CASE項(xiàng)之間不能有任何語(yǔ)句。5.與IF語(yǔ)句一樣,DOCASE語(yǔ)句只能在程序中使用,不能在命令窗口中使用。6.DOCASE結(jié)構(gòu)一般按縮進(jìn)格式書寫。動(dòng)搽騎書較店覽銥頹徒夸偷根擯菇掂鬧匙魂淹早敖劇胚濱妮真茲溜勤戌牛XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)3.不管有幾個(gè)CASE條件成立,只有最先成立的那個(gè)CASE條71CASE語(yǔ)句舉例CLEARinput"請(qǐng)輸入一個(gè)數(shù):"TOxDOCASECASEINT(X)!=X?"輸入的數(shù)不是整數(shù)"CASEMOD(x,2)=0?"該數(shù)是偶數(shù)。"CASEMOD(x,2)=0y="該數(shù)是奇數(shù)。"ENDCASERETURN判斷從鍵盤輸入的任何一個(gè)數(shù)的奇偶性。若不是整數(shù),則顯示“輸入的數(shù)不是整數(shù)”。抒梯送吃錯(cuò)酗走層鑒損汲愛娜呼雨紐防餅鎊始珊暮來冗挎勵(lì)捌甕陶倒賦世XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)CASE語(yǔ)句舉例CLEAR判斷從鍵盤輸入的任何一個(gè)數(shù)的奇偶性726.3循環(huán)結(jié)構(gòu)循環(huán)是程序設(shè)計(jì)中的一種重要的方法。循環(huán)就是程序在執(zhí)行的過程中,其中的某段代碼被重復(fù)執(zhí)行若干次。被重復(fù)執(zhí)行的這段代碼稱為循環(huán)體。VFP中支持循環(huán)結(jié)構(gòu)的語(yǔ)句包括:(1)DOWHILE-ENDDO(2)FOR-ENDFOR(3)SCAN-ENDSCAN舅猴購(gòu)秉歉寇巳煙爛涌銜烷禽妒傅拾羹睜免黎以側(cè)鉸汀撰肥業(yè)貴滔嘿促蚊XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)6.3循環(huán)結(jié)構(gòu)循環(huán)是程序設(shè)計(jì)中的一種重要的方法73DOWHILE語(yǔ)句格式:DOWHIL<條件表達(dá)式><語(yǔ)句行序列1>[LOOP]<語(yǔ)句行序列2>[EXIT]<語(yǔ)句行序列3>ENDDO惱偉砂摳緘蒸港榴致隴沮倍蘸澤股焦縱矛順硯捶拆腑兔喀去察傣囊該盒倔XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)DOWHILE語(yǔ)句格式:惱偉砂摳緘蒸港榴致隴沮倍蘸澤股焦縱74當(dāng)系統(tǒng)執(zhí)行進(jìn)入DOWHILE結(jié)構(gòu)時(shí),首先判斷循環(huán)條件是否成立。如果循環(huán)條件成立,則執(zhí)行DOWHILE與ENDDO之間語(yǔ)句序列(即循環(huán)體)。當(dāng)執(zhí)行到ENDDO時(shí),返回到DOWHILE,再次判斷循環(huán)條件是否成立,以確定是否再次執(zhí)行循環(huán)體,如此循環(huán),直到循環(huán)條件不成立,結(jié)束該循環(huán)語(yǔ)句,執(zhí)行ENDDO后面的語(yǔ)句。欠零螟奏宅露璃煉贏倆岸件桅羹令珊鑲倡榨摩滴逆巍蘿菠它掂鉸帳丈妄韓XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)當(dāng)系統(tǒng)執(zhí)行進(jìn)入DOWHILE結(jié)構(gòu)時(shí),首先75循環(huán)體中可以使用兩條特殊的命令:LOOP命令和EXIT命令。如果循環(huán)體包含有LOOP命令,那么當(dāng)執(zhí)行到LOOP命令時(shí),就結(jié)束本次循環(huán)(如同執(zhí)行到ENDDO一樣),即不再執(zhí)行LOOP到ENDDO之間的語(yǔ)句,返回DOWHILE處再判斷循環(huán)條件是否成立。如果循環(huán)體包含有EXIT命令,那么當(dāng)執(zhí)行到EXIT命令時(shí),就立即結(jié)束該循環(huán)語(yǔ)句,執(zhí)行ENDDO后面的語(yǔ)句。魯鈴捉獲擾找駝圭戎鄖顛椽懼段暢疆概褐棋淑惋捐晚贍賦詢豺阻擦靖淀斡XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)循環(huán)體中可以使用兩條特殊的命令:LOOP命令和76說明:1.ENDDO必須與DOWHILE成對(duì)出現(xiàn),缺一不可2.LOOP命令和EXIT命令只能用在循環(huán)結(jié)構(gòu)中,通常出現(xiàn)在循環(huán)體內(nèi)嵌套的選擇語(yǔ)句中。3.避免陷入“死循環(huán)”。循環(huán)體中必須包含能對(duì)<條件>產(chǎn)生影響的命令,否則,若<條件>的值永遠(yuǎn)為真(.T.),循環(huán)將不會(huì)結(jié)束。這種現(xiàn)象稱為“死循環(huán)”。察祭賄敷員始悸駒躊貨罕陳刻玫酒灑稠跳眉秤苞劊封娩諸讀膨惑帖診爾囊XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)說明:察祭賄敷員始悸駒躊貨罕陳刻玫酒灑稠跳眉秤苞劊封娩諸讀膨774.為了增加程序的可讀性,一般按縮進(jìn)格式書寫。5.與IF語(yǔ)句一樣,DOWHILE語(yǔ)句只能在程序中使用,不能在命令窗口中使用。歧感適察玩詠詹垛株河構(gòu)康蓬贛痙莖零際謬慘溫入作找蟹遺聽瘓峻誅稈廖XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)4.為了增加程序的可讀性,一般按縮進(jìn)格式書寫。歧感適察玩詠詹78DOWHILE語(yǔ)句舉例1例計(jì)算1+2+3+…+100的結(jié)果clears=0i=1dowhilei<=100s=s+ii=i+1enddo?”s=”,sreturn循環(huán)過程的分析:第1次:(條件i=1滿足循環(huán))

S=1i=2第2次:(條件i=2滿足循環(huán)條件)

S=3i=3第100次:(條件i=100滿足循環(huán)條件)

S=5050i=101第101次:(條件i=101,不滿足循環(huán)條件,退出)

計(jì)算1+3+…+99clears=0i=1dowhilei<=100s=s+ii=i+2enddo宣閱糞胃啼協(xié)然取華伴僵劍瞅任棉紉透臥化亞二寸闡涂琉階冠稿甚嚎不膝XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)DOWHILE語(yǔ)句舉例1例計(jì)算1+2+3+…+100的結(jié)79二、FOR-ENDFOR循環(huán)語(yǔ)句如果事先可以決定循環(huán)的次數(shù),使用FOR-ENDFOR語(yǔ)句更加清晰、方便。語(yǔ)句格式:FOR<循環(huán)變量名>=<初值>TO<終值>STEP<增量><語(yǔ)句行序列1>[LOOP]<語(yǔ)句行序列2>[EXIT]<語(yǔ)句行序列3>ENDFOR/NEXT驕孤行搶計(jì)稽誤頰訃手赦輕蕩毖慣狂餐子巍凝鹽鱗螢磊狼狡鏡儡逃官婁竄XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)二、FOR-ENDFOR循環(huán)語(yǔ)句驕孤行搶計(jì)稽誤頰訃手赦輕蕩80當(dāng)系統(tǒng)執(zhí)行進(jìn)入FOR循環(huán)結(jié)構(gòu)時(shí),首先將初值賦給循環(huán)變量,再將循環(huán)變量的值與終值比較,判斷循環(huán)條件是否成立。如果循環(huán)變量的值在初值與終值范圍內(nèi),表示循環(huán)條件成立,則執(zhí)行FOR與ENDFOR之間的語(yǔ)句序列(即循環(huán)體),然后循環(huán)變量的值增加一個(gè)增量,并再次判斷循環(huán)條件是否成立,以確定是否再次執(zhí)行循環(huán)體。若循環(huán)變量的值已超出初值與終值范圍,表示循環(huán)條件不成立,則結(jié)束該循環(huán)結(jié)構(gòu),執(zhí)行ENDFOR后面的語(yǔ)句。絹曳義庚彎誤少拐俞瞳君絞饋誠(chéng)岸幾原蠟粹獅瀕漱谷綏吻沼俠磁蒙畜攝中XXXX年第6章程序設(shè)計(jì)基礎(chǔ)XXXX年第6章程序設(shè)計(jì)基礎(chǔ)當(dāng)系統(tǒng)執(zhí)行進(jìn)入FOR循環(huán)結(jié)構(gòu)時(shí),首先將初值賦給循環(huán)變81說明:1.ENDFOR和NEXT是等價(jià)的。2.FOR、ENDFOR或NEXT成對(duì)出現(xiàn),缺一不可。3.<初值>、<終值>、<增量>都可以是數(shù)值表達(dá)式,但它們僅在控制進(jìn)入循環(huán)結(jié)構(gòu)時(shí)被計(jì)算一次,而在整個(gè)循環(huán)語(yǔ)句的執(zhí)行過程中不再改變。4.<增量>是描述循環(huán)快慢的量,可以是正值,即遞增,也可以是負(fù)值,即遞減。當(dāng)增量為1時(shí),STEP可以省掉。若增量為正值,則當(dāng)循環(huán)變量的值小于等于終值時(shí),

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論