第2章-程序設計基礎課件_第1頁
第2章-程序設計基礎課件_第2頁
第2章-程序設計基礎課件_第3頁
第2章-程序設計基礎課件_第4頁
第2章-程序設計基礎課件_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第2章程序設計基礎

引言VFP的中除了可以對大量數據進行管理之外,還可以處理數據,即借用已有的數據庫來創(chuàng)建功能強大的應用程序。而VFP中應用程序的使用方式有三種:菜單方式、命令方式和程序方式。其中菜單方式和命令方式可以處理一些簡單的問題,程序方式可以處理更復雜的問題。

重要考點提示:本章考核內容約為6%,主要考核以下幾個方面:公共變量、私有變量和局部變量的定義過程調用中參數的傳遞,主要是形參和實參的傳遞循環(huán)語句的結構及運行結果2.1程序與程序文件2.1.1程序的概念所謂程序,就是能夠完成一定任務的命令的有序集合,這組命令被存放在稱為程序文件或命令文件的文本文件中。程序方式:先編寫程序,后在磁盤建立包含程序代碼的程序文件,后運行程序,讓系統(tǒng)自動執(zhí)行程序代碼交互式方式:包括立即命令和菜單命令兩種,即在命令窗口中逐條輸入命令或通過選擇菜單調用功能。2.1.2程序文件的創(chuàng)建與運行1.程序文件的建立與修改(通過調用系統(tǒng)內置文本編輯器進行)打開文本編輯窗口輸入程序內容(在這里輸入的內容不會馬上執(zhí)行,只有在程序運行時執(zhí)行)保存程序文件CTRL+W(程序文件擴展名:.prg

)修改/創(chuàng)建程序文件(modifycommand<程序文件名>)2.執(zhí)行程序文件菜單方式程序-運行命令方式:DO<程序文件名>3.程序書寫規(guī)則程序中每條命令以回車結尾一行只能寫一條命令,若命令分行寫,應在一行結束時輸入“;”,然后回車程序中可插入注釋,以“*”開頭表示其后的命令僅在程序中顯示;命令后也可添加注釋,這種注釋以符號“&&”開頭例1:計算長方形的周長和面積例1:modifycommandexample.prg*設置長方形的長和寬a=5

&&長方形的寬為5b=10

&&長方形的長為10s=a*b

&&長方形的面積p=2*(a+b)

&&長方形的周長*輸出計算結果?"周長:“,p?

"面積:“,s運行程序:doexample周長:30面積:502.1.3常用基本操作清屏命令:CLEAR(清除工作區(qū)顯示的內容)INPUT命令(等待用戶從鍵盤輸入數據,可輸入任意類型數據)格式:INPUT[<提示信息>]TO<內存變量>ACCEPT命令(等待用戶從鍵盤輸入字符串,該命令只能接收字符串)格式:ACCEPT[<提示信息>]TO<內存變量>WAIT命令(從鍵盤接收一個字符,然后執(zhí)行下一句)格式:WAIT[<提示信息>][TO<內存變量>][WINDOW[AT<行>,<列>]][TIMEOUT<秒數>]等待<秒數>秒后,無輸入則執(zhí)行下一條語句注意:用于顯示提示信息,暫停程序的執(zhí)行,直到用戶按任意鍵或單擊鼠標時繼續(xù)執(zhí)行。

input"輸入一字符串"toainput"輸入數值250"tob例3.Acceptaccept"請輸入姓名:"toname例4.waita="歡迎!"b=5waitawindowat11,11timeoutb例2.input練習1.在vf中,用來建立程序文件的命令是()A)CREATECOMMAND<文件名>B)CREATEFILE<文件名>C)MODIFYFILE<文件名>D)MODIFYCOMMAND<文件名>2.在VF中,程序文件的擴展名為()A)PRGB)QPRC)APPD)SCX3.在INPUT、ACCEPT和WAIT三個命令中,必須要以回車鍵表示輸入結束的命令是()A)INPUT、ACCEPTB)INPUT、WAITC)ACCEPT、WAITD)INPUT、ACCEPT和WAIT2.2結構化程序設計程序結構是指程序中命令或語句執(zhí)行的流程結構。主要有三種結構:順序結構、選擇結構和循環(huán)結構。2.2.1順序結構(最基本、簡單、常用的結構)始終按照語句排列的先后順序,一條接一條地依次執(zhí)行。2.2.2選擇結構

支持選擇結構的語句包括條件語句(IF-ENDIF)和(DOCASE-ENDCASE)例5:求半徑為5的圓面積r=5(或input"輸入圓半徑:"tor)s=3.14*r**2?sinput"x="toxifmod(x,2)=0?"x是偶數"endif例5:求半徑為5的圓面積例6:從鍵盤輸入一整數,判斷X是否是偶數,若是則輸出X是偶數1.簡單形式的條件語句格式:

