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

下載本文檔

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

文檔簡介

一、程序設計語言概述人與人之間的交流是通過語言來完成的。當人們和計算機打交道時,也要涉及到語言問題,這就是計算機語言。計算機語言是指一切用于人與計算機通信的語言,它包括編程語言、命令語言、查詢語言、定義語言等。第七章程序設計基礎第七章程序設計基礎一、程序設計語言概述語言的種類機器語言匯編語言高級語言用二進制代碼0和1描述的指令(機器指令)的集合用助記符描述機器指令的計算機指令的計算機語言接近人類的自然語言和數(shù)學語言的一種計算機語言一、程序設計語言概述是人們根據(jù)要處理的問題而事先安排好的需要計算機執(zhí)行的處理步驟計算機程序第七章程序設計基礎第七章程序設計基礎

VFP程序設計包括結構化程序設計和面向對象程序設計,但結構化程序設計仍是面向對象程序設計的基礎。7.1程序與程序文件7.1.2程序文件的建立與執(zhí)行一、程序文件的建立與修改

MODIFYCOMMAND<文件名>文件名由用戶指定,擴展名為.PRG程序文件由VFP命令組成二、關閉編輯窗口的方法

Ctrl+W:文件存盤推出

ESC:若程序文件修改過,將詢問“放棄修改嗎?”

雙擊左上角控制菜單:將詢問“將所做的更改保存到*.prg嗎?”

單雙擊右上角關閉按鈕:將詢問“將所做的更改保存到*.prg嗎?”

“文件”菜單:“保存”、“另存為”或“還原”命令

7.1程序與程序文件7.1.2程序文件的建立與執(zhí)行三、程序的執(zhí)行

DO<文件名>

默認擴展名為.PRG,若為其它類型必須指明擴展名

7.1程序與程序文件7.1.2程序文件的建立與執(zhí)行例如:DOMCZZ.QPR&&運行查詢程序四、程序的書寫規(guī)則

2、命令分行一行只寫一條命令,結尾回車一行寫不完,則加續(xù)行號“;”回車

7.1程序與程序文件7.1.2程序文件的建立與執(zhí)行

1、命令注釋注釋行以“*”號開頭,一條命令后可加“&&”引出注釋

例如:

*本程序修改指定記錄SETDATEUSA&&日期格式為MM-DD-YY

五、程序中的常用命令1.環(huán)境設置clear……清屏

7.1程序與程序文件7.1.2程序文件的建立與執(zhí)行Settalkoff/on……是否將命令執(zhí)行的結果傳送到屏幕上Setdefaultto……默認路徑Setpathto……搜索路徑Setescapeon/off……允許ESCAPE退出/繼續(xù)命令文件的執(zhí)行(on為缺省值,ESC鍵可終止程序運行)五、程序中的常用命令二、賦值:Store或“=“

7.1程序與程序文件7.1.2程序文件的建立與執(zhí)行三、顯示?或??前者換行,后者不換行六、程序結尾的專用命令

7.1程序與程序文件7.1.2程序文件的建立與執(zhí)行RETURN:使程序結束,返回到上級或命令窗口,準許缺省CANCEL:使程序正常終止,清除程序的私有變量,返回到命令窗口QUIT:退出VFP系統(tǒng),自動刪去臨時文件,返回到WINDOWSInput“提示信息”to內存變量ACCEPT“提示信息”to字符變量TEXT顯示內容ENDTEXT

7.1程序與程序文件7.1.3簡單的輸入輸出命令WAIT命令暫停程序的運行,直到用戶輸入一個字符,也可用于輸出一條提示信息WAIT[<字符表達式>][TO<內存變量>][WINDOW[AT<行>,<列>]][NOWAIT][NOCLEAR][TIMEOUT<數(shù)值表達式>]

7.1程序與程序文件7.1.3簡單的輸入輸出命令<字符表達式>:提示窗口中的提示信息,可以缺省TO<內存變量>:將用戶的輸入值送入內存變量,可缺省WINDOWAT<行>,<列>:提示窗口所在的行和列號,可缺省[NOWAIT]:不停留,繼續(xù)執(zhí)行程序[NOCLEAR]:不清除提示窗口,缺省為清除[TIMEOUT<數(shù)值表達式>]程序在此處暫停的時間

CLEARWAIT"請檢查輸入內容!"WINDOWAT8,40RETURN

執(zhí)行后顯示如下:按任意鍵返回命令窗口7.2程序的基本結構

順序結構:按命令的書寫順序依此執(zhí)行選擇結構:根據(jù)指定條件的當前值在兩條一、基本結構或多條路徑中選擇一條執(zhí)行循環(huán)結構:由指定條件的當前值來控制循環(huán)體中的語句(或命令)序列是否要重復執(zhí)行。