IF<條件><語句序列1>ENDIF語句功能:當條件成立時,執(zhí)行IF和ENDIF

之間的<語句序列1>;反之,執(zhí)行ENDIF后面的語句。語句行條件為真?語句序列1ENDIF后面的語句YN簡單條件語句流程圖例6:2.一般形式的條件語句格式:IF<條件><語句序列1>ELSE<語句序列2>ENDIF語句功能:當條件成立時,先執(zhí)行<語句序列1>,然后再去執(zhí)行ENDIF后面的語句;反之,先執(zhí)行<語句序列2>,然后再轉去執(zhí)行ENDIF后面的語句。語句行條件為真?語句序列1ENDIF后面的語句Y語句序列2N一般條件語句流程圖使用時注意:IF和ENDIF必須成對出現;條件語句可以嵌套,但不能交叉例2:例8:方法一:input"輸入成績:"toaifa<60?"不及格"elseifa<90?"通過"else?"優(yōu)秀"

endif

endif例8:根據輸入的成績,顯示相應的成績等級方法二:input"輸入成績:"toadocasecasea<60?"不及格"casea<90?"通過"otherwise?"優(yōu)秀"endcase例2:從鍵盤輸入一整數,判斷X是否是偶數,若是則輸出X是偶數;否則輸出X是奇數input"x="toxifmod(x,2)=0?"x是偶數"else?"x是奇數"endif3.多分支語句

格式:

DOCASECASE<條件1><語句序列1>CASE<條件2><語句序列2>…CASE<條件n><語句序列n>[OTHERWISE<語句序列>]ENDCASE

用于多個判斷條件,可根據條件從多組代碼中選擇一組執(zhí)行注意:DOCASE和ENDCASE必須成對出現;若所有CASE條件不成立,且沒有OTHERWISE子句,則直接跳出本結構不管有幾個條件成立,只有最先成立的那個CASE條件的對應命令序列被執(zhí)行。例8:2.2.3循環(huán)結構1.DOWHILE-ENDDO語句(先判斷后執(zhí)行)格式:

DOWHILE<條件><命令序列>[LOOP]&&跳轉語句,該語句中斷本次循環(huán)體的執(zhí)行,跳回到

DOWHILE的開始處,重復對條件的判斷。

[EXIT]&&出口語句,該語句功能為立即跳出循環(huán)體,執(zhí)行循環(huán)體后面的代碼。

ENDDO語句功能:當條件成立時,始終執(zhí)行命令序列;否則執(zhí)行ENDDO后面的語句。即重復結構,是指程序在執(zhí)行過程中,其中的的某段代碼被重復執(zhí)行若干次。被重復執(zhí)行的代碼段,稱為循環(huán)體。例9:例10:例9:計算S=1+2+3+…+100s=0input"n1="toainput"n2="tobdowhilea<=bs=s+aa=a+1enddo?"s=",ss=0n=1dowhilen<=100s=s+nn=n+1enddo?"s=",s2.FOR-ENDFOR語句(用于實現循環(huán)次數已知情況下的循環(huán)結構)

先判斷后執(zhí)行格式:

FOR<循環(huán)變量>=<初值>TO<終值>[STEP<步長>]<循環(huán)體>[LOOP]&&用于轉到FOR語句繼續(xù)執(zhí)行循環(huán)

[EXIT]&&用于跳出循環(huán),轉到ENDFOR后面命令執(zhí)行

ENDFOR語句功能:循環(huán)過程是首先將初值賦予循環(huán)變量,每當執(zhí)行一次循環(huán),循環(huán)變量增加一個步長,直到循環(huán)變量大于終值時結束循環(huán)。例11例11.計算S=2+4+6+…+100s=0forn=2to100step2s=s+nendfor?"s=",s3.SCAN-ENDSCAN語句(也稱為掃描循環(huán)語句,用于處理表中記錄)格式:

SCAN[<范圍>][FOR<條件1>][WHILE<條件2>]<循環(huán)體>[LOOP][EXIT]ENDSCAN語句功能:執(zhí)行該語句時,記錄指針自動、依次地在當前表地指定范圍內滿足條件地記錄上移動,對每一條記錄執(zhí)行循環(huán)體內的命令。例12use學生信息scanfor性別="男"?學號,姓名

replace年齡with年齡+5endscan例12.在學生信息表中,對男生顯示其學號、姓名,并將年齡加5歲例10:對成績管理表,統(tǒng)計其中成績及格的學生人數use成績管理s=0dowhile.t.ifeof()exit

endifif成績<60skiploop

endifs=s+1skipenddo?sDowhile.not.Eof()練習1.結構化程序設計的3種基本結構是()A)順序結構、選擇結構和模塊結構B)選擇結構、循環(huán)結構和模塊結構C)順序結構、循環(huán)結構和模塊結構D)順序結構、選擇結構和循環(huán)結構2.在vf種,條件語句屬于()A)順序結構B)選擇結構C)循環(huán)結構D)模塊結構3.下列關于DOCASE-ENDCASE語句說法不正確的是()A)DOCASE和ENDCASE必須成對出現B)只要CASE條件成立,就執(zhí)行這個CASE條件對應的命令序列C)所有的CASE條件都不成立且沒有OTHERWISE語句,則直接跳出本結構,執(zhí)行ENDCASE后面的語句D)在DOCASE和第一個CASE之間的任何語句都不被執(zhí)行4.在DOWHILE循環(huán)語句中,如果條件永遠為真,則利用下列()語句可以退出此循環(huán)體。A)LOOPB)EXITC)CLOSED)QUIT練習5.在循環(huán)結構程序設計中,在指定范圍內掃描數據表文件,查找符合條件的記錄并執(zhí)行循環(huán)體中的命令,應使用的循環(huán)結構為()A)SCAN-ENDSCANB)FOR-ENDFORC)DOWHILE-ENDOD)DOCASE-ENDCASE2.3多模塊程序概念模塊是相對獨立的程序段,它可以被其他模塊調用,也可以調用其他模塊。子程序:被其他模塊調用的模塊。主程序:調用其他模塊而沒有被其他模塊調用的模塊。1.模塊的定義格式:PROCEDURE|FUNCTION<過程名>&&(過程開始)<命令序列>[RETURN[<表達式>]]&&(過程返回)[ENDPROC|ENDFUNC]&&(過程結束)注意:過程名必須以字母或下劃線開頭,可以包含數字、字母和下劃線

若RETURN不帶<表達式>,則返回邏輯真.T.2.模塊的調用格式(兩種):1)使用DO命令

DO<文件名>|<過程名>2)在名字后加一對小括號

<文件名>|<過程名>()3.打開過程文件SETPROCEDURETO[<過程文件1>[,<過程文件2>,。。。]][ADDITIVE]4.關閉過程文件SETPROCEDURETORELEASEPROCEDURE<過程文件1>[,<過程文件2>,。。。]5.參數傳遞模塊程序可以接收調用程序傳遞過來的參數。PARAMETERS<形參變量1>[,<形參變量2>,…]LPARAMETERS<形參變量1>[,<形參變量2>,…]說明:PARAMETERS聲明的形參被看作是模塊程序中建立的私有變量LPARAMETERS聲明的形參被看作是模塊程序中建立的局部變量。6.調用參數格式:do<文件名>|<過程名>with<實參1>[,<實參2>,…]<文件名>|<過程名>(<實參1>[,<實參2>,…])注意:1)實參可以是變量、常量或一般表達式

2)這里的實參應與被調過程的形參在數目、次序和類型上一一對應

3)形參數目不能少于實參數目,當形參數目多于實參數目時,多余的形參取初值邏輯假.F.2.參數傳遞方式(值傳遞和引用傳遞方式兩種)值傳遞方式:傳遞值,被調程序修改,主調程序不變

(實參一般為常量和表達式)引用傳遞方式:傳遞地址,被調程序改變變量,主調程序也變

(實參一般為變量)格式:

SETUDFPARMSTOVALUE|REFERENCESettalkoff&&命令的操作結果不顯示ClearSetudfparmstovalue&&設置為值傳遞方式i=10?”函數返回值=“,test(i)1510?”變量值=”,iSetudfparmstoreference&&設置為引用傳遞方式i=10?”函數返回值=”,test(i)?”變量值=”,iFunctiontest&&函數定義Parametersxx=x+51515Returnx8.變量的作用域根據內存變量的作用域,可分為全局變量和局部變量.1)全局變量:在程序運行期間,在任何程序和過程中都可以使用的內存變量.

格式:PUBLIC<內存變量表>

功能:

建立公共的內存變量,并賦以初值.f.,建立好后一直有效,即使程序結束返回命令窗口也不會消失。2)局部變量:只能在建立它的模塊中使用,不能在上層或下層模塊中使用.程序結束時,自動釋放局部變量。格式:LOCAL<內存變量表>3)私有變量:在程序中直接使用而由系統(tǒng)自動隱含建立的變量。作用域是建立它的模塊及其下屬的各層模塊4)PRIVATE語句:可使子程序的變量與主調程序中的變量同名.格式1:PRIVATE<內存變量表>格式2:PRIVATEALLLIKE[<通配符變量名>|EXCEPT<通配符變量名>說明:該命令并不建立內存變量,它只是隱藏指定的在上層模塊中可能已經存在的內存變量,但是當模塊程序返回上層模塊時,被隱藏的變量就自動恢復有效性,保持原值。示例:Settalkoffprocedureproc1a=1publiccb=2privatea,b,xSetproceduretopma=10Doproc1b=20x=a+b+cc=30x=a+b+c?”p1程序中的a=”,a?”p1程序中的b=”,b?”proc1程序中的a=”,a?”p1程序中的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論