7.2程序的控制結構7.2.1選擇結構

VFP可用條件語句或分支語句實現(xiàn)分支結構一.簡單的條件語句IF<條件><語句序列>ENDIF

二.帶else的條件語句IF<條件><語句序列1>ELSE<語句序列2>ENDIFIIF函數(shù)IIF(邏輯表達式,表達式1,表達式2)當邏輯表達式為真時,返回表達式1,否則返回表達式2。例:iif(chj>=90,”優(yōu)秀”,”通過”)7.2程序的控制結構當chj不低于90分時成績?yōu)閮?yōu)秀,否則只是通過例:iif(chj<60,”不合格”,iif(chj>=90,”優(yōu)秀”,”通過”)當chj低于60分時成績?yōu)椴缓细瘢?0到89分為通過,90到100分為優(yōu)秀分支語句嵌套If……If……If……If……endifendifendifendifelse三、多分支語句

DOCASECASE<邏輯表達式1><語句序列1>CASE<邏輯表達式2><語句序列2>……………CASE<邏輯表達式n><語句序列n>[OTHERWISE<語句序列n+1>]ENDCASE一、請說出下列程序段的輸出結果accepttoa&&輸入內存變量A的值ifA=[123456]&&當A的值為”123456”時s=0&&執(zhí)行s=0,即給s賦0值EndifS=1&&給s賦1值?s&&輸出s的值7.2程序的控制結構結果應該為:1因為不論A為什么值,s=1都會執(zhí)行,賦值語句的特點總是以新的值替代舊的值從鍵盤輸入二個整數(shù),并將其中較大的數(shù)顯示出來clearinput"請輸入第一個整數(shù):"toainput"請輸入第一個整數(shù):"tobmax=iif(a>b,a,b)?maxclearinput"請輸入第一個整數(shù):"toainput"請輸入第一個整數(shù):"tobifa>b?aelse?bendif二、請說出下列程序段的輸出結果

設當前記錄的”計算機”字段的值是89Docasecase計算機<60?“計算機成績是:”+”不及格”case計算機>=60?“計算機成績是:”+”及格”case計算機>=70?“計算機成績是:”+”中”case計算機>=80?“計算機成績是:”+”良”case計算機>=90?“計算機成績是:”+”優(yōu)秀”endcase7.2程序的控制結構結果應該為:計算機的成績是:及格因為docase語句中,當滿足其中最靠前的條件時,將執(zhí)行相應的語句,然后就不做其他的判斷(見164頁注釋①)cleardocasecaseyue=3oryue=4oryue=5jj="春"caseinlist(yue,6,7,8)jj="夏"caseinlist(yue,9,10,11)jj="秋"caseinlist(yue,12,1,2)jj="冬"endcasewaitjjwindowat8,30&&當前季節(jié)顯示在WAIT窗口7.2程序的控制結構settalkoffclearinput"請輸入月份:"toyuedocasecaseyue=3oryue=4oryue=5jj="春"caseinlist(yue,6,7,8)jj="夏"caseinlist(yue,9,10,11)jj="秋"caseinlist(yue,12,1,2)jj="冬"endcasewaitjjwindowat8,30&&當前季節(jié)顯示在wait窗口settalkoninlist(

)

函數(shù)一、功能判斷一個表達式是否與一組表達式中的某一個相匹配。二、格式INLIST(eExpression1,

eExpression2

[,

eExpression3

...])

三、返回值邏輯型

7.2.2循環(huán)結構一、條件循環(huán)

1.格式

DOWHILE<邏輯表達式><語句序列>ENDDO

循環(huán)體循環(huán)條件7.2程序的控制結構2.執(zhí)行過程(見166頁圖7.5)首先判斷dowhile處的循環(huán)條件是否成立,若為真,則執(zhí)行循環(huán)體,然后回到dowhile處再次判斷條件是否為真,若為真,則又執(zhí)行循環(huán)體,若為假,則跳出循環(huán),執(zhí)行enddo后面語句[P166例7.7]計算s=1+2+3+……+100s=0i=1dowhilei<=100s=s+ii=i+1enddo?”s=”,s7.2.2循環(huán)結構7.2程序的控制結構一、條件循環(huán)s=s+I是累加器循環(huán)變量循環(huán)體循環(huán)條件四、循環(huán)輔助語句(見書166頁圖7.6)

LOOP:使執(zhí)行轉向循環(huán)語句的頭部繼續(xù)循環(huán)

DOWHILE<邏輯表達式>……LOOP……ENDDO

EXIT:立即退出循環(huán),轉去執(zhí)行循環(huán)外的語句

DOWHILE<邏輯表達式>……EXIT……ENDDO

二、步長循環(huán)

1.格式

FOR<變量>=<初值>TO<終止值>[STEP步長]

<語句序列>

ENDFOR|NEXT

7.2.2循環(huán)結構7.2程序的控制結構給循環(huán)變量賦初值判斷條件循環(huán)體循環(huán)變量增步長值endfor語句的下一語句TF

2.執(zhí)行過程

見右圖

默認為1[P166例7.7]計算s=1+2+3+……+100

s=0fori=1to100s=s+inext?"s=",s三、掃描循環(huán)

SCAN[<范圍>][FOR<邏輯表達式1>][WHILE<邏輯表達式2>]<語句序列>ENDSCAN在<范圍>內依此尋找滿足FOR條件或WHILE條件的記錄,并對找到的記錄執(zhí)行<語句序列>,scan循環(huán)自動移動記錄指針

usee:\倉庫表scanif面積=370?”面積=”,面積endifendscanuse有一個數(shù)據(jù)庫表stock.dbf內容如下:股票代碼股票名稱單價交易所600600青島啤酒7.84上海600601方正科技15.20上海600602廣電電子10.40上海600603興業(yè)房產12.76上海600604二紡機9.96上海600605輕工機械14.59上海000001深發(fā)展7.84深圳000002深萬科12.50深圳closeallusestockgo1x=0scanfor交易所=“上?!眡=x+Ⅰendscan問x等于多少?closeallusestockgotopx=0dowhile.not.eof()if單價>10x=x+Ⅰendscanskipenddo問x等于多少?store0toi,s,tdowhilei<100i=i+1s=s+iifint(i/2)=i/2loopendift=t+ienddo?"1+2+3+...+100=",s?"1~100奇數(shù)和為",t求1到100的奇數(shù)和五、多重循環(huán)

循環(huán)體內包含其它循環(huán)→循環(huán)嵌套

外循環(huán)每執(zhí)行一次,內循要全部執(zhí)行完一遍

例程序段fori=0to2forj=0to4則循環(huán)次數(shù)3×5=15次……endforendfor具體:i=0時j=0,1,2,3,4五次i=1時j=0,1,2,3,4五次共15次i=2時j=0,1,2,3,4五次7.2.3編程實例7.2程序的控制結構例1:求T=10!t=1fori=1to10t=t*iendfor?”t=”,tt=t*i是累乘器例1改成求任意數(shù)的階乘該怎樣改?

input“請輸入一個整數(shù):”tont=1fori=1tont=t*iendfor?”t=”,t

7.2.3編程實例7.2程序的控制結構例1:求T=1!+2!+……+10!

方法1:p=1t=0fori=1to10p=p*it=t+pendfor?”t=”,t例1改成求T=1!+2!+……+m!

方法2:

t=0forn=1to10p=1fori=1tonp=p*iendfort=t+pendfor?“t=",t7.3多模塊程序子程序一、調用與返回兩個具有調用關系的程序文件,稱調用程序為主程序,被調用程序為子程序主程序遇到DO命令,轉向子程序執(zhí)行,稱為調用子程序。子程序執(zhí)行到RETURN語句(或缺省該語句),返回到主程序中的DO命令的下一個語句執(zhí)行,稱為返回主程序二、帶參數(shù)子程序的調用和返回1.主程序中,用DO命令帶一個WITH子句來向子程序傳入參

數(shù)和從子程序帶回運算結果

DO<文件名>|<過程名>[WITH<實參表>](參數(shù)至少有一個)2.相對應的參數(shù)在子程序中用PARAMETERS來接收和回送參數(shù)。

PARAMETERS|LPARAMETERS<形參1>[,形參2……>注意:該語句應為子程序的第一條命令,PARAMETERS參數(shù)與WITH的參數(shù)是按位置一一對應的1.參數(shù)的種類:(1)實參:主程序中調用模塊時的參數(shù)(2)形參:模塊程序中接收時的參數(shù)三、參數(shù)的種類及調用方式2.參數(shù)的傳遞方式:(1)按值傳遞:當實參是常量或一般形式的表達式或數(shù)組元素(2)按地址傳遞(或稱按引用傳遞):當實參是變量或數(shù)組名3.不同傳遞方式的特點:(1)按值傳遞:形參的改變不影響實參值(2)按地址傳遞(或稱按引用傳遞):形參變量值的改變,影響到實參值的改變

以變量的作用域來分,可以分為:公共變量、私有變量和本地變量1、公共變量

公共變量是在一個程序中的任何模塊都可以使用的變量.建立命令格式:

PUBLIC<公共變量表>公共變量在建立時賦初值.F.一個公共變量一經定義,直到使用RELEASE或CLEARmemory等命令釋放它,

一直有效.

VFP命令窗口定義的變量均為公共變量,但這些變量在程序中使用無效.四、變量的作用域(變量的使用范圍)

溫馨提示

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

評論

0/150

提交評論